Sumber dimuat naik... memuat...

Multi-EMA Cross dengan Osilator dan Strategi Perdagangan Sokongan/Rintangan Dinamik

Penulis:ChaoZhang, Tarikh: 2024-12-27 14:45:40
Tag:EMAATR

img

Ringkasan

Strategi ini adalah sistem dagangan komprehensif yang menggabungkan pelbagai crossover Exponential Moving Averages (EMA), Average True Range (ATR), dan tahap sokongan / rintangan Titik Pivot. Ia menangkap pembalikan trend pasaran dengan menganalisis persilangan EMA jangka pendek terhadap EMA jangka menengah dan panjang, digabungkan dengan julat turun naik ATR dan tahap harga utama.

Prinsip Strategi

Strategi ini berdasarkan tiga dimensi analisis teknikal:

  1. Pengesanan Trend: Menggunakan tiga EMA (4, 9, dan 18 tempoh), mengesahkan hala tuju trend melalui persimpangan yang diselaraskan EMA jangka pendek ((4) terhadap EMA jangka sederhana ((9) dan EMA jangka panjang ((18).
  2. Julat Volatiliti: Menggabungkan ATR 14 tempoh untuk mengukur turun naik pasaran dan menetapkan ambang perdagangan dinamik.
  3. Sokongan Harga/Rintangan: Melaksanakan sistem Titik Pivot harian (PPSignal), menetapkan 7 tahap harga utama (PP, R1-R3, S1-S3) sebagai titik rujukan.

Peraturan perdagangan ditakrifkan dengan jelas:

  • Long Entry: EMA4 melintasi di atas kedua-dua EMA9 dan EMA18, dengan harga penutupan memecahkan di atas EMA9 + ATR
  • Entry Pendek: EMA4 melintasi di bawah kedua-dua EMA9 dan EMA18, dengan harga penutupan memecahkan di bawah EMA9 - ATR
  • Stop Loss: Mengesan secara dinamik tahap EMA4

Kelebihan Strategi

  1. Analisis Multidimensional: Menggabungkan analisis trend, turun naik, dan struktur harga untuk meningkatkan kebolehpercayaan isyarat
  2. Penyesuaian Dinamik: Sesuai dengan keadaan pasaran yang berbeza melalui ATR dan tahap sokongan/tahan dinamik
  3. Kawalan Risiko Komprehensif: Melaksanakan mekanisme berhenti rugi dinamik untuk perlindungan keuntungan dan pengurusan risiko
  4. Pengesahan Isyarat yang Kuat: Memerlukan banyak penyesuaian penunjuk teknikal, mengurangkan risiko pecah palsu

Risiko Strategi

  1. Risiko pasaran berbelit-belit: Boleh menghasilkan isyarat palsu yang kerap semasa fasa penyatuan
  2. Risiko Lag: Kelewatan dalam purata bergerak mungkin terlepas titik kemasukan optimum
  3. Risiko jurang: Jurang semalam boleh menjadikan paras stop loss tidak berkesan
  4. Sensitiviti Parameter: Gabungan tempoh yang berbeza boleh menghasilkan hasil yang berbeza dengan ketara

Arahan Pengoptimuman Strategi

  1. Integrasi Volume: Tambah pengesahan jumlah untuk isyarat silang
  2. Pengoptimuman Parameter Dinamik: Sesuaikan tempoh EMA berdasarkan turun naik pasaran
  3. Peningkatan Stop-Loss: Pertimbangkan untuk melaksanakan berhenti terapung berdasarkan ATR
  4. Penapis persekitaran pasaran: Tambah penunjuk kekuatan trend untuk berdagang hanya semasa trend yang kuat
  5. Penapis Masa: Menetapkan sesi dagangan yang optimum berdasarkan ciri-ciri jangka masa yang berbeza

Ringkasan

Strategi ini membina sistem perdagangan yang komprehensif melalui sinergi pelbagai penunjuk teknikal. Kekuatannya utama terletak pada mekanisme pengesahan isyarat berbilang dimensi dan rangka kerja kawalan risiko yang kukuh, walaupun peniaga perlu mengoptimumkan parameter dan meningkatkan sistem berdasarkan keadaan pasaran tertentu. Melalui arah pengoptimuman yang dicadangkan, kestabilan dan kebolehpercayaan strategi dapat ditingkatkan lagi.


/*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)

Berkaitan

Lebih lanjut