Strategi trend berikut ini menggunakan indikator MACD yang ditingkatkan. Ini menghitung EMA cepat, EMA lambat, perbedaan mereka, dan EMA dari perbedaan itu untuk menghasilkan sinyal.
Logikanya adalah:
Menghitung periode EMA cepat, misalnya 12 hari
Menghitung periode EMA lambat, misalnya 26 hari
Kurangi cepat dari EMA lambat untuk mendapatkan MACD
Ambil EMA dari MACD sebagai garis sinyal, misalnya 9 hari
EMA dari MACD minus sinyal memberikan sinyal yang ditingkatkan
Pergi panjang ketika sinyal yang ditingkatkan melintasi di atas garis nol
Tutup panjang ketika sinyal yang ditingkatkan melintasi di bawah garis nol
Strategi ini memanfaatkan kemampuan mengikuti tren MACD, dan mengoptimalkannya lebih lanjut untuk sinyal tren jangka menengah hingga panjang yang berkualitas.
MACD yang ditingkatkan mengurangi kebisingan dan meningkatkan sinyal
Kombo EMA cepat/lambat mengukur arah dan kekuatan
Parameter yang lebih lambat berfokus pada tren jangka menengah hingga panjang
Optimalisasi periode EMA yang teliti diperlukan
LONG hanya tidak dapat menggunakan kesempatan singkat
Kejadian sinyal yang kurang sering
Strategi ini memanfaatkan MACD yang ditingkatkan untuk identifikasi tren jangka menengah hingga panjang yang lebih baik. Tetapi optimasi dan pengendalian risiko adalah kunci.
/*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)