この戦略は,価格トレンドが逆転したかどうかを判断するために,価格トレンドの動力指標を計算し,価格逆転の機会を把握します.価格の上昇傾向または下落傾向が遅くなると,価格トレンドが逆転したことを示します.この時点で,戦略はロングまたはショートポジションを開きます.
この戦略は主にモメンタム指標の計算に基づいている.モメンタム指標は価格変動の速度と強さを反映している.戦略では2つのモメンタム指標MOMとMOM1が計算されている.
MOM 計算式:
MOM = 本日の終了価格 - N 日前の終了価格
MOM1 計算式:
MOM1 = 今日のMOM - 昨日のMOM
MOMとMOM1の値に基づいて価格が逆転したかどうかを判断する. MOM > 0とMOM1 < 0の場合,価格の上昇傾向が減少し,逆転信号が長くなっていることを示します. MOM < 0とMOM1 > 0の場合,価格の下落傾向が減少し,逆転信号が短くなっていることを示します.
主なリスク軽減方法:
この戦略は,価格動向指標を計算し,価格傾向が逆転し,自動的にロングまたはショートになっているかどうかを決定する.バックテストは,この戦略が全体的にスムーズに機能し,価格逆転点を効果的に捉えていることを示しています.パラメータ設定を最適化し,シグナルフィルターを追加することで,戦略の安定性と収益性がさらに向上することができます.
/*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")