
トレンド駆動ピラミッド回復型均線交差戦略は,トレンド追跡,反転シグナル認識,ピラミッド型のポジション回復機構を組み合わせた総合的な量化取引システムである.この戦略は,主に複数の指数移動平均 ((EMA) を交差して市場のトレンド方向を判断し,吸収形状の確認入場信号を使用し,ピラミッド型の資金管理とモバイルストップ・ローズ機能を併用して,完全な取引閉環を構築する.この戦略は,4時間周期に特化して設計されており,大型指数市場の取引に適しており,中長期のトレンドの機会を捉えながらリスク管理機構を提供する.
この戦略は,主に3つの異なる周期の指数移動平均 ((EMA20,EMA50,EMA200) を利用して市場動向を判断し,入場シグナルを誘発する条件として図形状を組み合わせます.具体的には,戦略の動作原理は以下の通りです.
トレンド判断の仕組み:
入口信号:
選択する:
リスク管理:
ピラミッドの復元機構:
コード実装では,まず3つのEMA指標を定義し,その後,躊躇性のを排除するためにフィルターロジックを構築した.戦略には2種類の買い条件がある:トレンド買いと反転買い.トレンド買いはEMA指標が多頭配列を満たし,看板の飲み込み形が現れるように要求する.反転買いは空頭配列市場の反転の信号として,看板の飲み込み形を探している.ストープとストップポイントは,固定数点に基づいて計算され,特定の利益に達した後にトラッキングストープが起動される.ピラミッド回復機構は,取引結果を追跡し,連続的な損失の際,指数でポジションサイズを増加させ,損失の速度を迅速に回復させる.
市場への適応性: トレンド追跡と反転戦略を同時に含めることで,このシステムは,単一の市場状態に限定されるのではなく,さまざまな市場環境で取引機会を見つけることができます.
多層のリスク管理: 固定ストップ,比率ストップ,ストップ・トラッキングの三重保護メカニズムを組み合わせて,資金を保護しながら潜在的利益を制限しない.
ピラミッドの復元機構: 回復システムを革新的に導入し,科学的にポジションを増やすことで,連続的な損失に対応し,資金回復の効率を向上させる.このメカニズムにより,短期的な撤回後に口座の純資産をより迅速に回復することができる.
動的なポジション管理: 取引のパフォーマンスに応じてポジションを自動的に調整し,利益の時期には基本ポジションを維持し,損失の時期にはポジションを徐々に増やすことで回復を加速する.
技術指標と形状の組み合わせ: 移動平均などの技術指標に依存するだけでなく,図形状分析を組み合わせて,複数の確認によって信号品質を向上させる.
詳細な入口フィルター: body_ratioのパラメータで不審なをフィルターし,偽信号のリスクを低減する.
簡潔なビジュアルマーク取引信号はグラフに直視的に表示され,分析とリアルタイムモニタリングを容易にします.
ポジションの急速な膨張のリスク:ピラミッド回復機構は,連続的な損失の場合,ポジションの急速な増加を引き起こし,市場が継続的に不利な場合,損失を悪化させる可能性があります. max_recoveryパラメータを合理的な範囲で制御し,総資金量に応じてbase_positionを調整することをお勧めします.
トレンド転換の遅れ移動平均に基づくシステムは,トレンド転換の初期に反応が遅いため,入場または出場のタイミングが遅れる可能性があります.RSIまたはMACDのようなより敏感な指標を併用して補助判断として考慮することができます.
固定ポイントの損失のリスク: 市場の波動性が変化すると,固定ポイントストップがあまりにも幅広くまたは狭すぎることがあります.ATR (平均リアル波幅) を使ってストップ距離を動的に調整することを検討することをお勧めします.
形をとらえる偽信号:横盤市場では,吞食形態がより多くの偽信号を生成する可能性がある。取引量確認または他の補助指標を増やすことによって信号品質を向上させることができる。
一方向取引制限:現在の戦略は多操作のみを実行し,熊市で空調の機会を逃す可能性があります. 二方向市場に対応するために対称的な空調ロジックを追加することを検討してください.
資金管理のプレッシャー:最大回復レベルでは,より大きな資金のサポートが必要である.総アカウントの規模に応じてピラミッド_ファクターとmax_recoveryパラメータを慎重に設定することが推奨されている.
ダイナミック・ストップ・メカニズム: 固定ポイントストップをATRベースのダイナミックストップに置き換えて,市場の変動性変化により適しています. 実施方法は,現在のATR値を計算し,その後,入場価格のATRの倍数で減算したストップを設定します.
余空論理を追加する:対称的な空調条件を追加し,戦略を下落市場でも同様に有効にします. 実施方法は,既存の買入ロジック,逆の設定条件,入場方向を複製することです.
トレンド判断の改善:EMAに加えて,より多くのトレンド確認ツール,例えばADX (トレンド強度指標) を導入し,より強いトレンド環境をフィルターする.トレンド強度フィルターとして”ADX > 25”のような条件を追加できる.
リスク比率の最適化: 履歴回帰データに基づいて,最適のストップとストップの比率を見つけるには,tp_multiplierパラメータを調整する必要があるかもしれません。
タイムフィルター:時間フィルター条件を追加し,低波動性または不安定な市場の時間を避けます.特にインデックス取引のために,市場の活発な時間に焦点を当てることができます.
回復システムの最適化: 固定倍数ではなく,勝率と敗率に基づいてピラミッド_ファクターを動的に調整することを考えること. 最近のパフォーマンスに基づく自己調整の仕組みを実現することができる.
利益の部分的なロックアップ: 一定の利潤を達成した後に,一部の利潤をロックするために,残りのポジションをトレンド追跡に留めながら,分割して平仓する.
感情指標の統合:VIXや市場幅の指標のような市場情緒指標を導入し,極端な情緒の時に戦略パラメータを調整するか,取引を一時停止する.
トレンドドライブピラミッド回復型均線交差戦略は,複数の取引理念を組み合わせた総合的なシステムで,主にEMAを交差してトレンドを判断し,形状確認シグナルを吸収し,革新的なピラミッド回復メカニズムと連携してリスクを管理し,資金効率を最適化します.戦略の核心的な優位性は,異なる市場環境に適応でき,同時に完善したリスク制御メカニズムを提供することです.
この戦略は,テクニカル分析の知識のある,長期にわたって安定したリターンを追求するために中等なリスクを受け入れることを望むトレーダーに特に適しています.上記の最適化の方向を適用することにより,戦略の安定性と適応性は,特に市場の変動が大きい環境でさらに向上することができます.
全体として,この戦略は,技術分析,リスク管理,資金管理を統合して,現代的な量的な取引で利用する典型的な手法であり,トレーダーに個人的ニーズと市場環境に応じてカスタマイズして最適化できる拡張可能な枠組みを提供します.
/*backtest
start: 2024-06-23 00:00:00
end: 2025-06-21 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("DJ30 Sniper (Trend + Reversal Buy + Pyramid Recovery + Trailing)", overlay=true, default_qty_value=1)
// === INPUTS ===
ema_fast = input.int(20, "EMA Fast")
ema_mid = input.int(50, "EMA Mid")
ema_slow = input.int(200, "EMA Slow")
rsi_period = input.int(14, "RSI Period")
sl_points = input.int(650, "Stop Loss (Points)")
tp_extra = input.int(200, "Extra TP Points")
tp_multiplier = 5
trailing_trigger = input.int(100, "Activate Trailing SL After (Points)")
trailing_stop = input.int(500, "Trailing Stop Size (Points)")
// === Recovery Settings ===
max_recovery = input.int(3, "Max Pyramid Levels", minval=1)
base_position = input.float(1000, "Base Order Size ($)") // 🔁 doubled from 500 to 1000
pyramid_factor = input.float(2.0, "Recovery Multiplier")
// === MAs ===
ema20 = ta.ema(close, ema_fast)
ema50 = ta.ema(close, ema_mid)
ema200 = ta.ema(close, ema_slow)
// === Candle Filter ===
body = math.abs(close - open)
candle_range = high - low
body_ratio = candle_range != 0 ? body / candle_range : 0
not_indecision = body_ratio > 0.3
// === Buy Conditions ===
bull_trend = ema20 > ema50 and ema50 > ema200 and close > ema200
engulfing_bullish = close > open and close > close[1] and open < open[1]
buy_trend = bull_trend and engulfing_bullish and not_indecision
bear_trend = ema20 < ema50 and ema50 < ema200 and close < ema200
engulfing_bearish = close < open and close < close[1] and open > open[1]
buy_reversal = bear_trend and engulfing_bearish and not_indecision
buy_condition = buy_trend or buy_reversal
// === SL/TP ===
tp_points = sl_points * tp_multiplier + tp_extra
sl_buy = close - sl_points * syminfo.mintick
tp_buy = close + tp_points * syminfo.mintick
// === Recovery Logic ===
var int recovery_level = 0
var float position_size = base_position
if strategy.closedtrades > 0
last_trade = strategy.closedtrades - 1
last_profit = strategy.closedtrades.profit(last_trade)
if last_profit > 0
recovery_level := 0
else
recovery_level := math.min(recovery_level + 1, max_recovery)
position_size := base_position * math.pow(pyramid_factor, recovery_level)
// === Trade Execution ===
if buy_condition and strategy.opentrades == 0
strategy.entry("Buy DJ30", strategy.long, qty=position_size)
// === Exit Logic ===
if strategy.opentrades > 0
entry_price = strategy.opentrades.entry_price(0)
unrealized_points = (close - entry_price) / syminfo.mintick
if unrealized_points >= trailing_trigger
strategy.exit("Trail Exit", from_entry="Buy DJ30", trail_points=trailing_stop, trail_offset=trailing_stop)
else
strategy.exit("Fixed Exit", from_entry="Buy DJ30", stop=sl_buy, limit=tp_buy)
// === Visual Markers ===
plotshape(buy_trend, location=location.belowbar, style=shape.labelup, color=color.green, text="TrendBuy")
plotshape(buy_reversal, location=location.belowbar, style=shape.labelup, color=color.orange, text="RevBuy")