この戦略は,2つの期間の移動平均値 (21日および55日),RSIモメントインジケーター,およびボリューム分析を組み合わせるトレンドフォロー戦略である.この戦略は,トレンド方向を確認し,トレンドの正確性を向上させるためにRSIおよびボリュームインジケーターを通じて取引信号をフィルタリングしながら,価格情報 (価格,モメント,ボリューム) を3次元から分析する.この戦略には,短期移動平均値の価格突破,RSIの平均値を超越し,トレンドの有効性を確認するためのボリューム増加が必要である.
この戦略は三重フィルタリングメカニズムを使用しています.
購入条件は,次の条件をすべて要求します.
販売条件は次のいずれかを要求します:
この戦略は,技術分析の3つの必須要素 (価格,量,勢い) を包括的に利用するトレンドフォロー戦略である.複数のフィルタリングメカニズムを通じて,戦略はリスク制御能力を維持しながら信号の信頼性を保証する.いくつかの固有の制限があるにもかかわらず,継続的な最適化と改善を通じて,戦略は実際の取引で安定した収益を達成する可能性がある.戦略は明確なトレンドと十分な流動性のある市場で特にうまく機能する可能性があります.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("21/55 MA with RSI Crossover", overlay=true) // Inputs for moving averages ma21_length = input.int(21, title="21-day Moving Average Length", minval=1) ma55_length = input.int(55, title="55-day Moving Average Length", minval=1) // RSI settings rsi_length = input.int(13, title="RSI Length", minval=1) rsi_avg_length = input.int(13, title="RSI Average Length", minval=1) // Moving averages ma21 = ta.sma(close, ma21_length) ma55 = ta.sma(close, ma55_length) // Volume settings vol_ma_length = input.int(21, title="Volume MA Length", minval=1) // Volume moving average vol_ma = ta.sma(volume, vol_ma_length) // RSI calculation rsi = ta.rsi(close, rsi_length) rsi_avg = ta.sma(rsi, rsi_avg_length) // Buy condition // buy_condition = close > ma21 and ta.crossover(rsi, rsi_avg) and volume > vol_ma buy_condition = close > ma21 and rsi > rsi_avg and volume > vol_ma // Sell condition // sell_condition = close < ma55 or ta.crossunder(rsi, rsi_avg) sell_condition = ta.crossunder(close, ma55) or ta.crossunder(rsi, rsi_avg) // Execute trades if (buy_condition) strategy.entry("Buy", strategy.long, comment="Buy Signal") if (sell_condition) strategy.close("Buy", comment="Sell Signal") // Plot moving averages for reference plot(ma21, color=color.blue, title="21-day MA") plot(ma55, color=color.red, title="55-day MA") // Plot RSI and RSI average for reference rsi_plot = input.bool(true, title="Show RSI?", inline="rsi") plot(rsi_plot ? rsi : na, color=color.green, title="RSI") plot(rsi_plot ? rsi_avg : na, color=color.orange, title="RSI Average")