Logarithmusbasierte Preisvorhersagestrategie


Erstellungsdatum: 2023-12-20 14:40:23 zuletzt geändert: 2023-12-20 14:40:23
Kopie: 0 Klicks: 660
1
konzentrieren Sie sich auf
1621
Anhänger

Logarithmusbasierte Preisvorhersagestrategie

Überblick

Die Strategie nutzt die logarithmische Funktion, um die Preisentwicklung zu simulieren, und berechnet z-Werte basierend auf der Standarddifferenz und dem Mittelwert des Transaktionsvolumens als logarithmische Funktion für die Eingabe von Parametern, um die zukünftigen Preise vorherzusagen.

Strategieprinzip

  1. Berechnen Sie den ROC-Wert für den Schlusskurs, wobei der positive Wert auf volume_pos und der negative Wert auf volume_neg gesetzt wird
  2. Berechnen Sie die Differenz zwischen volume_pos und volume_neg als net_volume
  3. Berechnen Sie die Standarddifferenz net_std und den Mittelwert net_sma für net_volume
  4. Berechnen Sie net_sma durch net_std, um z zu erhalten
  5. Die Schlusskurs-, Schlusskurs-20-Tage-Standarddifferenz- und z-Werte werden als Parameter verwendet, um die Logistic-Funktion der Logistic-Funktion einzugeben, um den Preis für die nächste Periode vorherzusagen.
  6. Wenn der prognostizierte Preis 1,005 mal höher als der aktuelle tatsächliche Preis ist, machen Sie einen Gewinn, wenn er 0,995 mal niedriger ist, legen Sie ihn nieder

Analyse der Stärken

Die Strategie kombiniert die statistischen Informationen über die Handelsmengen mit der Preisprognose einer logarithmischen Funktion.

Vorteile:

  1. Die Differenz zwischen den Handelsmengen und der Marktlage lässt sich anhand der Differenz zwischen den Handelsmengen und der Marktlage ablesen.
  2. Die logarithmische Funktion passt die Kurve der Preisänderung an und ist besser in der Vorhersage
  3. Die Strategie ist einfach und leicht umzusetzen.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Der Handelsvolumenindikator ist nachlässig und kann nicht zeitnah die Marktveränderungen widerspiegeln
  2. Die Vorhersage einer logarithmischen Funktion ist nicht unbedingt genau und leicht zu täuschen.
  3. Fehlen von Stop-Loss-Maßnahmen und unkontrollierter Verlust

Das Risiko kann durch folgende Maßnahmen verringert werden:

  1. Die Zuverlässigkeit von Handelsvolumensignalen in Kombination mit anderen Indikatoren
  2. Optimierung der Parameter der logarithmischen Funktion, um die Prognose-Genauigkeit zu verbessern
  3. Setzen Sie eine Stop-Loss-Linie, die den maximalen Verlust pro Einheit und insgesamt begrenzt

Optimierungsrichtung

Die Strategie kann weiter optimiert werden:

  1. Dynamische Optimierung von Arithmetikfunktionen mit Hilfe von maschinellen Lernmethoden
  2. Positionsverwaltung in Verbindung mit Aktienpreisfluktuationsindikatoren
  3. Ein Bayesianer-Filter wird hinzugefügt, um das Signal zu entfernen.
  4. Ein Durchbruch in Kombination mit einer Durchbruchstrategie
  5. Verknüpfungsregeln, um die Abweichung von Signalen zu ermitteln

Durch die Kombination verschiedener Methoden kann die Stabilität und Profitabilität der Strategie weiter verbessert werden.

Zusammenfassen

Die Strategie integriert die Messung der Transaktionsvolumen und die Vorhersage der logarithmischen Funktion, um ein einzigartiges quantitatives Handelskonzept zu bilden. Durch kontinuierliche Optimierung kann die Strategie zu einem effizienten, stabilen und programmierten Handelssystem werden. In Kombination mit Machine Learning und Kombinationsoptimierungstheorien sind wir zuversichtlich, ihre Handelsleistung weiter zu verbessern.

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