これは,Williams %Rと相対強度指数 (RSI) を用いた二重のモメンタム突破確認に基づく定量的な取引戦略である.この戦略は,二つのモメンタム指標のクロスブレークスルーを通じて取引信号を識別し,偽のブレイクアウトのリスクを効果的に軽減する.過剰購入と過剰販売の領域で取引機会を探し,両方の指標の相互確認を通じて取引精度を向上させる.
この戦略は,30期間のウィリアムズ%Rと7期間のRSIを主要指標として採用している.ウィリアムズ%Rが -80を超え,RSIが同時に20を超えると購入信号が起動し,ウィリアムズ%Rが -20を超え,RSIが同時に80を超えると販売信号が生成される.この二重確認メカニズムは,単一の指標からの潜在的な偽信号を効果的にフィルタリングする.この戦略は,より正確な指標値のために期間中の最高値と最低値を計算することによって,ウィリアムズ%Rの手動計算を実装する.
この戦略は,ウィリアムズ%RとRSIのシネージを通じて堅牢な取引システムを構築する. 双子のモメント確認メカニズムは,誤った信号リスクを効果的に軽減し,過剰購入および過剰販売ゾーンでの取引は良い利益の可能性を提供します.適切なリスク管理と継続的な最適化により,戦略はさまざまな市場環境で安定したパフォーマンスを維持することができます.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Williams %R + RSI Strategy", overlay=true) // Inputs for Williams %R wpr_length = input.int(30, title="Williams %R Length", minval=1) wpr_upper = input.int(-20, title="Williams %R Upper Band", minval=-100, maxval=0) wpr_lower = input.int(-80, title="Williams %R Lower Band", minval=-100, maxval=0) // Inputs for RSI rsi_length = input.int(7, title="RSI Length", minval=1) rsi_upper = input.int(80, title="RSI Upper Band", minval=0, maxval=100) rsi_lower = input.int(20, title="RSI Lower Band", minval=0, maxval=100) // Calculate Williams %R Manually highest_high = ta.highest(high, wpr_length) lowest_low = ta.lowest(low, wpr_length) wpr = ((highest_high - close) / (highest_high - lowest_low)) * -100 // Calculate RSI rsi = ta.rsi(close, rsi_length) // Entry and Exit Conditions longCondition = ta.crossover(wpr, wpr_lower) and ta.crossover(rsi, rsi_lower) shortCondition = ta.crossunder(wpr, wpr_upper) and ta.crossunder(rsi, rsi_upper) // Plot Buy/Sell Signals plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Entry and Exit if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short)