この戦略は,大きなキャンドル識別とRSIダイバージェンスを主要な信号として組み合わせ,初期固定ストップとダイナミックトレーリングストップの両方を組み込み,完全なトレンドフォロー取引システムを形成する.この戦略は,現在のキャンドルボディを前5カンドルと比較して重要な価格動きを特定し,RSIダイバージェンスを使用してインパクトの変化を確認し,リスク管理と利益保護のためのダブルストップメカニズムを使用する.
この戦略は4つのコアコンポーネントで構成される: 1)Large Candle Identification - 現在のキャンドルボディを前5カンドルと比較して重要な価格勢いを決定する; 2)RSIディバージェンスの分析 - 5期間の高速RSIと14期間の遅いRSIの違いを使用してモメント変化を測定する; 3)Initial Stop - 初期リスクを制御するためにエントリーで200ポイント固定ストップ損失を設定する; 4)Trailing Stop - 200ポイントの利益後に活性化し,ダイナミックな150ポイントの追随距離を維持する.この戦略は,全体的な市場の方向性を決定するのに役立つトレンドフィルターとして21期EMAも使用する.
この戦略は,大きなキャンドルとRSIディバージェンスを組み合わせて,完全なトレンドフォローシステムを構築し,デュアルストップメカニズムを通じて包括的なリスク管理を達成する.明確なトレンドと高い変動性のある市場に適していますが,特定の市場特性に基づいてパラメータ調整を必要とする.提案された最適化方向性によって,戦略の安定性と収益性がさらに向上することができます.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy('[F][IND] - Big Candle Identifier with RSI Divergence and Advanced Stops', shorttitle = '[F][IND] Big Candle RSI Trail', overlay = true) // Inputs for the trailing stop and stop loss trail_start_ticks = input.int(200, "Trailing Start Ticks", tooltip="The number of ticks the price must move in the profitable direction before the trailing stop starts.") trail_distance_ticks = input.int(150, "Trailing Distance Ticks", tooltip="The distance in ticks between the trailing stop and the price once the trailing stop starts.") initial_stop_loss_points = input.int(200, "Initial Stop Loss Points", tooltip="The fixed stop loss applied immediately after entering a trade.") // Tick size based on instrument tick_size = syminfo.mintick // Calculate trailing start and distance in price trail_start_price = trail_start_ticks * tick_size trail_distance_price = trail_distance_ticks * tick_size initial_stop_loss_price = initial_stop_loss_points * tick_size // Identify big candles body0 = math.abs(close[0] - open[0]) body1 = math.abs(close[1] - open[1]) body2 = math.abs(close[2] - open[2]) body3 = math.abs(close[3] - open[3]) body4 = math.abs(close[4] - open[4]) body5 = math.abs(close[5] - open[5]) bullishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open < close bearishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open > close // RSI Divergence rsi_fast = ta.rsi(close, 5) rsi_slow = ta.rsi(close, 14) divergence = rsi_fast - rsi_slow // Trade Entry Logic if bullishBigCandle strategy.entry('Long', strategy.long, stop=low - initial_stop_loss_price) if bearishBigCandle strategy.entry('Short', strategy.short, stop=high + initial_stop_loss_price) // Trailing Stop Logic var float trail_stop = na if strategy.position_size > 0 // Long Position entry_price = strategy.position_avg_price current_profit = close - entry_price if current_profit >= trail_start_price trail_stop := math.max(trail_stop, close - trail_distance_price) strategy.exit("Trailing Stop Long", "Long", stop=trail_stop) if strategy.position_size < 0 // Short Position entry_price = strategy.position_avg_price current_profit = entry_price - close if current_profit >= trail_start_price trail_stop := math.min(trail_stop, close + trail_distance_price) strategy.exit("Trailing Stop Short", "Short", stop=trail_stop) // Plotting Trailing Stop plot(strategy.position_size > 0 ? trail_stop : na, color=color.green, title="Trailing Stop (Long)") plot(strategy.position_size < 0 ? trail_stop : na, color=color.red, title="Trailing Stop (Short)") // Plotting RSI Divergence plot(divergence, color=divergence > 0 ? color.lime : color.red, linewidth=2, title="RSI Divergence") hline(0) // Plotting EMA ema21 = ta.ema(close, 21) plot(ema21, color=color.blue, title="21 EMA")