Strategi EMA Berbilang Penunjuk

Penulis:ChaoZhang, Tarikh: 2023-09-28 15:57:34
Tag:

Ringkasan

Strategi EMA Multi-Indikator adalah strategi trend berikut yang menggabungkan beberapa penunjuk seperti EMA, MACD, Oscillator, RSI, Stochastic, Bollinger Bands untuk menjana isyarat perdagangan.

Logika Strategi

Strategi ini mula-mula mengira penunjuk berikut:

  • EMA: Purata Bergerak Eksponensial dalam tempoh tertentu.

  • MACD: Garis MACD DIF dan DEA.

  • Osilator: Perbezaan antara tutup dan terbuka dalam tempoh.

  • RSI: Indeks Kekuatan Relatif dalam tempoh.

  • Stochastic: Nilai K dan D dengan parameter.

  • Bollinger Bands: Band atas, tengah dan bawah sepanjang tempoh.

Kemudian setiap penunjuk diberikan nilai berdasarkan keadaan semasa. Sebagai contoh, Stochastic di bawah 20 diberikan 2, RSI di atas 80 diberikan -2.

Nilai penunjuk dijumlahkan untuk mendapatkan isyarat gabungan. Jika isyarat >= 7, isyarat panjang dihasilkan. Jika isyarat <= -7, isyarat pendek dihasilkan.

Dengan menggabungkan isyarat dari beberapa penunjuk, strategi dapat menentukan arah trend dengan lebih tepat dan menghasilkan isyarat perdagangan yang boleh dipercayai.

Analisis Kelebihan

Kelebihan utama strategi pelbagai penunjuk ini adalah ia menggabungkan kekuatan beberapa penunjuk untuk penilaian yang lebih komprehensif dan tepat, mengelakkan isyarat palsu dari penunjuk individu.

Khususnya, kelebihan adalah:

  1. Menggabungkan beberapa penunjuk memberikan penentuan trend yang lebih boleh dipercayai. Penunjuk individu boleh memberikan isyarat yang mengelirukan manakala beberapa penunjuk boleh mengesahkan antara satu sama lain dan mengurangkan kesilapan.

  2. Indikator yang berbeza dapat mengenal pasti peringkat trend yang berbeza berdasarkan ciri mereka. Sebagai contoh, MACD untuk permulaan trend, RSI untuk overbought / oversold status.

  3. Penunjuk dengan parameter yang berbeza boleh menangkap ciri-ciri dalam jangka masa yang berbeza.

  4. Berat setiap penunjuk boleh disesuaikan. Penunjuk yang lebih penting boleh diberikan berat yang lebih tinggi.

  5. Campuran penunjuk dan berat boleh dioptimumkan melalui pengujian belakang untuk prestasi yang lebih baik.

Analisis Risiko

Walaupun menggunakan pelbagai penunjuk, beberapa risiko wujud:

  1. Gabungan indikator yang tidak betul mungkin gagal memanfaatkan kekuatan atau menyebabkan konflik.

  2. Pengedaran berat yang tidak rasional mungkin tidak tepat mewakili kepentingan penunjuk. Berat memerlukan ujian dan penyesuaian berulang.

  3. Satu set parameter boleh menyebabkan pemasangan berlebihan. Validasi pelbagai jangka masa harus digunakan.

  4. Berat/parameter penunjuk statik tidak dapat disesuaikan dengan keadaan pasaran yang berubah.

  5. Isyarat penunjuk mungkin tertunda. Teknik lain harus digunakan untuk menentukan masa stop loss.

  6. Perkembangan strategi yang semakin kompleks daripada pelbagai penunjuk memerlukan data sejarah yang mencukupi dan kesukaran penyesuaian parameter yang lebih besar.

Peluang Peningkatan

Beberapa cara untuk meningkatkan strategi:

  1. Uji lebih banyak jenis penunjuk untuk mencari yang sensitif kepada keadaan pasaran semasa.

  2. Mengoptimumkan tempoh penunjuk untuk menangkap trend dalam jangka masa yang berbeza.

  3. Mengoptimumkan berat penunjuk untuk mewakili kepentingan relatif dengan lebih baik.

  4. Tambah penyesuaian dinamik untuk mengoptimumkan parameter dan berat dalam masa nyata menyesuaikan diri dengan keadaan pasaran yang berubah.

  5. Menggabungkan strategi stop loss dengan titik stop loss yang rasional untuk mengehadkan kerugian.

  6. Tambah pengesahan pelbagai jangka masa untuk mengelakkan overfitting kepada jangka masa tunggal.

  7. Menggunakan pengoptimuman langkah dan kombinasi untuk mencari kombinasi parameter yang optimum.

  8. Tambah pembelajaran mesin untuk berat indikator dinamik yang lebih pintar.

  9. Mengoptimumkan logik kemasukan dan keluar untuk mengimbangi trend pengesanan dan mengelakkan perdagangan berlebihan.

