この戦略は,モメンタムと平均逆転理論を組み合わせたハイブリッド取引システムである. 変化率 (ROC) インジケーターとボリンジャーバンドを使用して市場過剰購入および過剰販売状況を特定し,特定の
この戦略は,短期間の価格変動を計算するために,2つのセットのボリンジャーバンドとともに,2つの期間のROC指標を使用しています: 過売状況とエントリーシグナルのための短期 (18期,標準偏差1.7) および 過買い状況と出口シグナルのための長期 (21期,標準偏差2.1) ロングポジションは,ROCが下のボリンジャーバンドを越えると開始され,弱いボリンジャーバンドから強いボリンジャーバンドに移行することを示し,ROCが上部のボリンジャーバンドを下回ると閉鎖されます. 弱まるボリンジャーバンドをシグナル化します. 戦略はまた,過買い (赤) と過売 (緑) ゾーンを強調するために背景色を使用します.
アダプティブ・モメンタム・ミニアン・リバーション・クロスオーバー戦略は,ROC指標とデュアル・ボリンジャー・バンドを組み合わせて異なる市場環境に適応できる取引システムを構築する.柔軟性を維持しながらも,戦略はリスク管理を強調し,実用的な価値を示している.継続的な最適化と改善を通じて,この戦略は実際の取引でより良いパフォーマンスの約束を示している.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Adaptive Momentum Reversion Strategy ", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1) // Input: ROC Period rocPeriod = input.int(2, title="ROC Period", minval=1) // Input: Bollinger Bands Settings (Lower Band) bbLowerLength = input.int(18, title="Lower Bollinger Band Length", minval=1) bbLowerStdDev = input.float(1.7, title="Lower Bollinger Band StdDev", minval=0.1, step=0.1) // Input: Bollinger Bands Settings (Upper Band) bbUpperLength = input.int(21, title="Upper Bollinger Band Length", minval=1) bbUpperStdDev = input.float(2.1, title="Upper Bollinger Band StdDev", minval=0.1, step=0.1) // ROC Calculation rocValue = (close - close[rocPeriod]) / close[rocPeriod] * 100 // Bollinger Bands Calculation bbLowerBasis = ta.sma(rocValue, bbLowerLength) // Basis for Lower Band bbLower = bbLowerBasis - bbLowerStdDev * ta.stdev(rocValue, bbLowerLength) // Lower Band bbUpperBasis = ta.sma(rocValue, bbUpperLength) // Basis for Upper Band bbUpper = bbUpperBasis + bbUpperStdDev * ta.stdev(rocValue, bbUpperLength) // Upper Band // Plot ROC plot(rocValue, color=color.blue, linewidth=2, title="ROC Value") // Plot Bollinger Bands plot(bbLowerBasis, color=color.gray, linewidth=1, title="Lower BB Basis (SMA)") plot(bbLower, color=color.green, linewidth=1, title="Lower Bollinger Band") plot(bbUpperBasis, color=color.gray, linewidth=1, title="Upper BB Basis (SMA)") plot(bbUpper, color=color.red, linewidth=1, title="Upper Bollinger Band") // Add Zero Line for Reference hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted) // Entry Condition: Long when ROC crosses above the lower Bollinger Band longCondition = ta.crossover(rocValue, bbLower) if (longCondition) strategy.entry("Long", strategy.long) // Exit Condition: Exit on Upper Bollinger Band Cross or ROC drops below Lower Band again exitCondition = ta.crossunder(rocValue, bbUpper) if (exitCondition) strategy.close("Long") // Background Color for Extreme Conditions bgcolor(rocValue > bbUpper ? color.new(color.red, 80) : na, title="Overbought (ROC above Upper BB)") bgcolor(rocValue < bbLower ? color.new(color.green, 80) : na, title="Oversold (ROC below Lower BB)")