Die Strategie zur Vorhersage von Gausswellen

Schriftsteller:ChaoZhang, Datum: 2024-01-22 12:37:07
Tags:

img

Übersicht

Die Gauss-Wellen-Vorhersage-Strategie ist eine quantitative Handelsstrategie, die auf Gauss-Filterung basiert. Sie nutzt die Glättungsfunktion von Gauss-Filtern, um die Preisreihen mehrmals zu filtern und mehrere glättete Preisreihen zu erzeugen.

Strategieprinzip

Der Kern dieser Strategie ist der Gauss-Filter-Algorithmus. Der Gauss-Filter ist ein linearer Glättungsfilter, der die Gauss-Funktion als Gewichte verwendet. Der Parameter p in der Strategie wird als Größe des Filterfensters festgelegt. Dann wird der Filterkoeffizient alfa durch trigonometrische Funktionen berechnet. Jede Preisreihe ret\[i\] repräsentiert das Ergebnis nach der i-ten Gauss-Filterung der ursprünglichen Preisreihe.

Die Strategie setzt die Idee der Rekursion ein. Zuerst wird mit Alpha und dem ursprünglichen Preis der Preisreihe die erste Filterrate berechnet. Dann wird auf der Grundlage von Ret die zweite Filterrate durchgeführt, um Ret2 zu erhalten. Dies wird mehrmals wiederholt. Schließlich wird durch Kombination mehrerer Preisreihen eine Kurve angepasst, um zukünftige Preise zu prognostizieren.

Durch mehrfaches Filtern kann es glatter und besser auf den Trend passen. Gleichzeitig realisiert es in Kombination mit polynomischem Fitting die Vorhersage von Kurstrends kurzfristig.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Wir können den Preis durch einen Gauss-Filter ausgleichen, der effektiv Hochfrequenzgeräusche ausfiltert und die Strategie stabiler macht.

  2. Recursive Mehrfachfilterung. Sie kann sich besser an den Preistrend anpassen und den Vorhersageeffekt verbessern.

  3. Preisschätzung basierend auf Polynomial-Fitting. Es kann kurzfristige Preistrends modellieren und somit Handelssignale generieren.

  4. Handelssignale werden direkt mit Trendvorhersagen kombiniert, um verpasste Handelschancen zu vermeiden.

  5. Einfach zu implementieren, leicht zu verstehen und zu optimieren.

Risikoanalyse

Die Strategie birgt außerdem folgende Risiken:

  1. Der Glättungseffekt des Gauss-Filters auf plötzliche Preisänderungen kann kurzfristige Handelschancen verpassen.

  2. Polynomial Fitting hat Risiken von Überfitting. Wenn das Preisänderungsmodell plötzlich mutiert, wird der Vorhersageffekt abnehmen.

  3. Die Größe des Filterfensters und die Reihenfolge des Polynoms müssen genau festgelegt werden, sonst kann es fehlschlagen.

  4. Es stützt sich ausschließlich auf den Eröffnungspreis für Handelssignale und kann nicht intraday gehandelt werden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Hinzufügen von Modellschulungen und Umschulungsmechanismen für Gleitfenster zur dynamischen Anpassung der Parameter zur Verringerung der Risiken einer Überanpassung.

  2. Mehr Preisindikatoren und -merkmale hinzufügen, um den Input zu bereichern und die Vorhersagen stabiler zu machen.

  3. Fügen Sie Stop-Loss-Mechanismen hinzu, die maximale Verlustquote festlegen, um große Verluste bei extremen Marktbedingungen zu vermeiden.

  4. Optimierung des Positionsmanagements, dynamische Anpassung der Positionen basierend auf Prognosegenauigkeit und Volatilität.

  5. Versuchen Sie Vorhersagen auf Basis von Mainstream-Maschinenlernmodellen wie LSTM und verbessern Sie die Vorhersagungsfähigkeit weiter.

Schlussfolgerung

Zusammenfassend ist dies eine hochfrequente quantitative Strategie, die die Preisvorhersage mithilfe von Gaussian Filter und Polynomial-Fitting durchführt. Sie hat gewisse Vorteile, aber auch Verbesserungsmöglichkeiten. Durch die Einbeziehung mehrer Funktionen, die Einführung dynamischer Parameter-Tuning, Stop-Loss-Mechanismen usw. könnte der Strategieeffekt viel besser sein. Diese Strategie legt den Grundstein als Basismodul für die weitere Forschung und Optimierung von Hochfrequenzstrategien.


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

//@version=2
strategy("Gaussbot v1.0", overlay=true)

p = input(20, minval=1, title="Length")
price = input(open, title="Source")

pi=3.1415926535


w=2*pi/p
beta = (1 - cos(w))/(pow(1.414,2.0/3) - 1)
alfa = -beta + sqrt(beta*beta + 2*beta)
ret=  pow(alfa,4)*price+4*(1-alfa)*nz(ret[1])-6*pow(1-alfa,2)*nz(ret[2])+4*pow(1-alfa,3)*nz(ret[3])-pow(1-alfa,4)*nz(ret[4])
ret2 = pow(alfa,4)*ret+4*(1-alfa)*nz(ret2[1])-6*pow(1-alfa,2)*nz(ret2[2])+4*pow(1-alfa,3)*nz(ret2[3])-pow(1-alfa,4)*nz(ret2[4])
ret3 = pow(alfa,4)*ret2+4*(1-alfa)*nz(ret3[1])-6*pow(1-alfa,2)*nz(ret3[2])+4*pow(1-alfa,3)*nz(ret3[3])-pow(1-alfa,4)*nz(ret3[4])
ret4 = 3*ret-3*ret2+ret3


diff2 = nz(ret[1]) - nz(ret[2]) - (nz(ret[2]) - nz(ret[3]) )  
diff22 = nz(ret2[1]) - nz(ret2[2]) - (nz(ret2[2]) - nz(ret2[3]) ) 
diff23 = nz(ret3[1]) - nz(ret3[2]) - (nz(ret3[2]) - nz(ret3[3]) )  
diff24 = nz(ret4[1]) - nz(ret4[2]) - (nz(ret4[2]) - nz(ret4[3]) )  


longCondition =    price[0] - ret4[1]  > 0
shortCondition =  price[0] - ret4[1] < 0

if(longCondition and shortCondition)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]
if(longCondition==false and shortCondition==false)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]



if (longCondition==true and shortCondition == false) 
    strategy.entry("Gaussbot Long", strategy.long )
if (longCondition==false and shortCondition == true)
    strategy.entry("Gaussbot Short", strategy.short)



Mehr