Die Moving Average Turning Point Crossover Trading Strategie ist eine klassische technische Indikatorstrategie. Die Kernidee dieser Strategie besteht darin, Kauf- und Verkaufssignale zu generieren, indem sie gleitende Durchschnitte verschiedener Perioden kombiniert und die Handelsausgänge mithilfe gleitender Durchschnittswendepunkte weiter optimiert. Diese Strategie eignet sich für verschiedene Zeitrahmen und Produkte und kann stabile Renditen erzielen.
Die Strategie verwendet hauptsächlich zwei gleitende Durchschnitte, eine mit einer kürzeren Periode als schnelle Linie und die andere mit einer längeren Periode als langsame Linie. Wenn die schnelle Linie durch die langsame Linie nach oben bricht, wird ein Kaufsignal generiert. Wenn die schnelle Linie durch die langsame Linie nach unten bricht, wird ein Verkaufssignal generiert. Dies ist der Handelssignalgenerierungsmechanismus der klassischen gleitenden Durchschnitts-Crossover-Strategie.
Darüber hinaus tritt die Strategie mit den Wendepunkten der gleitenden Durchschnitte aus. Wenn sich die schnelle Linie vom Anstieg zum Fall ändert, werden lange Positionen aussteigen. Wenn sich die schnelle Linie vom Fall zum Anstieg ändert, werden kurze Positionen aussteigen. Gleitende Durchschnittswendepunkte können kurzfristige Umkehrpunkte des Marktes erfassen, was der Strategie hilft, Verluste zu reduzieren oder Gewinne rechtzeitig zu erzielen, wodurch die Gesamtrendite verbessert wird.
Die Strategie für den Crossover-Handel mit gleitenden Durchschnittswerten hat folgende Vorteile:
Einfach zu implementieren. Die Strategie verwendet nur zwei Indikatoren: gleitenden Durchschnitt und ROC Indikator. Der Code ist nicht kompliziert.
Eine starke Fähigkeit, aufeinanderfolgenden Verlusten standzuhalten. Die inhärenten Verzögerungs- und Preisglättungseigenschaften gleitender Durchschnitte können ein gewisses Rauschen ausfiltern und vermeiden, dass zu viele ungültige Trades in verschiedenen Trends generiert werden.
Einheitliche Verluste können wirksam kontrolliert werden.Zeitgemäße Stop-Losses unter Verwendung gleitender Durchschnittswendepunkte können große einseitige Verluste reduzieren.
Breite Anwendbarkeit. Das Strategieprinzip ist einfach und kann auf verschiedene Produkte und Handelszeitrahmen wie tägliche und stündliche Bars angewendet werden. Großer Parameteroptimierungsraum.
Stabile Renditen: Im Vergleich zu Strategien, die nach Markthotspots streben, konzentriert sich diese Strategie eher auf die Risikokontrolle als auf die Suche nach superhohen Renditen, kann aber stabile positive Renditen erzielen.
Die Strategie des Crossover-Handels mit gleitenden Durchschnitten mit Wendepunkten birgt ebenfalls einige Risiken, hauptsächlich in folgenden Aspekten:
Verzögerung der gleitenden Durchschnitte Wenn der Markt schnell kommt, werden die Crossover-Signale der gleitenden Durchschnitte verzögert, möglicherweise den besten Einstiegspunkt verpassen.
Diese Strategie hat zeitnahe Ausgänge, aber langsamere Eintrittssignale. Dies kann zu übermäßigen leeren Haltezeiten führen. Gewinnchancen werden während leeren Haltezeiten verpasst.
Schwierige Parameteroptimierung. Die Wahl von Parametern wie gleitende Durchschnittslänge und ROC-Zyklus wird einen großen Einfluss auf die Leistung der Strategie haben.
Schlechte Performance bei hohen Volatilitätstrends Bei Trends mit hohen Volatilitätsbereichen erzeugen gleitende Durchschnitte mehrere ungültige Crossovers, was die Performance der Strategie beeinträchtigt.
Die Handelsstrategie kann in folgenden Bereichen weiter optimiert werden:
Einbeziehen von Trendfilterindikatoren. Hinzufügen von Indikatoren wie ADX und ATR, um den Trendstatus zu beurteilen. Deaktivieren Sie die Strategie, wenn es keinen klaren Trend gibt, um nutzlose Trades zu vermeiden.
Identifizieren Sie die Haupttrendrichtung in höheren Zeitrahmen, um den Handel gegen den Haupttrend zu vermeiden.
Adaptive Parameteroptimierung ermöglicht es Parametern wie der gleitenden Durchschnittslänge, sich anhand der Echtzeit-Marktvolatilität anpassungsfähig anzupassen, um die Parameterrobustheit zu verbessern.
Einführung von Mustererkennung. Identifizieren von Kerzenmustern an MA-Kreuzungspunkten, um falsche Signale auszufiltern.
Insgesamt balanciert die Moving Average Turning Point Crossover Trading Strategie Risiko und Rendite. Sie hat Vorteile wie Einfachheit der Implementierung, Widerstand gegen aufeinanderfolgende Verluste und stabile Renditen. Sie hat auch Nachteile wie die verzögerte Ausgabe von MAs und übermäßige leere Halteperioden. Durch die Optimierung von Parametern, die Einbeziehung von Trendbeurteilung, Mustererkennung usw. kann die Leistung der Strategie weiter verbessert werden.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //study(title="MA Crossover Strategy", overlay = true) strategy("MA Crossover Strategy with MA Turning Point Exits", overlay=true) src = input(close, title="Source") price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(25, title="1st MA Length") type1 = input("SMA", "1st MA Type", options=["SMA", "EMA"]) ma2 = input(50, title="2nd MA Length") type2 = input("SMA", "2nd MA Type", options=["SMA", "EMA"]) price1 = if (type1 == "SMA") sma(price, ma1) else ema(price, ma1) price2 = if (type2 == "SMA") sma(price, ma2) else ema(price, ma2) //plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0) plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0) plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0) longCondition = crossover(price1, price2) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(price1, price2) if (shortCondition) strategy.entry("Short", strategy.short) lookback1 = input(1, "Lookback 1") roc1 = roc(price1, lookback1) ma1up = false ma1down = false ma2up = false ma2down = false ma1up := nz(ma1up[1]) ma1down := nz(ma1down[1]) ma2up := nz(ma2up[1]) ma2down := nz(ma2down[1]) trendStrength1 = input(2, title="Minimum slope magnitude * 100", type=float) * 0.01 if crossover(roc1, trendStrength1) ma1up := true ma1down := false if crossunder(roc1, -trendStrength1) ma1up := false ma1down := true shortexitCondition = ma1up and ma1down[1] if (shortexitCondition) strategy.close("Short") longexitCondition = ma1down and ma1up[1] if (longexitCondition) strategy.close("Long")