Strategi EMA Golden Cross

Penulis:ChaoZhang, Tarikh: 2023-09-18 21:18:17
Tag:

Ringkasan

Strategi EMA golden cross adalah strategi perdagangan kuantitatif yang biasa. Ia menggunakan dua purata bergerak eksponensial (EMA) dengan parameter yang berbeza. Apabila EMA tempoh yang lebih pendek melintasi di atas EMA tempoh yang lebih lama, ia pergi lama. Apabila EMA tempoh yang lebih pendek melintasi di bawah EMA tempoh yang lebih lama, ia menutup kedudukan. Strategi ini menggunakan tindak balas yang lebih cepat dari EMA tempoh pendek dan trend berikut keupayaan EMA tempoh panjang untuk menjana isyarat perdagangan.

Logika Strategi

Strategi ini mula-mula menentukan dua EMA, ema1 dengan panjang 10 dan ema2 dengan panjang 21. Kemudian ia mengira nilai kedua-dua EMA. Apabila ema1 melintasi di atas ema2, ia menandakan kemerosotan ke atas, yang merupakan isyarat panjang. Apabila ema1 melintasi di bawah ema2, ia menandakan kerosakan melalui EMA, yang merupakan isyarat kedudukan dekat.

Untuk menapis pecah palsu, kod ini juga menentukan nilai ambang, yang dikira sebagai:

threshold = ((ema1 - ema2)*100) / ((ema1 + ema2)/2) 

Sempadan ini mewakili peratusan jarak EMA berbanding purata EMA. Apabila ambang melebihi 0.15%, ia adalah isyarat panjang. Apabila ambang di bawah -0.006%, ia adalah isyarat kedudukan dekat.

Ringkasnya, isyarat perdagangan strategi ini adalah:

  • Isyarat panjang: ema1 melintasi di atas ema2, dan ambang >= 0,15%
  • Isyarat kedudukan dekat: ema1 melintasi bawah ema2, dan ambang <= -0,006%

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Menggunakan EMA boleh meluruskan data harga dan membantu menjana isyarat perdagangan.

  2. Persediaan EMA berganda menyeimbangkan tindak balas dan kestabilan.

  3. Sempadan menapis kegagalan palsu dan mengelakkan perdagangan yang tidak perlu.

  4. Logik strategi adalah mudah dan jelas, sesuai untuk pemula.

  5. Parameter EMA dan ambang boleh dioptimumkan.

Analisis Risiko

Risiko strategi ini termasuk:

  1. EMA tertinggal harga dan mungkin terlepas peluang jangka pendek.

  2. Risiko terperangkap apabila trend berbalik, berpotensi membawa kepada kerugian besar.

  3. Sempadan yang tidak betul boleh menapis isyarat yang sah atau menghasilkan isyarat palsu.

  4. Jika parameter EMA tidak sesuai, kedua-dua EMA mungkin tidak menunjukkan perbezaan yang ketara, menghasilkan isyarat palsu.

  5. Stop loss harus ditetapkan dengan munasabah untuk mengelakkan terputus oleh turun naik pasaran yang besar.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter EMA dan menguji tempoh yang berbeza.

  2. Mengoptimumkan nilai ambang untuk mengimbangi isyarat palsu dan isyarat yang sah.

  3. Tambah penunjuk teknikal lain seperti MACD, KDJ untuk mengesahkan isyarat.

  4. Tambahkan mekanisme hentian kerugian seperti hentian belakang atau pesanan OCO untuk mengehadkan kerugian.

  5. Pertimbangkan entri kedudukan separa untuk mengurangkan risiko.

  6. Uji tempoh tahan yang berbeza untuk mencari tempoh yang optimum.

Kesimpulan

Strategi EMA golden cross mempunyai logik yang jelas dan mudah, menggunakan ciri-ciri EMA untuk menghasilkan isyarat perdagangan. Strategi ini mempunyai kelebihan tertentu tetapi potensi risiko wujud. Strategi ini boleh dipertingkatkan dengan mengoptimumkan parameter, menetapkan stop loss, menapis isyarat dan lain-lain. Ia sesuai sebagai strategi perdagangan kuantitatif pemula.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

if high > ta.highest(high[1], 5)
    strategy.entry("Enter Long", strategy.long)
else if low < ta.lowest(low[1], 5)
    strategy.entry("Enter Short", strategy.short)//@version=3
strategy(title="ema10-21", shorttitle="10/21", overlay=true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 2500, commission_type = strategy.commission.percent, commission_value = 0.2)

len1 = input(10, minval=1, title="EMA #1 length")
src1 = input(close, title="EMA Source #1")
a = ta.ema(src1, len1)
plot(a, title="EMA #1", color=color.orange, linewidth=2, style=plot.style_line)

len2 = input(21, minval=1, title="EMA #2 length")
src2 = input(close, title="EMA Source #2")
b = ta.ema(src2, len2)
plot(b, title="EMA #2", color=color.blue, linewidth=2, style=plot.style_line)

threshold = ((a-b)*100)/((a+b)/2)
thresholdUp = threshold > 0.15
thresholdDown = threshold < -0.006

if (thresholdUp) 
    strategy.entry("Buy", strategy.long)
if (thresholdDown) 
    strategy.close("Buy", strategy.long)

//goLong() => (crossover(a, b)) and (threshold >= 0.0025)
//killLong() => (crossunder(a, b)) and (threshold <= -0.0025)
//strategy.entry("Buy", strategy.long, when = goLong())
//strategy.close("Buy", when = killLong())

//threshold = ((a-b)*100)/((a+b)/2)

//achat = out1 > out2
//vente = out1 < out2 //and threshold < -0.025

//strategy.entry("long", true, when = achat)
//strategy.exit("exit", "long", when = vente)

Lebih lanjut