Strategi ini menggunakan indikator dinamika harga untuk menilai apakah tren pergerakan harga telah berbalik untuk menangkap peluang untuk berbalik. Strategi ini membuka posisi over atau under ketika tren kenaikan harga melambat atau tren penurunan melambat, yang menunjukkan bahwa dinamika harga telah berbalik.
Strategi ini terutama didasarkan pada penghitungan indikator momentum. Indikator momentum mencerminkan kecepatan dan intensitas perubahan harga. Strategi ini menghitung dua indikator momentum MOM dan MOM1.
Rumus untuk menghitung MOM:
MOM = harga penutupan hari - harga penutupan N hari sebelumnya
Rumus MOM1 adalah:
MOM1 = MOM hari ini - MOM kemarin
Berdasarkan nilai MOM dan MOM1 menilai apakah harga terjadi reversal. Jika MOM > 0 dan MOM1 < 0, menunjukkan harga trend naik melambat, muncul sinyal reversal, melakukan lebih banyak; Jika MOM < 0 dan MOM1 > 0, menunjukkan harga trend turun melambat, muncul sinyal reversal, kosong.
Metode utama untuk mengurangi risiko:
Strategi ini dengan menghitung indikator pergerakan harga, menilai apakah tren pergerakan harga berbalik, dan secara otomatis melakukan lebih banyak pengurangan. Ulasan menunjukkan bahwa strategi ini secara keseluruhan bekerja dengan lancar dan secara efektif menangkap titik-titik perubahan harga. Dengan cara mengoptimalkan pengaturan parameter, menambahkan filter sinyal, dan lain-lain, Anda dapat meningkatkan stabilitas strategi dan tingkat pengembalian.
/*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")