Strategi ini didasarkan pada indikator MACD yang diperkuat untuk melacak tren. Ini menghitung rata-rata bergerak cepat, rata-rata bergerak lambat, dan diferensial keduanya secara bersamaan, dan kemudian melakukan rata-rata bergerak diferensial untuk menghasilkan sinyal perdagangan.
Logika yang tepat adalah:
Perhitungan siklus EMA cepat, seperti 12 hari
Perhitungan siklus EMA lambat, seperti 26 hari
Perhitungan diferensial dari EMA adalah MACD
EMA untuk MACD, seperti EMA 9
Kemudian MACD dengan diferensial dari sinyal EMA menghasilkan sinyal yang diperkuat
Ketika sinyal yang diperkuat melewati sumbu nol
Saat sinyal penguat melewati sumbu nol
Strategi ini memanfaatkan sepenuhnya karakteristik pelacakan tren dari indikator MACD, dan melakukan filter pengoptimalan sekunder yang meningkatkan kualitas sinyal, mengejar tren garis tengah dan panjang.
Peningkatan kebisingan MACD untuk meningkatkan akurasi sinyal
EMA berkolaborasi untuk menentukan arah dan intensitas
Tren garis panjang dengan parameter yang lebih lambat
Parameter siklus EMA harus dipilih dengan hati-hati
Hanya dengan melakukan lebih banyak, Anda tidak bisa memanfaatkan kesempatan kosong.
Sinyal muncul dengan frekuensi rendah
Strategi ini mengidentifikasi peluang garis tengah dengan meningkatkan kemampuan MACD untuk melacak tren. Namun, pengoptimalan parameter dan pengendalian risiko sangat penting. Kombinasi yang tepat dari faktor-faktor lain dapat meningkatkan efek.
/*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)