Strategi Trend Convergensi Purata Bergerak yang Ditingkatkan

Penulis:ChaoZhang, Tarikh: 2023-09-14 16:46:53
Tag:

Logika Strategi

Strategi trend berikut ini menggunakan penunjuk MACD yang dipertingkatkan. Ia mengira EMA cepat, EMA perlahan, perbezaan mereka, dan EMA perbezaan itu untuk menghasilkan isyarat.

Logikanya ialah:

  1. Mengira tempoh EMA pantas, contohnya 12 hari

  2. Mengira tempoh EMA perlahan, contohnya 26 hari

  3. Mengurangkan pantas daripada EMA perlahan untuk mendapatkan MACD

  4. Ambil EMA MACD sebagai garis isyarat, contohnya 9 hari

  5. EMA MACD minus isyarat memberikan isyarat yang dipertingkatkan

  6. Pergi panjang apabila isyarat yang dipertingkatkan melintasi di atas garis sifar

  7. Tutup panjang apabila isyarat yang dipertingkatkan melintasi di bawah garis sifar

Strategi ini memanfaatkan keupayaan mengikuti trend MACD, dan mengoptimumkannya lebih lanjut untuk isyarat trend jangka menengah hingga panjang yang berkualiti.

Kelebihan

  • MACD yang dipertingkatkan mengurangkan bunyi bising dan meningkatkan isyarat

  • Pengukur arah dan kekuatan gabungan EMA pantas / perlahan

  • Parameter yang lebih perlahan memberi tumpuan kepada trend jangka menengah hingga panjang

Risiko

  • Pengoptimuman yang teliti untuk tempoh EMA diperlukan

  • LONG hanya tidak dapat menggunakan peluang pendek

  • Kejadian isyarat yang kurang kerap

Ringkasan

Strategi ini memanfaatkan MACD yang dipertingkatkan untuk peningkatan pengenalan trend jangka menengah hingga panjang. Tetapi pengoptimuman dan kawalan risiko adalah kunci. Gabungan dengan faktor lain dapat meningkatkan prestasi.


/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study("MACDAS")
// strategy("macdas",shorttitle="macdas",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD)

// Date range filter
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

inTimeRange = true


fastperiod = input(12,title="fastperiod",minval=1,maxval=500)
slowperiod = input(26,title="slowperiod",minval=1,maxval=500)
signalperiod = input(9,title="signalperiod",minval=1,maxval=500)
fastMA = ema(close, fastperiod)
slowMA = ema(close, slowperiod)
macd = fastMA - slowMA
signal = ema(macd, signalperiod)
macdAS = macd - signal
signalAS = ema(macdAS, signalperiod)
plot(macdAS, color=blue, linewidth=2)
plot(signalAS, color=red, linewidth=2)
plot(0, color=black)

strategy.entry("LONG", strategy.long, when =inTimeRange and crossover(macdAS,signalAS))
strategy.close("LONG", when= inTimeRange and crossunder(macdAS,signalAS))

plotshape(crossover(macdAS, signalAS) , style = shape.arrowup, text="Long",color=green,size=size.huge)
plotshape(crossover(signalAS,macdAS) , style = shape.arrowdown, text="End Long",color=red,size=size.huge)



Lebih lanjut