Schwankende durchschnittliche Wendepunkt-Crossover-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-29 11:15:42
Tags:

img

Übersicht

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.

Strategieprinzip

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.

Analyse der Vorteile

Die Strategie für den Crossover-Handel mit gleitenden Durchschnittswerten hat folgende Vorteile:

  1. Einfach zu implementieren. Die Strategie verwendet nur zwei Indikatoren: gleitenden Durchschnitt und ROC Indikator. Der Code ist nicht kompliziert.

  2. 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.

  3. Einheitliche Verluste können wirksam kontrolliert werden.Zeitgemäße Stop-Losses unter Verwendung gleitender Durchschnittswendepunkte können große einseitige Verluste reduzieren.

  4. 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.

  5. 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.

Risikoanalyse

Die Strategie des Crossover-Handels mit gleitenden Durchschnitten mit Wendepunkten birgt ebenfalls einige Risiken, hauptsächlich in folgenden Aspekten:

  1. 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.

  2. 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.

  3. Schwierige Parameteroptimierung. Die Wahl von Parametern wie gleitende Durchschnittslänge und ROC-Zyklus wird einen großen Einfluss auf die Leistung der Strategie haben.

  4. 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.

Optimierungsrichtlinien

Die Handelsstrategie kann in folgenden Bereichen weiter optimiert werden:

  1. 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.

  2. Identifizieren Sie die Haupttrendrichtung in höheren Zeitrahmen, um den Handel gegen den Haupttrend zu vermeiden.

  3. 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.

  4. Einführung von Mustererkennung. Identifizieren von Kerzenmustern an MA-Kreuzungspunkten, um falsche Signale auszufiltern.

Zusammenfassung

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")



Mehr