Doppelte gleitende Durchschnitts-Crossover-Ausbruchsstrategie


Erstellungsdatum: 2023-11-27 16:21:45 zuletzt geändert: 2023-11-27 16:21:45
Kopie: 0 Klicks: 553
1
konzentrieren Sie sich auf
1617
Anhänger

Doppelte gleitende Durchschnitts-Crossover-Ausbruchsstrategie

Überblick

Die Strategie berechnet die schnellen 30-Tage-Simple Moving Averages und die langsamen 33-Tage-Simple Moving Averages der Aktien, um LONG oder SHORT-Eintritte zu tätigen, wenn sie Gold- oder Dead-Fork auftreten. Im Gegensatz dazu wird sofort gestoppt. Dies kann eine Änderung des Trends effektiv erfassen.

Strategieprinzip

Der Kern der Strategie besteht darin, einen schnellen 30-Tage-Mittelwert und einen langsamen 33-Tage-Mittelwert zu berechnen. Die schnellen Linien reagieren schneller auf Preisänderungen, während die langsamen Linien bessere Effekte haben. Es wird ein Kaufsignal erzeugt, wenn die schnellen Linien von unten durchbrechen und aufsteigen.

Mit dieser schnellen und mittleren Linie-Kreuzung kann ein Handelssignal erzeugt werden, wenn ein Trend beginnt, und ein Stop-Loss, wenn ein gegenteiliges Signal auftritt, um die Preisentwicklung der mittleren und langen Linie effektiv zu erfassen. Gleichzeitig wird vermieden, von zu vielen Marktschwankungen abgelenkt zu werden.

Analyse der Stärken

Die Strategie hat folgende Vorteile:

  1. Ein einfacher Moving Average, der leicht zu verstehen und umzusetzen ist
  2. Die Kombination aus schnellen und langsamen Linien bietet sowohl eine schnelle Reaktion auf Preisänderungen als auch einen spannenden Effekt.
  3. Gold- und Todesforken sind einfach, klar und einfach zu bedienen.
  4. Es ist eine sehr effektive Methode, um langfristige Trends zu erfassen.
  5. Schnelle Abbremsung bei Rückwärtssignal, Risikokontrolle

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Wenn die Preise in einem Zustand des Schwankens sind, kann es zu mehreren falschen Signalen kommen, die zu übermäßigem Handel führen.
  2. Die Regierung ist nicht in der Lage, den starken Preisveränderungen, die durch die Ereignisse ausgelöst werden, gut zu begegnen.
  3. Die gewählten Parameter, wie z. B. die Durchschnittsphase, können optimiert werden, und falsche Einstellungen beeinträchtigen die Strategie.
  4. Die Gebühren für die Transaktionen beeinflussen die Gewinne.

Diese Risiken können durch Parameteroptimierung, Stop-Loss-Einstellungen und den Handel nur bei klaren Trends kontrolliert und verringert werden.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Durchschnitts- und Kreuzungsperioden, um die optimale Kombination von Parametern zu finden
  2. Hinzufügen von Filtern für andere technische Indikatoren wie Trading Volume, MACD usw., um falsche Signale zu reduzieren
  3. Hinzufügen von adaptive Stop-Loss-Mechanismen anstelle von einfachen Reverse-Signal-Stop
  4. Kombinationen von Designparametern und Stop-Loss-Regeln für verschiedene Waren
  5. Dynamische Anpassung von Parametern mit Methoden wie Machine Learning

Durch Tests und Optimierungen lassen sich die Strategie-Regeln kontinuierlich verbessern, um zuverlässigere Handelssignale in unterschiedlichen Marktumgebungen zu erhalten.

Zusammenfassen

Die Doppel-Gleichgewichts-Kreuz-Break-Strategie ist insgesamt relativ einfach und praktisch. Durch die Kombination von schnellen und langsamen Durchschnittslinien kann der Beginn eines mittleren und langen Trends effektiv erkannt und ein zuverlässiges Handelssignal erzeugt werden. Die Stop-Loss-Regel ist auch leicht umsetzbar.

Strategiequellcode
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "es1!_1minute_hull", default_qty_type = strategy.fixed, initial_capital=250000,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2, calc_on_order_fills=false, calc_on_every_tick=false,pyramiding=0)
//strategy.risk.max_position_size(2)
//stock strategy
strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=1000000, overlay = false)//, calc_on_order_fills=true, calc_on_every_tick=true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true,initial_capital=250000, default_qty_type = strategy.percent_of_equity)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.percent,commission_value=.005,default_qty_value=10000)
//strategy.risk.allow_entry_in(strategy.direction.long) // There will be no short entries, only exits from long.




testStartYear = 2010
testStartMonth = 1
testStartDay = 1
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testEndYear = 2039
testEndMonth = 1
testEndDay = 1
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)


testPeriod() =>
    //true
    time >= testPeriodStart and time <= testPeriodEnd ? true : false

fast_length = 30
slow_length = 33

ema1 = 0.0
ema2 = 0.0

volumeSum1 = sum(volume, fast_length)
volumeSum2 = sum(volume, slow_length)

//ema1 := (((volumeSum1 - volume) * nz(ema1[1]) + volume * close) / volumeSum1)
ema1 :=  ema(close,fast_length)
//ema2 := (((volumeSum2 - volume) * nz(ema2[1]) + volume * close) / volumeSum2)
ema2 :=  ema(close,slow_length)



plot(ema1,color=#00ff00, linewidth=3)
plot(ema2, color=#ffff00, linewidth=3)

go_long = crossover(ema1,ema2)
go_short = crossunder(ema1,ema2)

if testPeriod()
    strategy.entry("long_ride", strategy.long, when=go_long)
    strategy.entry("short_ride", strategy.short,when=go_short)
    
        
    strategy.close("long_ride",when=go_short)
    strategy.close("short_ride",when=go_long)