Logarithmische Preisprognose-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-20
Tags:

img

Übersicht

Diese Strategie verwendet logarithmische Funktionen, um Preisänderungen basierend auf der Standardabweichung und dem Mittel des Handelsvolumens zu modellieren, um den Z-Score als Eingabeparameter zur logarithmischen Funktion zur Vorhersage zukünftiger Preise zu berechnen.

Strategieprinzipien

  1. Berechnung des ROC-Wertes des Schlusskurses, Akkumulation positiver Werte in volume_pos und negativer Werte in volume_neg
  2. Berechnung der Differenz zwischen volume_pos und volume_neg als net_volume
  3. Berechnung der Standardabweichung net_std und des mittleren net_sma des net_volume
  4. Berechnen Sie den Z-Score durch Teilen von net_sma durch net_std
  5. Verwenden Sie den Schlusskurs, die 20-tägige Standardabweichung des Schlusskurses und den Z-Score als Parameter in die logistische Funktion, um den Preis für den nächsten Zeitraum vorherzusagen
  6. Long, wenn der erwartete Preis über dem aktuellen tatsächlichen Preis * 1,005 liegt, Close, wenn er unter * 0,995 liegt

Analyse der Vorteile

Diese Strategie kombiniert statistische Informationen über das Handelsvolumen und die Preisvorhersage mithilfe logarithmischer Funktionen.

Die Vorteile sind:

  1. Verwendet die lang-kurze Differenz im Handelsvolumen, um die Marktstimmung zu messen
  2. Die logarithmische Funktion passt gut zur Vorhersage der Kursänderungskurve.
  3. Einfache und unkomplizierte Strategie, einfach umzusetzen

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Die Handelsvolumenindikatoren haben Verzögerungen und können Marktveränderungen nicht rechtzeitig widerspiegeln
  2. Logarithmische Vorhersagen sind nicht immer genau, können irreführend sein
  3. Fehlen von Stop-Loss-Maßnahmen Unfähigkeit zur Verminderung von Verlusten

Die Risiken können verringert werden, indem

  1. Kombination anderer Indikatoren zur Beurteilung der Zuverlässigkeit der Lautstärksignale
  2. Optimierung der Parameter der logarithmischen Funktion zur Verbesserung der Vorhersagegenauigkeit
  3. Setzen Sie Stop-Loss-Linien, um den maximalen Verlust pro Handel und insgesamt zu begrenzen

Optimierungsrichtlinien

Diese Strategie kann weiter optimiert werden, indem

  1. Maschinelles Lernen zur dynamischen Optimierung logarithmischer Funktionen
  2. Einbeziehung von Volatilitätsindikatoren zur Anpassung der Positionsgröße
  3. Hinzufügen von Bayesian Filterung, um ungültige Signale auszufiltern
  4. Kombinieren Sie mit Breakout-Strategien, um Breakout-Punkte zu erreichen
  5. Verwendung von Assoziationsregeln zur Erkennung von Signalen für Volumen-Preis-Divergenzen

Die Kombination mehrerer Methoden kann die Stabilität und Rentabilität weiter verbessern.

Schlussfolgerung

Diese Strategie integriert statistische Indikatoren des Handelsvolumens und logarithmische Vorhersage in eine einzigartige quantitative Handelsmethodik. Mit kontinuierlicher Optimierung kann es zu einem effizienten und stabilen automatisierten Handelssystem werden. Durch die Nutzung von Machine Learning und Portfolio-Optimierungstheorien sind wir zuversichtlich, seine Handelsleistung weiter zu verbessern.


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

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")


Mehr