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:
Mengira tempoh EMA pantas, contohnya 12 hari
Mengira tempoh EMA perlahan, contohnya 26 hari
Mengurangkan pantas daripada EMA perlahan untuk mendapatkan MACD
Ambil EMA MACD sebagai garis isyarat, contohnya 9 hari
EMA MACD minus isyarat memberikan isyarat yang dipertingkatkan
Pergi panjang apabila isyarat yang dipertingkatkan melintasi di atas garis sifar
Tutup panjang apabila isyarat yang dipertingkatkan melintasi di bawah garis sifar
Strategi ini memanfaatkan keupayaan mengikuti trend MACD
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
Pengoptimuman yang teliti untuk tempoh EMA diperlukan
LONG hanya tidak dapat menggunakan peluang pendek
Kejadian isyarat yang kurang kerap
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)