Die Ressourcen sind geladen. Beförderung...

Multi-Zeitrahmen-MACD-Indikator Crossover-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-02-19 11:03:54
Tags:

img

Übersicht

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.

Strategie Logik

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.

Analyse der Vorteile

  • Verwenden Sie Multi-Timeframe-Analyse, um falsche Signale auszufiltern
  • Einfache Optimierung von Parametern zur Anpassung an die Marktbedingungen in verschiedenen Zeitabschnitten
  • Kann auf mehrere Produkte angewendet werden, einschließlich Aktien, Indizes, Forex usw.

Risikoanalyse

  • Indikatorverzögerung kann kurzfristige Chancen verpassen
  • Verlustrisiko bei Nichteinhaltung des Preisniveaus
  • Danach werden die PARAMETER optimiert, um den Stop Loss und den Gewinn zu optimieren.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimierung der gleitenden Durchschnittsperioden zur Anpassung mehrerer Marktzyklen
  2. Hinzufügen anderer technischer Indikatoren zum Filtern, wie RSI für Überkauf und Überverkauf
  3. Hinzufügen Stop-Verlust-Mechanismus, kann ATR-Indikator für Stopp-Distanz verwenden
  4. Erweiterbar auf andere Produkte wie Futures, optimieren Parameter

Zusammenfassung

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

Mehr