Die Strategie des Ausbruchs zu überwinden

Schriftsteller:ChaoZhang, Datum: 2023-10-12 16:47:55
Tags:

Übersicht

Der gleitende Durchschnitt ist eine sehr verbreitete quantitative Handelsstrategie. Er verwendet das goldene Kreuz und das Todeskreuz von gleitenden Durchschnitten, um Trends und Gewinn zu bestimmen. Wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt geht, signalisiert er einen Aufwärtstrend und eine Long-Position kann eingenommen werden. Wenn der kurzfristige gleitende Durchschnitt unter den langfristigen gleitenden Durchschnitt geht, signalisiert er einen Abwärtstrend und eine Short-Position kann eingenommen werden.

Strategie Logik

Diese Strategie basiert auf dem goldenen Kreuz und dem Todeskreuz von gleitenden Durchschnitten, um Ein- und Ausstiegspunkte zu bestimmen.upOrDownundlongOrShortzur Bestimmung von Long oder Short;percentInputdie Festlegung des Schwellenprozentsatzes der Preisänderung;closePositionDaysum die Anzahl der Tage festzulegen, an denen die Position gehalten werden muss.

Die Kernlogik lautet: Berechnen Sie den Anstieg/Abfall von heute im Verhältnis zu gestern. Wenn er den Eingangsschwellenprozentsatz erreicht, wird ein Handelssignal ausgelöst. Wenn es sich um ein langes Signal handelt, wenn der heutige Preis im Verhältnis zu gestern mehr als den Schwellenwert ansteigt, gehen Sie lang. Wenn es sich um ein kurzes Signal handelt, wenn der heutige Preis im Verhältnis zu gestern mehr als den Schwellenwert ansteigt, gehen Sie kurz.

Nach dem Long/Short werden der Eintrittstag und die nächsten 4 Tage mit Farben auf dem Chart markiert.

Vorteile

  • Die Verwendung von gleitenden Durchschnittsquerschnitten zur Bestimmung des Trends ist eine ausgereifte und zuverlässige Methode
  • Einfache und klare Strategielogik, leicht zu verstehen und umzusetzen
  • Die Frequenz kann durch Anpassung der Parameter gesteuert werden
  • Der automatische Stop-Loss-Mechanismus kontrolliert die Risiken wirksam

Risiken

  • Bewegliche Durchschnitte haben Verzögerungseffekte, können das beste Timing schneller Preisänderungen verpassen
  • Kurzfristig können erhebliche Kursschwankungen auftreten und unnötige Signale erzeugen.
  • Unangemessene Parameter-Einstellungen können die Strategieleistung beeinträchtigen
  • Nicht in der Lage, effektiv auf die Auswirkungen unerwarteter Ereignisse zu reagieren

Risikomanagement:

  1. Optimierung der gleitenden Durchschnittsparameter, längere Perioden helfen, Lärm zu filtern
  2. Erhöhung des Schwellenprozentsatzes zur Verringerung unnötiger Transaktionen
  3. Versuche verschiedene Aufbewahrungszeiten zur Kontrolle einzelner Verluste
  4. Kombination mit anderen Indikatoren zur weiteren Bestätigung von Signalen

Optimierungsrichtlinien

  • Erwägen Sie, EMA, DMA anstelle von SMA zu verwenden, um es empfindlicher zu machen
  • Hinzufügen von Stop-Loss-Mechanismen, z. B. Stop-Loss bei Durchbruch des Durchschnitts
  • Hinzufügen anderer technischer Indikatoren wie MACD, KDJ für Kombination, Verbesserung der Gewinnrate
  • Probieren Sie maschinelle Lernmethoden aus, um Parameter automatisch zu optimieren
  • Optimieren Sie die Ein- und Ausstiegszeit, z. B. Ausbruch usw.

Zusammenfassung

Die gleitende Durchschnitts-Crossover-Strategie ist eine sehr einfache und praktische quantitative Handelsstrategie. Durch das Beurteilen der Beziehung zwischen kurzfristigen und langfristigen Trends profitiert sie von der tendenziellen Natur der Vermögenspreise. Diese Strategie ist leicht mit klarer Logik umzusetzen und bildet die Grundlage vieler quantitativer Handelsstrategien. Wir können durch Parameter-Tuning und -optimierungen eine bessere Leistung erzielen. Aber wir müssen auch Risiken managen und Missbrauch vermeiden.


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

//@version=3
//  Created by Leon Ross

strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=true, initial_capital=100000)
  
//Inputs
longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false
upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day
percentInput = input(title="Percent", type=float, defval=4.5)
closePositionDays = input(title="How Many Days to Close Position", defval=4)

//Conditions
//percentUpValue = (close / close[1]) - 1
//percentUp = percentUpValue >= (percentInput/100.0)
//upConditions = percentUp
//percentDownValue = 1- (close / close[1])
//percentDown = percentDownValue >= (percentInput/100.0)
//downConditions = percentDown
upValue = (close / close[1]) - 1
downValue = 1 - (close / close[1])
allConditions = if(upOrDown)
    upValue >= (percentInput/100.0)
else
    downValue >= (percentInput/100.0)
    
//Plots
bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70)
bgcolor(allConditions ? silver : na, transp=70, offset=1)
bgcolor(allConditions ? silver : na, transp=70, offset=2)
bgcolor(allConditions ? silver : na, transp=70, offset=3)
bgcolor(allConditions ? silver : na, transp=70, offset=4)
//bgcolor(downConditions == 1 ? red : na, transp=70)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4)

//Entires
if(longOrShort)
    strategy.entry(id = "Long", long = true, when = allConditions) 
else
    strategy.entry(id = "Short", long = false, when = allConditions)

//Exits
if (barssince(allConditions) == closePositionDays)
    if(longOrShort)
        strategy.close("Long")
    else
        strategy.close("Short")




Mehr