資源の読み込みに... 荷物...

オシレーターとダイナミックサポート/レジスタンスの取引戦略を持つマルチEMAクロス

作者: リン・ハーンチャオチャン開催日:2024年12月27日 14:45:40
タグ:エイマATR

img

概要

この戦略は,複数の指数移動平均値 (EMA) クロスオーバー,平均真の範囲 (ATR),およびピボットポイントサポート/レジスタンスレベルを組み合わせた包括的な取引システムである.これは,ATR波動性範囲とキー価格レベルと組み合わせて,中長期EMAに対する短期EMAのクロス分析により,市場のトレンド逆転を捕捉する.

戦略の原則

この戦略は技術分析の3つの側面に基づいています.

  1. トレンド識別: トリプルEMA (4,9,および18期) を用いて,短期EMA(4) と中期EMA(9) と長期EMA(18) の同期交差によってトレンド方向性を確認する.
  2. 波動範囲: 14 期間の ATR を含め,市場の波動性を定量化し,ダイナミックな取引の値を設定します.
  3. 価格サポート/レジスタンス: 7つの主要価格レベル (PP,R1-R3,S1-S3) を基準点として設定し,日々のピボットポイントシステム (PPSignal) を実装します.

取引規則は明確に定義されています.

  • ロング エントリー: EMA4 は EMA9 と EMA18 の両方を越えて,閉じる価格は EMA9 + ATR の上を突破する.
  • ショート エントリー: EMA4 は EMA9 と EMA18 の両方の下に突破し,閉じる価格は EMA9 - ATR の下に突破する.
  • Stop Loss: EMA4 レベルを動的に追跡する

戦略 の 利点

  1. 多次元分析: 傾向,変動,価格構造の分析を組み合わせ,信号の信頼性を向上させる
  2. ダイナミックアダプテーション:ATRとダイナミックサポート/レジスタンスレベルを通じて異なる市場状況に適応する
  3. 総合的なリスク管理: 利益保護とリスク管理のためのダイナミックストップ・ロスのメカニズムを実施する
  4. 強力な信号確認:複数の技術指標の収束が必要で,誤ったブレイクリスクを減らす

戦略リスク

  1. 混乱する市場リスク: konsolidiation 期間に頻繁に誤った信号を生む可能性があります.
  2. 遅延リスク: 移動平均値の固有の遅延は,最適なエントリーポイントを逃す可能性があります.
  3. ギャップリスク: 一夜間のギャップは,ストップ・ロスのレベルを非効果的にする可能性があります.
  4. パラメータ感度: 異なる期間の組み合わせは,大きく異なる結果を生む可能性があります.

戦略の最適化方向

  1. 音量統合:クロスオーバー信号の音量確認を追加
  2. ダイナミックパラメータ最適化: 市場の変動に基づいて EMA 期間を調整する
  3. 強化されたストップ損失:ATRに基づく浮遊ストップの実施を検討する
  4. 市場環境フィルター: 強いトレンドの間だけにトレンド強さの指標を追加する
  5. タイムフィルター: 異なるタイムフレームの特徴に基づいて最適な取引セッションを確立

概要

この戦略は,複数の技術指標のシネージを通じて包括的な取引システムを構築する.その主要な強みは,多次元信号確認メカニズムと堅牢なリスク管理フレームワークにあります.しかし,トレーダーは特定の市場状況に基づいてパラメータを最適化し,システムを改善する必要があります.提案された最適化方向性によって,戦略の安定性と信頼性がさらに向上することができます.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover + ATR + PPSignal", overlay=true)

//--------------------------------------------------------------------
// 1. Cálculo de EMAs y ATR
//--------------------------------------------------------------------
ema4      = ta.ema(close, 4)
ema9      = ta.ema(close, 9)
ema18     = ta.ema(close, 18)
atrLength = 14
atr       = ta.atr(atrLength)

//--------------------------------------------------------------------
// 2. Cálculo de Pivot Points diarios (PPSignal)
//    Tomamos datos del día anterior (timeframe D) para calcularlos
//--------------------------------------------------------------------
dayHigh  = request.security(syminfo.tickerid, "D", high[1])
dayLow   = request.security(syminfo.tickerid, "D", low[1])
dayClose = request.security(syminfo.tickerid, "D", close[1])

// Fórmula Pivot Points estándar
pp = (dayHigh + dayLow + dayClose) / 3.0
r1 = 2.0 * pp - dayLow
s1 = 2.0 * pp - dayHigh
r2 = pp + (r1 - s1)
s2 = pp - (r1 - s1)
r3 = dayHigh + 2.0 * (pp - dayLow)
s3 = dayLow - 2.0 * (dayHigh - pp)

//--------------------------------------------------------------------
// 3. Definir colores para las EMAs
//--------------------------------------------------------------------
col4  = color.green   // EMA 4
col9  = color.yellow  // EMA 9
col18 = color.red     // EMA 18

//--------------------------------------------------------------------
// 4. Dibujar indicadores en el gráfico
//--------------------------------------------------------------------

// EMAs
plot(ema4,  title="EMA 4",  color=col4,  linewidth=2)
plot(ema9,  title="EMA 9",  color=col9,  linewidth=2)
plot(ema18, title="EMA 18", color=col18, linewidth=2)

// ATR
plot(atr, title="ATR", color=color.blue, linewidth=2)

// Pivot Points (PPSignal)
plot(pp, title="Pivot (PP)", color=color.new(color.white, 0),  style=plot.style_line, linewidth=1)
plot(r1, title="R1",        color=color.new(color.red,   0),  style=plot.style_line, linewidth=1)
plot(r2, title="R2",        color=color.new(color.red,   0),  style=plot.style_line, linewidth=1)
plot(r3, title="R3",        color=color.new(color.red,   0),  style=plot.style_line, linewidth=1)
plot(s1, title="S1",        color=color.new(color.green, 0),  style=plot.style_line, linewidth=1)
plot(s2, title="S2",        color=color.new(color.green, 0),  style=plot.style_line, linewidth=1)
plot(s3, title="S3",        color=color.new(color.green, 0),  style=plot.style_line, linewidth=1)

//--------------------------------------------------------------------
// 5. Condiciones de cruce (EMA4 vs EMA9 y EMA18) y estrategia
//--------------------------------------------------------------------
crossedAbove = ta.crossover(ema4, ema9) and ta.crossover(ema4, ema18)
crossedBelow = ta.crossunder(ema4, ema9) and ta.crossunder(ema4, ema18)

// Señales de Buy y Sell basadas en cruces + condición con ATR
if crossedAbove and close > ema9 + atr
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=ema4)

if crossedBelow and close < ema9 - atr
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=ema4)

関連性

もっと