ダイナミック・ダブル・EMA トレイリング・ストップ戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-24 15:13:07
タグ:

img

概要

この戦略は,指数関数移動平均値 (EMA) とチャンデ動的収束差異 (CDC) 平均真域方法に基づくトレーリングストップを使用して,潜在的なトレンド逆転または継続を活用することを目的としています.この戦略は,エントリータイミングを決定するために複数の指標を組み合わせ,新しいトレンドを把握しながらリスクを制御するために,市場変動に基づいてストップ損失と利益レベルを設定します.

戦略の論理

この戦略は,60期および90期デュアルEMAを使用してトレンド方向を決定する.短い期間のEMAが長い期間のEMAの上に移動するクロスオーバーは上昇信号を与える.同時に,その信号線の上のMACDラインクロスオーバーは上昇見通しを確認することができる.エントリーには,価格が以前に計算されたCDCトレーリングストップレベルを超える必要があります.

脱出規則は: 価格がATRベースの 利得値に達するか CDCのストップ・ロスト値を下回ったときに ポジションを閉じる.

利点分析

この戦略は,主要なトレンド方向を判断するためのダブルEMAとMACDを組み合わせ,誤ったブレイクアウトを避けるためにエントリータイミングを確認します.トレーリングストップと利益目標レベルの両方が,効果的なリスク管理のために市場の変動に基づいて計算されます.トレンドが逆転するか継続するかに関わらず,この戦略は機会を適時に把握することができます.

さらに,この戦略の入力パラメータはカスタマイズできます.ユーザーは,EMA期間,ATR期間,CDC倍数値を独自の取引スタイルに応じて調整できます.

リスク分析

この戦略の最大のリスクは,誤ったトレンド判断である.市場が統合しているとき,EMAは容易に間違った信号を与えることができます.この時点で,MACDの確認役割は特に重要です.また,突然の出来事によって引き起こされる大きな価格ギャップに対処するために,CDCストップ損失倍数を適切に増加することが必要です.

オプティマイゼーションの方向性

  1. 最適な設定を見つけるために,EMA期間のパラメータの異なる組み合わせをテストする.
  2. 異なるCDCストップ損失倍数サイズをテストする
  3. 入力タイミングをフィルタリングするために他の指標を組み込むことを試してみてください
  4. 突発的な市場イベントに対処するためのメカニズムを追加

概要

この戦略は,トレンドおよび変動指標の利点をよく利用し,証券の潜在的な機会を特定する.パラメータ最適化とメカニズム改善を通じて,この戦略は安定性と収益性をさらに向上させる可能性がある.定量的なトレーダーに信頼性とスケーラブルな戦略的枠組みを提供します.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Improved EMA & CDC Trailing Stop Strategy", overlay=true)

// Define the inputs
ema60Period = input(60, title="EMA 60 Period")
ema90Period = input(90, title="EMA 90 Period")
atrPeriod = input(24, title="CDC ATR Period")
multiplier = input(4.0, title="CDC Multiplier")
profitTargetMultiplier = input(2.0, title="Profit Target Multiplier (ATR)")

// Calculate EMAs
ema60 = ta.ema(close, ema60Period)
ema90 = ta.ema(close, ema90Period)

// Calculate ATR 
atr = ta.atr(atrPeriod)

// MACD calculation
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// Define the trailing stop and profit target
longStop = close - multiplier * atr
shortStop = close + multiplier * atr
longProfitTarget = close + profitTargetMultiplier * atr
shortProfitTarget = close - profitTargetMultiplier * atr

// Entry conditions
longCondition = close > ema60 and ema60 > ema90 and macdLine > signalLine and close > longStop
shortCondition = close < ema60 and ema60 < ema90 and macdLine < signalLine and close < shortStop

// Exit conditions based on profit target
longProfitCondition = close >= longProfitTarget
shortProfitCondition = close <= shortProfitTarget

// Plot the EMAs, Stops, and MACD for visualization
plot(ema60, color=color.blue, title="60 EMA")
plot(ema90, color=color.red, title="90 EMA")
plot(longStop, color=color.green, title="Long Stop", style=plot.style_linebr)
plot(shortStop, color=color.red, title="Short Stop", style=plot.style_linebr)
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")

// Strategy execution using conditional blocks
if longCondition
    strategy.entry("Long", strategy.long)
if shortCondition
    strategy.entry("Short", strategy.short)

// Exit based on profit target and trailing stop
if longProfitCondition or close < longStop
    strategy.close("Long")
if shortProfitCondition or close > shortStop
    strategy.close("Short")



もっと