Die Strategie des Kreuzbruchs

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

Übersicht

Die schrittweise Durchschnittsstrategie ist eine sehr verbreitete Quantitative-Trading-Strategie. Die Strategie nutzt die Goldforch-Todetafel der schrittweisen Durchschnittsstrategie, um Trends zu bestimmen, um zu profitieren. Wenn die kurzfristige Schrittweise die langfristige Schrittweise überschreitet, kann man mehr tun.

Die Strategie

Die Strategie basiert auf einer beweglichen Gleichschraube, um den Zeitpunkt des Kaufs und Verkaufs zu bestimmen.upOrDownundlongOrShortZwei Boole-Eingabeparameter, um zu beurteilen, ob mehr Platz ist;percentInputEingabe von Parametern zur Festlegung des Prozentsatzes der Thresholdänderung des Aktienpreises; VerwendungclosePositionDaysEinzug der Parameter, um die Anzahl der Tage, an denen die Position gehalten wird, festzulegen.

Die Kernlogik der Strategie lautet: Berechnen Sie den heutigen Kursrückgang gegenüber dem gestrigen Wert und senden Sie ein Handelssignal aus, wenn der Prozentsatz der Eintrittsschwelle erreicht wird. Wenn der Kurs rückläufig ist, machen Sie mehr, wenn der Kurs heute gegenüber dem gestrigen Wert rückläufig ist.

Wenn Sie mehr Zeit haben, wird der Tag und die vier Tage danach in verschiedenen Farben auf dem Diagramm markiert.

Strategische Vorteile

  • Die Verwendung von mobilen Gleichlinien ist eine bewährte und zuverlässige Methode, um Markttrends zu bestimmen.
  • Strategische Logik ist einfach, klar und leicht zu verstehen
  • Sie können die Häufigkeit der Strategien kontrollieren, indem Sie die Parameter anpassen.
  • Automatisierte Stopp-Mechanismen können Risiken wirksam kontrollieren

Strategische Risiken

  • Die mobile Mittellinie ist verzögert und kann die Zeit der raschen Preisänderung verpassen.
  • Kurzfristig können die Aktienpreise stark schwanken, was zu unnötigen Crosssignalen führt.
  • Eine falsche Einstellung der ParameterSet-Parameter kann auch die Effekte der Strategie beeinträchtigen.
  • Unfähigkeit, die Auswirkungen von Notfällen wirksam zu bewältigen

Risikokontrollmaßnahmen:

  1. Optimierung der dynamischen Gleichlinienparameter und angemessene Verlängerung der Zyklen helfen, den Lärm zu filtern
  2. Steigern Sie den Anteil der Veränderung der Aktienpreise an den Schwellenwerten und reduzieren Sie unnötige Transaktionen
  3. Test unterschiedliche Haltetage, um Einzelverluste zu kontrollieren
  4. Zusammengestellt mit anderen Indikatoren bestätigt Trendsignal weiter

Strategische Optimierung

  • Es kann in Betracht gezogen werden, die gleitende Durchschnittslinie in Index-Geleitungen wie EMA, DMA zu ändern, um sie für Preisänderungen empfindlicher zu machen.
  • Erweiterte Stop-Loss-Mechanismen, z. B. sofortige Stopps bei Durchbruch der Mittellinie
  • Zusätzliche Kombinationen von anderen technischen Indikatoren, wie MACD, KDJ, etc., erhöhen die strategische Gewinnrate
  • Man kann versuchen, die Parameter automatisch zu optimieren.
  • Optimierung von Ein- und Ausstiegszeiten, wie Breakout-Entrée

Zusammenfassung

Die mobile horizontal-cross-Strategie ist eine sehr einfache und praktische quantitative Handelsstrategie. Sie profitiert von der Trendfähigkeit des Aktienpreises, indem sie die Beziehung zwischen kurz- und langfristigen Trends beurteilt. Die Strategie ist einfach umsetzbar, klar logisch und ist die Grundlage für viele quantitative Handelsstrategien.


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




Weitere Informationen