Strategi Tren Konvergensi Rata-rata Bergerak yang Ditingkatkan

Penulis:ChaoZhang, Tanggal: 14 September 2023 16:46:53
Tag:

Logika Strategi

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:

  1. Menghitung periode EMA cepat, misalnya 12 hari

  2. Menghitung periode EMA lambat, misalnya 26 hari

  3. Kurangi cepat dari EMA lambat untuk mendapatkan MACD

  4. Ambil EMA dari MACD sebagai garis sinyal, misalnya 9 hari

  5. EMA dari MACD minus sinyal memberikan sinyal yang ditingkatkan

  6. Pergi panjang ketika sinyal yang ditingkatkan melintasi di atas garis nol

  7. 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.

Keuntungan

  • 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

Risiko

  • Optimalisasi periode EMA yang teliti diperlukan

  • LONG hanya tidak dapat menggunakan kesempatan singkat

  • Kejadian sinyal yang kurang sering

Ringkasan

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)



Lebih banyak