これはBTCUSDTの4時間のタイムフレームに基づいたDCAトレンドトレーディング戦略である.主なアイデアは,RSI指標のオーバーバイト/オーバーセールド領域で形成されたダイバージェンスがあるときに取引信号を生成することである.その後,複数のポジションを開設し,リスクを分散するためにDCAトレンドフォローアプローチを採用する.この戦略の主な特徴はリスクが低く,単純な論理である.
この戦略は,過剰購入/過剰販売のシグナルを決定するために,RSIインジケーターを使用する. RSIが70以上またはそれに等しい場合は過剰購入とみなされ,RSIが30未満またはそれに等しい場合は過剰販売とみなされる.RSIが過剰購入エリアから崩壊または過剰販売エリアから反転すると,潜在的なトップ形成を示し,販売信号を誘発する.RSIが過剰販売エリアから崩壊または過剰購入エリアから反転すると,潜在的な底形成を示し,購入信号を誘発する.
信号をさらに確認するために,戦略はまた,吸収するキャンドルスタイクパターンを組み込みます.したがって,RSIの逆転が過買いシナリオにおける下落的な吸収するキャンドル,または過売りシナリオにおける上昇する吸収するキャンドルに一致するときにのみ,確認された取引信号が起動します.これは誤った信号の確率をさらに減らすのに役立ちます.
取引シグナルが出現すると,もし購入シグナルである場合,戦略は,ポジションサイズとして閉じる価格の一定の割合でロングポジションを開き,最大5つのオープンポジションでDCA効果を達成するために条件付きの買いストップオーダーを継続します.もし売却シグナルである場合,既存のロングポジションはすべて直ちに閉鎖されます.
この戦略の最大の利点は,制御可能なリスクにあります.第一に,RSIとキャンドルスタックパターンの組み合わせは,誤った信号率を大幅に削減し,信頼できる信号を確保します.第二に,アプローチの部分的なスケーリングは,市場が取引アイデアに反して動いても,個々のポジションでの損失を最小限に抑えるようにリスクを多様化するのに役立ちます.また,過剰な集中を避けるために,ポジションの最大数は5に制限されています.最後に,単一のポジションでの制御されていない損失を避けるために条件付きストップ損失オーダーが配置されています.したがって,全体的な観点から,低いリスクは最大の強みです.
最大のリスクは,保有期間が予想以上に長くなる可能性があることです.スケーリングとトレンドフォローテクニックを採用することで,ポジション保持時間は,特に市場が好調に動いていないときに引き延ばされる傾向があります.これは,オープンポジションのコストの増加やトレンド逆転のリスクさえも引き起こします.
さらに,複雑なポジション開設ロジックは,実行エラーによるリスクも導入する.RSIとキャンドルシークルの両方の同時検討を必要とするため,急激な学習曲線があり,判断の誤差は簡単に間違ったポジションを開設につながる.これは初心者にとってかなり難しい.
戦略は次の側面から強化される:
ストップ損失ロジックを追加します.単一のポジションで制御不能な損失を避けるために,特定の損失の限界で義務的なストップ損失を導入することができます.
ポジションのサイズを最適化する.より良いリスク・リターンプロファイルを見つけるために,異なるポジションサイズをバックテストすることができます.
他の指標をテストする.信号の精度を向上させるために,RSIの代わりにMACDやKDのような代替または補助指標を試すことができます.
時間枠を最適化する. 戦略論理と最も一致するパラメータのセットを見つけるために,異なる時間枠の組み合わせをテストすることができます.
この低リスクDCAトレンドトレーディング戦略は,主にRSIプラスキャンドルスティック信号を使用し,ポジションにスケーリングするためにトレーリングストップオーダーを採用している.制御可能なリスクがあり,比較的低いリスク耐性を持つ投資家に適している.しかし,過剰な保持期間や実行エラーなどの潜在的な問題にも苦しんでいる.最適化周辺のさらなる強化は戦略のパフォーマンスを向上させるのに役立ちます.全体的には推奨されるシステムです.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Phil's Pine Scripts - low risk long DCA Trend trade", overlay=true) //// //// trade on BTCUSDT 4H chart //// $500 balance = $50 per trade, max 5 positions //// backtested 54% profit over 3 years (~270) //// //// define $ amount per trade position_size = 50000 //// Plot short / long signals // Get user input rsiSource = input(title="RSI Source", type=input.source, defval=close) rsiLength = input(title="RSI Length", type=input.integer, defval=14) rsiOverbought = input(title="RSI Overbought Level", type=input.integer, defval=70) rsiOversold = input(title="RSI Oversold Level", type=input.integer, defval=30) // Get RSI value rsiValue = rsi(rsiSource, rsiLength) rsiOB = rsiValue >= rsiOverbought rsiOS = rsiValue <= rsiOversold // Identify engulfing candles bullishEC = close > open[1] and close[1] < open[1] bearishEC = close < open[1] and close[1] > open[1] tradeSignal = ((rsiOS or rsiOS[1]) and bullishEC) or ((rsiOB or rsiOB[1]) and bearishEC) // Plot signals to chart plotshape(tradeSignal and bullishEC, title="Long", location=location.belowbar, color=color.green, transp=0, style=shape.triangleup, text="Long") plotshape(tradeSignal and bearishEC, title="Short", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="Short") //// DCA long trade when there is a bullish signal if tradeSignal and bullishEC strategy.entry("OL", strategy.long, qty=position_size / close) //// Close all positions when there is a bearish signal if tradeSignal and bearishEC strategy.close_all()