
Chiến lược này tính toán các chỉ số động lực của giá để đánh giá xu hướng chuyển động giá có đảo ngược hay không để nắm bắt cơ hội đảo ngược giá. Khi xu hướng tăng giá chậm lại hoặc xu hướng giảm giảm, cho thấy động lượng giá đảo ngược, chiến lược sẽ mở vị trí tăng hoặc giảm.
Chiến lược này chủ yếu dựa trên tính toán các chỉ số động lực. Các chỉ số động lực phản ánh tốc độ và cường độ thay đổi giá. Chiến lược tính toán hai chỉ số động lực MOM và MOM1.
Công thức MOM:
MOM = giá đóng cửa trong ngày - giá đóng cửa trước ngày N
Công thức tính MOM1:
MOM1 = MOM hôm nay - MOM ngày hôm qua
Xác định giá có đảo ngược hay không dựa trên giá trị của MOM và MOM1. Nếu MOM > 0 và MOM1 < 0, cho thấy xu hướng tăng giá chậm lại, có tín hiệu đảo ngược, làm nhiều; Nếu MOM < 0 và MOM1 > 0, cho thấy xu hướng giảm giá chậm lại, có tín hiệu đảo ngược, làm trống.
Các biện pháp giảm thiểu rủi ro chính:
Chiến lược này bằng cách tính toán các chỉ số động lực giá, đánh giá xu hướng chuyển động giá có đảo ngược hay không, để thực hiện tự động làm nhiều điều kiện. Thử nghiệm cho thấy rằng chiến lược này hoạt động suôn sẻ và nắm bắt hiệu quả các điểm đảo ngược giá. Bằng cách thiết lập tham số tối ưu hóa, thêm các phương pháp lọc tín hiệu, bạn có thể cải thiện hơn nữa sự ổn định và lợi nhuận của chiến lược.
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum - Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_type = strategy.commission.percent, commission_value = 0.2 )
i_len = input(defval = 12, title = "Length", minval = 1)
i_src = input(defval = close, title = "Source")
i_percent = input(defval = true, title = "Percent?")
i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"])
momentum(seria, length, percent) =>
_mom = percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length]
_mom
mom0 = momentum(i_src, i_len, i_percent)
mom1 = momentum(mom0, 1, i_percent)
mom2 = momentum(i_src, 1, i_percent)
momX = mom1
if i_mom == "MOM2"
momX := mom2
if (mom0 > 0 and momX > 0)
strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE")
else
strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0)
strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE")
else
strategy.cancel("MomSE")
plot(mom0, color = #0000FF, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")