Zero-lag MACD DEMA Breakout Strategi

Penulis:ChaoZhang, Tanggal: 2023-09-11 14:43:52
Tag:

Strategi ini membangun sinyal perdagangan berdasarkan indikator MACD DEMA Toff. Indikator MACD DEMA menghitung perbedaan antara garis cepat DEMA dan garis lambat DEMA, dengan pemrosesan nol-lag, secara efektif menghilangkan masalah keterlambatan MACD biasa.

Aturan perdagangan adalah: pergi panjang ketika MACD nol-lag melintasi di atas garis 0, dan pergi pendek ketika MACD melintasi di bawah garis 0.

Keuntungan dari strategi MACD zero-lag ini adalah dapat menangkap perubahan tren dengan lebih sensitif. Menggunakan DEMA alih-alih EMA juga menyaring breakout palsu. Namun, MACD sendiri memiliki kemampuan penilaian terbatas pada tindakan harga yang kompleks, dengan beberapa risiko sinyal palsu. Filter tren diperlukan untuk meningkatkan stabilitas.

Singkatnya, strategi penembusan MACD DEMA dengan waktu kesenjangan nol bekerja dengan sangat baik pada pergerakan tren yang kuat, menangkap peluang dengan cepat. Tetapi kinerja yang buruk dalam periode yang terikat kisaran, yang membutuhkan penggunaan yang berhati-hati. Hanya melalui optimasi terus menerus dan kontrol risiko yang ketat strategi ini dapat diterapkan dengan sukses dalam jangka panjang.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="Patron04 MACD DEMA Strategy",default_qty_type = strategy.percent_of_equity,default_qty_value = 3500, overlay=true)

testStartYear = input(2000, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2100, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

sma = input(12,title='DEMA Courte')
lma = input(26,title='DEMA Longue')
tsp = input(9,title='Signal')
dolignes = input(true,title="Lignes")

MMEslowa = ema(close,lma)
MMEslowb = ema(MMEslowa,lma)
DEMAslow = ((2 * MMEslowa) - MMEslowb )

MMEfasta = ema(close,sma)
MMEfastb = ema(MMEfasta,sma)
DEMAfast = ((2 * MMEfasta) - MMEfastb)

LigneMACDZeroLag = (DEMAfast - DEMAslow)

MMEsignala = ema(LigneMACDZeroLag, tsp)
MMEsignalb = ema(MMEsignala, tsp)
Lignesignal = ((2 * MMEsignala) - MMEsignalb )

MACDZeroLag = (LigneMACDZeroLag - Lignesignal)

long = LigneMACDZeroLag > 0
short = LigneMACDZeroLag < 0

if testPeriod()

    strategy.entry("Long", strategy.long,when=long)
    strategy.entry("Short", strategy.short,when=short)







Lebih banyak