Diese Strategie baut Handelssignale auf Basis des MACD DEMA-Indikators von Toff
Die Handelsregeln sind: Long gehen, wenn der MACD mit Nullverzögerung über die Nulllinie geht, und Short gehen, wenn der MACD unter die Nulllinie geht.
Der Vorteil dieser Nullverzögerungs-MACD-Strategie besteht darin, dass sie Trendveränderungen empfindlicher erfassen kann. Die Verwendung von DEMA anstelle von EMA filtert auch falsche Ausbrüche.
Zusammenfassend lässt sich sagen, dass die Nullverzögerungs-MACD-DEMA-Breakout-Strategie bei starken Trendbewegungen sehr gut funktioniert und schnell Chancen erfasst. Aber sie ist in Bereichsperioden unterdurchschnittlich und erfordert eine vorsichtige Verwendung. Nur durch kontinuierliche Optimierung und strenge Risikokontrolle kann diese Strategie langfristig erfolgreich angewendet werden.
/*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)