Strategi Trend Bullish Multi-EMA

Penulis:ChaoZhang, Tarikh: 2024-01-22 12:04:05
Tag:

img

Ringkasan

Multi-EMA Bullish Trend Strategy adalah strategi trend berikut berdasarkan pelbagai purata bergerak eksponensial (EMA) dari tempoh yang berbeza untuk penentuan trend. Ia pergi lama apabila harga pecah di atas EMA 10 hari dan EMA jangka panjang yang lain berada dalam keselarasan bullish; dan menggunakan 8% trailing stop loss untuk mengunci keuntungan.

Logika Strategi

Strategi ini menggunakan 6 EMA tempoh 10, 20, 50, 100, 150 dan 200 hari. EMA ini digunakan untuk menentukan peringkat kitaran semasa pasaran. Apabila EMA tempoh yang lebih pendek (contohnya 10 hari) menyeberangi jangka masa yang lebih lama (contohnya 20-, 50 hari), ia menandakan pasaran telah memasuki fasa penandaan trend bull.

Khususnya, strategi itu akan berlangsung lama apabila syarat-syarat berikut dipenuhi:

  1. EMA 10 hari lebih tinggi daripada EMA 20 hari
  2. EMA 20 hari lebih tinggi daripada EMA 50 hari
  3. EMA 100 hari lebih tinggi daripada EMA 150 hari
  4. EMA 150 hari lebih tinggi daripada EMA 200 hari
  5. Harga penutupan melintasi EMA 10 hari

Selepas membuka kedudukan panjang, 8% trailing stop loss digunakan untuk mengunci keuntungan. Ini bermakna kedudukan akan disimpan terbuka selagi harga tidak jatuh lebih daripada 8% dari harga masuk. Sebaik sahaja penarikan melebihi 8%, kedudukan akan ditutup untuk menghentikan kerugian.

Ringkasnya, idea utama strategi ini adalah untuk memasuki trend bull apabila disahkan oleh penyelarasan EMA berganda, dan menggunakan stop loss untuk mengunci keuntungan.

Analisis Kelebihan

Strategi trend lembu Multi-EMA mempunyai kekuatan utama berikut:

  1. Ia boleh menapis penembusan palsu dengan berkesan dan memastikan mengesan kitaran markup, mengurangkan perdagangan yang tidak perlu.
  2. Pelbagai penapis EMA mengurangkan kemungkinan stop loss dipukul, membolehkan pegangan kedudukan yang lebih selamat.
  3. Penghentian kerugian 8% tidak terlalu ketat atau terlalu longgar, menyeimbangkan mengambil keuntungan dan menghentikan kerugian.
  4. Strategi ini membolehkan penyesuaian parameter yang fleksibel untuk pengoptimuman di seluruh produk yang berbeza.

Analisis Risiko

Terdapat juga beberapa risiko yang perlu diperhatikan untuk strategi ini:

  1. Urutan EMA tidak dapat menjamin arah trend untuk 100% kes, beberapa whipsaws masih boleh berlaku.
  2. Perhentian 8% mungkin memberikan beberapa keuntungan semasa trend besar.
  3. Sistem EMA mempunyai kelewatan yang melekat, pengesahan titik perubahan boleh sedikit tertunda.

Untuk menangani risiko ini, kita boleh mengoptimumkan dengan menyesuaikan tempoh EMA atau menggabungkan penunjuk tambahan untuk penilaian yang lebih baik.

Arahan pengoptimuman

Memandangkan ciri-ciri strategi ini, pengoptimuman masa depan boleh memberi tumpuan kepada aspek berikut:

  1. Uji gabungan EMA yang berbeza dan set tempoh untuk mencari parameter optimum.
  2. Tambah penunjuk indeks turun naik untuk mengukur kekuatan trend untuk mengelakkan entri yang tidak perlu.
  3. Sertakan lebih banyak penapisan penunjuk seperti MACD, KDJ untuk pengesahan penyelarasan menaik.
  4. Menggunakan algoritma pembelajaran mesin untuk pelaksanaan stop loss dinamik.

Kesimpulan

Secara keseluruhan, Strategi Trend Bull Multi-EMA adalah sistem trend yang kukuh dan boleh dipercayai, menyeimbangkan penentuan trend dan kawalan risiko. Masih ada potensi yang besar untuk peningkatan melalui penyesuaian parameter dan pengoptimuman algoritma. Ia adalah strategi yang berkesan yang patut dicoba dan diteliti.


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

//@version=5
strategy('SirSeff\'s EMA Rainbow', overlay=true)
// Testing Start dates
testStartYear = input(2000, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2100, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop

//TSP
trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01

longStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0

//PLOTS
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(ta.ema(close, 20))
plot(ta.ema(close, 50))
plot(ta.ema(close, 100))
plot(ta.ema(close, 150))
plot(ta.ema(close, 200))

//OPEN
longCondition =  ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200)
if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod()
    strategy.entry("BUY1", strategy.long)
    
if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod()
    strategy.entry("BUY2'", strategy.long)

//CLOSE @ TSL
if strategy.position_size > 0 and testPeriod()
    strategy.exit(id='TSP', stop=longStopPrice)
    


Lebih lanjut