Strategi ini mengira penunjuk momentum harga untuk menentukan sama ada trend harga telah berbalik, untuk menangkap peluang pembalikan harga. Apabila trend menaik atau penurunan harga melambatkan, ia menunjukkan bahawa momentum harga telah berbalik. Pada masa ini, strategi akan membuka kedudukan panjang atau pendek.
Strategi ini terutamanya berdasarkan pengiraan penunjuk momentum. Penunjuk momentum mencerminkan kelajuan dan kekuatan perubahan harga. Dua penunjuk momentum MOM dan MOM1 dikira dalam strategi.
Formula pengiraan MOM:
MOM = Harga penutupan hari ini - Harga penutupan N hari yang lalu
Formula pengiraan MOM1:
MOM1 = MOM hari ini - MOM semalam
Menghakimi sama ada harga telah berbalik mengikut nilai MOM dan MOM1. Jika MOM > 0 dan MOM1 < 0, ini bermakna trend kenaikan harga telah melambatkan dan isyarat pembalikan kelihatan panjang. Jika MOM < 0 dan MOM1 > 0, ini bermakna trend penurunan harga telah melambatkan dan isyarat pembalikan kelihatan pendek.
Kaedah pengurangan risiko utama:
Strategi ini mengira penunjuk momentum harga untuk menentukan sama ada trend harga telah berbalik, secara automatik pergi panjang atau pendek. Ujian belakang menunjukkan bahawa strategi ini berfungsi dengan lancar secara keseluruhan dan berkesan menangkap titik pembalikan harga. Dengan mengoptimumkan tetapan parameter, menambah penapis isyarat, dll., Kestabilan dan keuntungan strategi dapat ditingkatkan lagi.
/*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")