HODL Lab · Hướng dẫnMở Lab

Ví dụĐộng lượng

Động lượng

Giữ 5 mã VN30 tăng mạnh nhất 6 tháng, nhưng bỏ qua những mã biến động quá mạnh. Động lượng thuần thường dồn vào mã sốc giá; lọc theo biến động giúp danh mục bớt giật.

python
universe("vn30")
period("5Y")
rebalance("M")

mom = momentum(126)
calm = volatility(63)
mom = mom[calm < calm.median()]
pick(top(mom, input(5, "Holdings")))

Từng bước

  1. momentum(126): mức tăng 6 tháng (126 phiên) của từng mã VN30.
  2. volatility(63): độ biến động năm hoá 3 tháng của từng mã.
  3. mom[calm < calm.median()]: chỉ giữ các mã có biến động thấp hơn trung vị của rổ. Đây là phép lọc pandas bình thường, vì script là Python thật.
  4. top(mom, 5): lấy 5 mã động lượng cao nhất trong số còn lại; pick chia đều vốn.

Thử thêm

  • Đổi 126 thành 63 (3 tháng) hoặc 252 (1 năm).
  • Thay calm.median() bằng calm.quantile(0.3) để chỉ giữ 30% mã êm nhất.