Strategi Penembusan DEMA MACD Zero-Lag

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

Strategi ini membina isyarat dagangan berdasarkan penunjuk MACD DEMA Toff. Penunjuk MACD DEMA mengira perbezaan antara garis cepat DEMA dan garis perlahan DEMA, dengan pemprosesan tanpa kelewatan, dengan berkesan menghapuskan isu kelewatan MACD biasa.

Peraturan dagangan adalah: pergi panjang apabila MACD kekangan sifar melintasi di atas garis 0, dan pergi pendek apabila MACD melintasi di bawah garis 0.

Kelebihan strategi MACD tanpa kelewatan adalah ia dapat menangkap perubahan trend dengan lebih sensitif. Menggunakan DEMA dan bukannya EMA juga menapis pecah palsu. Walau bagaimanapun, MACD sendiri mempunyai keupayaan menilai yang terhad pada tindakan harga yang kompleks, dengan beberapa risiko isyarat palsu. Penapis trend diperlukan untuk meningkatkan kestabilan.

Ringkasnya, strategi penembusan MACD DEMA tanpa kelewatan berfungsi dengan baik pada pergerakan trend yang kuat, menangkap peluang dengan cepat. Tetapi ia kurang baik dalam tempoh yang terikat julat, yang memerlukan penggunaan yang berhati-hati. Hanya melalui pengoptimuman berterusan dan kawalan risiko yang ketat strategi ini dapat digunakan dengan berjaya 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 lanjut