これは,指数関数移動平均 (EMA) のクロスオーバーと平均真の範囲 (ATR) のフィルターを組み合わせる定量的な取引戦略である.この戦略は,強いトレンドを特定し,変動が高い市場の条件で取引を実行することを目的とし,シャープ比率と全体的なパフォーマンスを効果的に改善する.中期から長期間のトレンドを把握するために50期および200期EMAを使用し,市場変動を評価するためにATR指標を使用し,変動が特定の
基本論理は,トレンド決定と波動性フィルタリングという2つの主要コンポーネントで構成される.トレンド決定のために,戦略は50期EMAを高速線と200期EMAをスローラインとして使用し,高速線がスローラインの上を横切ると長信号,低線を横切ると短信号を生成する.波動性フィルタリングのために,戦略は14期ATR値を計算し,価格のパーセントに変換し,ATRパーセントが既定の
この戦略は,古典的な技術指標と近代的なリスク管理概念を組み合わせている.取引タイミングを制御するためにATRフィルターを採用しながら,トレンドを把握するためにEMAクロスオーバーを使用することにより,戦略はシンプルさを維持し,強力な実用性を達成する.いくつかの固有のリスクが存在する一方で,戦略は適切な最適化およびリスク管理措置を通じて依然として良いアプリケーション価値を持っています.トレーダーは特定の市場特性および実践的なアプリケーションにおける独自のリスク偏好に応じてパラメータを調整することをお勧めします.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with ATR Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Inputs for Moving Averages fastLength = input.int(50, title="Fast EMA Length") slowLength = input.int(200, title="Slow EMA Length") // Inputs for ATR Filter atrLength = input.int(14, title="ATR Length") atrMultiplier = input.float(1.5, title="ATR Multiplier") atrThreshold = input.float(0.02, title="ATR Threshold (%)") // Calculate EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Calculate ATR atr = ta.atr(atrLength) // Convert ATR to a percentage of price atrPct = atr / close // Define Long Condition (Cross and ATR filter) longCondition = ta.crossover(fastEMA, slowEMA) and atrPct > atrThreshold / 100 // Define Short Condition shortCondition = ta.crossunder(fastEMA, slowEMA) and atrPct > atrThreshold / 100 // Define Exit Conditions exitConditionLong = ta.crossunder(fastEMA, slowEMA) exitConditionShort = ta.crossover(fastEMA, slowEMA) // Long Entry if (longCondition) strategy.entry("Long", strategy.long) // Short Entry if (shortCondition) strategy.entry("Short", strategy.short) // Long Exit if (exitConditionLong) strategy.close("Long") // Short Exit if (exitConditionShort) strategy.close("Short") // Plot EMAs for visual reference plot(fastEMA, title="50 EMA", color=color.blue) plot(slowEMA, title="200 EMA", color=color.red) // Plot ATR for reference plot(atrPct, title="ATR Percentage", color=color.orange, style=plot.style_line) hline(atrThreshold / 100, "ATR Threshold", color=color.green)