この戦略は,複数の技術指標に基づいたトレンドフォローシステムで,移動平均値 (EMA),指向動向指数 (DMI),抑止価格振動器 (DPO),相対強度指数 (RSI),平均真の範囲 (ATR) を組み合わせています.コアコンセプトは,トレンド方向,勢い,変動を含む複数の市場特性を確認した後で取引を実行することで,取引成功率を改善することです.
この戦略は,複数の信号の確認のための他の技術指標と組み合わせた,トライプル指数関数動向平均 (EMA) システムを核心トレンド識別メカニズムとして採用しています. 1. 急速な EMA (10 日間) は,短期的な価格動向を把握する. 2. 中期EMA (25日) は中期トレンドフィルターとして機能する. 3. スロー EMA (50 日) は,全体的なトレンド方向を定義する. 4. DMI (14 日) は,トレンドの方向性強さを確認する 5. DPO は 価格 の 傾向 から 逸脱 を 確認 6. RSI (14 日) は,勢いと過買い/過売り状態を測定する. 7. ATR (14日) は,ストップ・ロストと利益目標を設定する.
取引シグナル条件: - 長: 急速EMAは中期EMAを超え,両方がスローEMAを超え,ADX>25,RSI>50,DPO>0 - 短: 急速EMAは中期EMAを下回り,両方がスローEMAを下回り,ADX>25,RSI<50,DPO<0
リスク管理対策: - 動的ATRベースのストップは市場の変動に適応する - 固定割合のリスク管理 - 複数の指標の交差確認は 偽信号を減らす
この戦略は,複数の技術指標の組み合わせを通じて,完全なトレンドフォロー取引システムを構築する.その主な特徴は,厳しい信号確認と合理的なリスク制御であり,日々のタイムフレームで中長期のトレンドを追跡するのに適しています.シグナルには一定の遅れがありますが,戦略は,厳密なリスク制御と複数の信号確認を通じて,全体的なパフォーマンスを強固に示しています.ライブ取引に適用する際には,特定の楽器のための市場環境選択とパラメータ最適化に注意を払う必要があります.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Daily Strategy with Triple EMA, DMI, DPO, RSI, and ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters fastEmaLength = input.int(10, title="Fast EMA Length") mediumEmaLength = input.int(25, title="Medium EMA Length") slowEmaLength = input.int(50, title="Slow EMA Length") dmiLength = input.int(14, title="DMI Length") adxSmoothing = input.int(14, title="ADX Smoothing") dpoLength = input.int(14, title="DPO Length") rsiLength = input.int(14, title="RSI Length") atrLength = input.int(14, title="ATR Length") riskPercentage = input.float(2.0, title="Risk Percentage", step=0.1) atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss", step=0.1) tpMultiplier = input.float(2.0, title="ATR Multiplier for Take Profit", step=0.1) // Calculate EMAs fastEma = ta.ema(close, fastEmaLength) mediumEma = ta.ema(close, mediumEmaLength) slowEma = ta.ema(close, slowEmaLength) // Calculate other indicators [adx, diPlus, diMinus] = ta.dmi(dmiLength, adxSmoothing) dpo = close - ta.sma(close, dpoLength) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) // Trading logic longCondition = ta.crossover(fastEma, mediumEma) and fastEma > slowEma and mediumEma > slowEma and adx > 25 and rsi > 50 and dpo > 0 shortCondition = ta.crossunder(fastEma, mediumEma) and fastEma < slowEma and mediumEma < slowEma and adx > 25 and rsi < 50 and dpo < 0 // Risk management riskAmount = (strategy.equity * riskPercentage) / 100 stopLoss = atr * atrMultiplier takeProfit = atr * tpMultiplier // Entry and exit logic if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Exit Long", "Buy", stop=close - stopLoss, limit=close + takeProfit) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Exit Short", "Sell", stop=close + stopLoss, limit=close - takeProfit) // Plot indicators plot(fastEma, color=color.green, title="Fast EMA") plot(mediumEma, color=color.orange, title="Medium EMA") plot(slowEma, color=color.red, title="Slow EMA") hline(25, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)