この戦略は,トレンドフォローのために3つのスーパートレンド指標と指数関数移動平均 (EMA) を組み合わせます. 異なるセンシビリティを持つ3つのスーパートレンドラインと1つのEMAラインを使用して,多次元確認を通じて市場のトレンドを把握します. この戦略は,動的サポート/レジスタンスレベルを計算するためにATR (平均真区間) を利用し,これらのラインに対する価格ポジションに基づいてトレンド方向と取引信号を決定します.
戦略は以下の基本要素で構成されています.
取引コストを増加させるため,様々な市場で頻繁な取引を生む可能性があります. 解決策:信号フィルターを追加するか,移動平均期を延長します.
トレンド逆転の開始時の潜在的な遅延 解決策: 支援のために動力指標を組み込む.
複数の確認が必要な場合 収益性の高い機会を逃すかもしれません 解決策: 市場特性を考慮して確認条件を調整する.
これは論理的に厳格で安定したトレンドフォロー戦略である.複数の技術指標を組み合わせることで,良質なリスク制御能力を維持しながら信号の信頼性を確保する.戦略パラメータは高度に調整可能で,異なる市場条件に最適化することができる.固有の遅延がある一方で,適切な最適化はリスクと利益の間の良いバランスを達成することができる.
/*backtest start: 2024-12-19 00:00:00 end: 2024-12-26 00:00:00 period: 45m basePeriod: 45m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend EMA Strategy", overlay=true) // Input Parameters ema_length = input(50, title="EMA Length") supertrend_atr_period = input(10, title="ATR Period") supertrend_multiplier1 = input.float(3.0, title="Supertrend Multiplier 1") supertrend_multiplier2 = input.float(2.0, title="Supertrend Multiplier 2") supertrend_multiplier3 = input.float(1.0, title="Supertrend Multiplier 3") // Calculations emaValue = ta.ema(close, ema_length) [supertrend1, SupertrendDirection1] = ta.supertrend(supertrend_multiplier1, supertrend_atr_period) [supertrend2, SupertrendDirection2] = ta.supertrend(supertrend_multiplier2, supertrend_atr_period) [supertrend3, SupertrendDirection3] = ta.supertrend(supertrend_multiplier3, supertrend_atr_period) // Plot Indicators plot(emaValue, title="EMA", color=color.blue, linewidth=2) plot(supertrend1, title="Supertrend 1 (10,3)", color=(SupertrendDirection1 == -1 ? color.green : color.red), linewidth=1, style=plot.style_line) plot(supertrend2, title="Supertrend 2 (10,2)", color=(SupertrendDirection2 == -1 ? color.green : color.red), linewidth=1, style=plot.style_line) plot(supertrend3, title="Supertrend 3 (10,1)", color=(SupertrendDirection3 == -1 ? color.green : color.red), linewidth=1, style=plot.style_line) // Entry Conditions long_condition = (SupertrendDirection1 == -1 and SupertrendDirection2 == -1 and SupertrendDirection3 == -1 and close > emaValue) short_condition = (SupertrendDirection1 == 1 and SupertrendDirection2 == 1 and SupertrendDirection3 == 1 and close < emaValue) // Exit Conditions long_exit = (SupertrendDirection3 == 1) short_exit = (SupertrendDirection3 == -1) // Execute Strategy if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) if (long_exit) strategy.close("Long") if (short_exit) strategy.close("Short")