Strategi ini berdasarkan kepada penunjuk MACD yang dipertingkatkan untuk mengesan trend. Ia mengira purata bergerak cepat, purata bergerak perlahan dan perbezaan keduanya pada masa yang sama, dan kemudian melakukan purata bergerak perbezaan untuk menghasilkan isyarat perdagangan.
Logiknya ialah:
Hitung kitaran EMA pantas, seperti 12 hari
Hitung kitaran EMA perlahan, seperti 26 hari
Mengira perbezaan EMA dengan MACD
EMA saluran isyarat MACD, seperti EMA 9
EMA menghasilkan garis isyarat yang dipertingkatkan dengan perbezaan MACD dengan garis isyarat
Lebih banyak apabila anda menembusi sumbu sifar pada jalur isyarat yang dipertingkatkan
Apabila isyarat penguat di bawah garis nol
Strategi ini memanfaatkan sepenuhnya ciri-ciri pengesanan trend MACD, dan melakukan penapis pengoptimuman kedua yang meningkatkan kualiti isyarat, mengejar trend garis tengah dan panjang.
Peningkatan bunyi bunyi MACD untuk meningkatkan ketepatan isyarat
EMA berkolaborasi untuk menentukan arah dan intensiti
Trend garis panjang dalam parameter yang lebih perlahan
Berhati-hati memilih parameter kitaran EMA
Hanya dengan melakukan lebih banyak, anda tidak dapat memanfaatkan peluang kosong.
Isyarat berlaku kurang kerap
Strategi ini mengenal pasti peluang garis tengah dengan meningkatkan keupayaan untuk mengesan trend MACD. Tetapi pengoptimuman parameter dan kawalan risiko sangat penting. Kombinasi yang sesuai dengan faktor lain dapat meningkatkan keberkesanan.
/*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)