Strategi Dagangan Crossover EMA Berganda

Penulis:ChaoZhang, Tarikh: 2023-10-17 13:56:54
Tag:

img

Ringkasan

Strategi ini menggunakan salib emas dan salib kematian garis EMA berganda untuk menentukan masa masuk dan keluar. Khususnya, apabila garis EMA pantas melintasi di atas garis EMA perlahan dari bawah, isyarat salib emas dihasilkan untuk masuk panjang. Apabila garis EMA pantas melintasi di bawah garis EMA perlahan dari atas, isyarat salib kematian dihasilkan untuk masuk pendek. Strategi ini mudah dan mudah dilaksanakan, dan merupakan strategi perdagangan yang sangat biasa.

Logika Strategi

Kod teras strategi ini adalah seperti berikut:

fast = input(25, title="Fast")
slow = input(75, title="Slow") 

matype1=ema(source, fast)
matype2=ema(source, slow)

longCondition = crossover(matype1, matype2)
shortCondition = crossunder(matype1, matype2) 

if (longCondition)
    strategy.entry("Long", strategy.long)
     
if (shortCondition)
    strategy.entry("Short", strategy.short) 

Strategi ini mula-mula menetapkan dua garis EMA, dengan tempoh EMA pantas sebagai 25 dan tempoh EMA perlahan sebagai 75. Ia kemudian mengira nilai kedua-dua garis EMA. Apabila EMA pantas melintasi di atas EMA perlahan, longCondition menjadi benar. Apabila EMA pantas melintasi di bawah EMA perlahan, shortCondition menjadi benar. Apabila keadaan yang sepadan benar, ia menjadi panjang atau pendek.

Strategi ini menggunakan ciri pelusukan EMA untuk menapis bunyi bising pasaran, sambil dapat menangkap perubahan trend dengan cepat.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Logiknya mudah dan intuitif, mudah difahami dan dilaksanakan.

  2. EMA menyelaraskan turun naik pasaran dan menapis isyarat palsu dengan berkesan.

  3. Salib emas dan salib kematian adalah isyarat perdagangan yang kuat untuk mengawal risiko.

  4. Tempoh EMA yang fleksibel sesuai dengan persekitaran pasaran yang berbeza.

  5. Mudah digabungkan dengan penunjuk teknikal lain.

  6. Parameter EMA boleh dioptimumkan untuk hasil yang lebih baik.

Analisis Risiko

Risiko strategi ini termasuk:

  1. Isyarat tidak berkesan yang kerap di pasaran yang terhad pada julat kerana EMA sering melintasi.

  2. Kelemahan EMA mungkin kehilangan peluang jangka pendek.

  3. EMA crossover sahaja tidak dapat mengenal pasti pembalikan trend, mengehadkan potensi keuntungan.

  4. Tempoh EMA tetap tidak dapat disesuaikan dengan perubahan pasaran.

  5. Menghendaki modal yang besar, jika tidak meningkatkan risiko.

  6. Memerlukan stop loss yang ketat, jika tidak, kerugian tunggal boleh menjadi besar.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan tempoh EMA untuk keadaan pasaran yang berbeza.

  2. Tambah penapis lain seperti MACD, Bollinger Bands untuk meningkatkan kualiti isyarat.

  3. Tambah indikator penilaian trend seperti ATR, ADX untuk mengurangkan perdagangan yang tidak berkesan.

  4. Menggabungkan analisis pelbagai jangka masa untuk menentukan arah trend.

  5. Gunakan pembelajaran mesin untuk mengoptimumkan tempoh EMA secara dinamik.

  6. Mengoptimumkan saiz kedudukan untuk mengawal risiko.

  7. Mengoptimumkan strategi stop loss untuk mengehadkan kerugian tunggal.

Ringkasan

Strategi ini menggunakan dua EMA golden cross dan death cross sebagai isyarat perdagangan, membentuk strategi trend berikut klasik. Ia mudah dan mudah dilaksanakan, dan boleh digabungkan dengan penunjuk lain, sesuai dengan pelabur dengan keperluan yang agak rendah pada penilaian trend. Tetapi ia juga mempunyai had keuntungan dan risiko, yang memerlukan pengoptimuman yang betul untuk persekitaran pasaran yang berbeza. Secara keseluruhan, ia menyediakan asas yang sangat baik untuk pembangunan strategi dan penyelidikan mendalam.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
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/
// Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars

//@version=4
strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true)

matype = input("ema")
hidema = input(false)
sourcetype = input(close, title="Source Type")
source=close
 
// STEP 1:
// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=231)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12) 
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

// STEP 2:
// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))

fast = input(25, title="Fast")
slow = input(75, title="Slow")

matype1=ema(source, fast)
matype2=ema(source, slow)


signalcolor = source > matype2 ? color.blue : color.red
signal = cross(fast, slow) 



hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA")
yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA")
//kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme")
 

longCondition = crossover(matype1, matype2)
if (afterStartDate and longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(matype1, matype2)
if (afterStartDate and shortCondition)
    strategy.entry("Short", strategy.short)
    

//--------------------------------------------------------

//volume based color bars
length=input(21, "length", minval=1)
avrg=sma(volume,length)

vold1 = volume > avrg*1.5 and close<open
vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open
vold3 = volume < avrg *0.5 and close<open

volu1 = volume > avrg*1.5 and close>open
volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open
volu3 = volume< avrg*0.5 and close>open

cold1=#800000
cold2=#FF0000
cold3=color.orange

colu1=#006400
colu2=color.lime
colu3=#7FFFD4

ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na

barcolor(ac)

Lebih lanjut