Kesimpulan

Strategi EMA Multi-Indikator memanfaatkan kekuatan gabungan EMA, MACD, RSI dan banyak lagi untuk menentukan arah trend pasaran dan menghasilkan isyarat perdagangan. Berbanding dengan strategi indikator tunggal, ia menawarkan analisis pasaran yang lebih komprehensif dan mengurangkan isyarat palsu. Dengan pengoptimuman lanjut seperti penyesuaian parameter, ia boleh disesuaikan dengan keadaan pasaran yang berubah yang kompleks. Secara keseluruhan, Strategi EMA Multi-Indikator adalah strategi trend berikut yang sangat berkesan.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ally17

//@version=4
// strategy("ELIA MULTI STRATEGY",overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.00, default_qty_value=25)

//INPUT
start = timestamp(input(2021, "start year"), 1, 1, 00, 00)
end = timestamp(input(9999, "end year"), 1, 1, 00, 00)

emalen=input(80, title="Ema Len")
macdfast=input(12, title="Macd Fast Len")
macdslow=input(26, title="Macd Fast Len")
macdsig=input(12, title="Macd Signal Len")
occlen=input(15, title="Occ Len")

rsilen=input(2, title="Rsi Len")
stochklen=input(11, title="Stk K Len")
stochdlen=input(3, title="Stk D Len")
stochlen=input(3, title="Stk Smooth Len")
bblength = input(10, minval=1, title="BB Len")
mult = input(2.0, minval=0.001, maxval=50, title="BB Std Dev")

momlen=input(10, title="Mom Len")


//CALCOLI
var trigger = 0.0

var emavar = 0.0
var macdvar = 0.0
var occvar = 0.0

var rsivar = 0.0
var stochvar = 0.0
var bbvar = 0.0

var donvar =0.0

ema = ema(close,emalen)

[macdLine, signalLine, histLine] = macd(close, 12, 26, 9) // MACD

occ = ema(close,occlen) - ema(open,occlen)

rsi = rsi(close, rsilen) // RSI

stoch = sma(stoch(close, high, low, stochklen), stochlen) // Stoch

basis = sma(close, bblength)
dev = mult * stdev(close, bblength)
upper = basis + dev
lower = basis - dev

moment = mom(close, momlen) // Momentum

Obv = obv // OBV


//PLOT


//STRATEGIA
emavar := (close>ema)? 3 : -3
macdvar := (macdLine>signalLine)? 3 : -3
occvar := (occ>0)? 3 : -3

rsivar := (rsi<20)? 2 : (rsi>50 and rsi<80)? 1 : (rsi>80)? -2 : (rsi<50 and rsi>20)? -1 : 0
stochvar := (stoch<20)? 2 : (stoch>80)? -2 : 0
bbvar :=  (close<lower)? 2 : (close>upper)? -2 : 0

trigger := emavar+macdvar+occvar+rsivar+stochvar+bbvar

longcondition = trigger>=7
closelong = trigger<3

shortcondition = trigger<=-7
closeshort = trigger >-3

trendcolor = longcondition ? color.green : shortcondition? color.red : (trigger>3 and trigger<7)? #A2E1BF : (trigger<-3 and trigger>-7)? #E19997 : na
bgcolor(trendcolor, transp=80)


if time > start and time < end
    if longcondition
        strategy.entry("LONG", long=strategy.long)

if closelong
    strategy.close("LONG", comment="CLOSE LONG")
    
if time > start and time < end
    if shortcondition
        strategy.entry("SHORT", long=strategy.short)

if closeshort
    strategy.close("SHORT", comment="CLOSE SHORT")
    
//plotshape(longcondition, color=color.green, text="L", size=size.small, style=shape.triangledown)
//plotshape(shortcondition, color=color.red, "S"(trigger), size=size.small, style=shape.triangledown)
//plotshape(closelong, color=color.purple, text="LC", size=size.small, style=shape.triangledown)
//plotshape(closeshort, color=color.purple, text="SC", size=size.small, style=shape.triangledown)


Lebih lanjut