Die Multi-Timeframe MACD-Indikator-Crossover-Handelsstrategie ist eine Trendfolgestrategie. Sie erzeugt Handelssignale, wenn der Preis den MACD-Indikator durchbricht, der mit verschiedenen Parameter-Einstellungen berechnet wird und den automatisierten Handel mit Aktien, Indizes, Forex und anderen Finanzprodukten ermöglicht.
Die Strategie berechnet 3 gleitende Durchschnitte gleichzeitig: einen gewichteten gleitenden Durchschnitt WMA und zwei exponentielle gleitende Durchschnitte EMA. Die Parameter dieser drei gleitenden Durchschnitte sind unterschiedlich festgelegt, die jeweils 25 Tage, 50 Tage und 100 Tage sind. Dies ermöglicht es den gleitenden Durchschnitten, Preisbewegungen über verschiedene Zeiträume abzudecken.
Nach der Berechnung der gleitenden Durchschnitte überwacht die Strategie, ob der Preis unter einen der gleitenden Durchschnitte bricht oder fällt.
Zum Beispiel wird ein Kaufsignal erzeugt, wenn der Preis gleichzeitig über allen 3 gleitenden Durchschnitten liegt. Ein Verkaufssignal wird erzeugt, wenn der Preis gleichzeitig unter alle 3 gleitenden Durchschnitte fällt. Die Überwachung des Preises im Verhältnis zu den gleitenden Durchschnitten kann Umkehrpunkte der Preisbewegung bestimmen.
Durch das Gegenbeurteilen mit Multi-Timeframe-Indikatoren können einige gefälschte Signale herausgefiltert werden, wodurch Handelssignale zuverlässiger werden.
Die Strategie kann in folgenden Aspekten optimiert werden:
Die Multi-Timeframe MACD Indikator Crossover Trading Strategie verfügt über einen klaren Logikfluss. Sie bestimmt Preistrends über mehrere Perioden mit gleitenden Durchschnitten und erzeugt Handelssignale, wenn signifikante Umkehrungen auftreten. Die Strategie verfügt über einen großen Optimierungsraum und die Parameter können für verschiedene Produkte und Marktzyklen angepasst werden, was eine gute Handelsleistung ermöglicht. Sie eignet sich für den automatisierten Handel mit Trendaktien, Indizes und Forex.
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TC - MACDoscillator v2", overlay=true) // ___________ .__ _________ .__ __ .__ // \__ ___/____ | | ____ ____ \_ ___ \_____ ______ |__|/ |______ | | // | | \__ \ | | / ___\ / _ \ / \ \/\__ \ \____ \| \ __\__ \ | | // | | / __ \| |__/ /_/ > <_> ) \ \____/ __ \| |_> > || | / __ \| |__ // |____| (____ /____/\___ / \____/ \______ (____ / __/|__||__| (____ /____/ // \/ /_____/ \/ \/|__| \/ // // MACDoscillator Strategy v2 // Josh Breitfeld 2016 // /// INPUTS START /// //tradeSize = input(title="Shares Per Trade", defval=2500, step=1) WMALength = input(title="WMA Length", defval=25, step=1) EMA1Length = input(title="EMA1 Length", defval=50, step=1) EMA2Length = input(title="EMA2 Length", defval=100, step=1) //security = input(title="Alternate Security", type=string, defval="SPX500") //inverse = input(title="Inverse Signals", type=bool, defval=true) /// INPUTS END /// /// ALGORITHM START /// /// Define calculations WMA = wma(close,WMALength) EMA1 = ema(close,EMA1Length) EMA2 = ema(close,EMA2Length) /// Grab values from alternate security dWMA = WMA dEMA1 = EMA1 dEMA2 = EMA2 aClose = close /// Crossover signal system /// Long crosses lc1 = aClose > dWMA ? true : false lc2 = aClose > dEMA1 ? true : false lc3 = aClose > dEMA2 ? true: false /// Short crosses sc1 = aClose < dWMA ? true : false sc2 = aClose < dEMA1 ? true : false sc3 = aClose < dEMA2 ? true : false //plot(lc1,color=green) //plot(lc2,color=green) //plot(lc3,color=green) //plot(sc1,color=red) //plot(sc2,color=red) //plot(sc3,color=red) /// ALGO ORDER CONDITIONS START /// pBuyToOpen = (lc1 and lc2 and lc3 ? true : false) pSellToOpen = (sc1 and sc2 and sc3 ? true : false) pSellToClose = (lc1 ? true : false) and not pBuyToOpen pBuyToClose = (sc1 ? true : false) and not pSellToOpen //plot(pBuyToOpen,color=lime) //plot(pBuyToClose,color=lime) //plot(pSellToOpen,color=red) //plot(pSellToClose,color=red) /// INVERT SIGNALS //buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen //sellToOpen = inverse ? -pBuyToOpen : pSellToOpen //sellToClose = inverse ? -pSellToClose : pSellToClose //buyToClose = inverse ? -pBuyToClose : pBuyToClose /// ALGO ORDER CONDITIONS END /// /// ALGORITHM END /// /// DEFINE PLOTS /// plot(dWMA,"WMA",lime,1,line) plot(dEMA1,"EMA1",blue,2,line) plot(dEMA2,"EMA2",red,3,line) //plot(aClose,"Close",orange,4,line) /// PLOTS END /// /// ORDER BLOCK /// //strategy.entry("My Long Entry Id", strategy.long) /// OPENING ORDERS START /// if(pBuyToOpen) strategy.entry("BTO", strategy.long, comment="BTO") if(pSellToOpen) strategy.entry("STO", strategy.short, comment="STO") /// OPENING ORDERS END /// /// CLOSING ORDERS START /// strategy.close("BTO", pBuyToClose) strategy.close("STO", pSellToClose) /// CLOSING ORDERS END /// /// END ORDER BLOCK /// // Josh Breitfeld - Talgo Capital 2016 /// STRATEGY END ///