Umgekehrte lineare Regressionsstrategie

Schriftsteller:ChaoZhang, Datum: 29.12.2023 17:15:07
Tags:

img

Übersicht

Die umgekehrte lineare Regressionsstrategie ist eine umgekehrte Handelsstrategie, die auf Preisschwankungen basiert. Sie kombiniert die lineare Regressionsanalyse und den AVERAGE TRUE RANGE-Indikator, setzt die Bedingungen für aufeinanderfolgende steigende K-Linien oder aufeinanderfolgende fallende K-Linien und nimmt umgekehrte Operationen vor, wenn die lineare Regressionsanalyse eine Preisumkehr beurteilt.

Strategieprinzip

Die Strategie berechnet zunächst die Neigung der linearen Regression. Wenn die lineare Regressionsneigung größer oder gleich 0 ist, deutet sie darauf hin, dass der Preis in einem Aufwärtstrend ist; wenn sie kleiner als 0 ist, deutet sie auf einen Abwärtstrend der Preise hin. Gleichzeitig wird in Kombination mit dem Vergleich zwischen dem Schlusskurs und dem Eröffnungskurs der letzten K-Linie beurteilt, ob die letzte K-Linie gestiegen oder gefallen ist. Wenn die lineare Regressionsneigung größer oder gleich 0 ist und der Schlusskurs der letzten K-Linie niedriger als der Eröffnungskurs ist, wird ein Kaufsignal generiert; wenn die lineare Regressionsneigung kleiner als 0 ist und der Schlusskurs der letzten K-Linie höher als der Eröffnungskurs ist, wird ein Verkaufssignal generiert.

Durch die Einstellung der Anzahl der aufeinanderfolgenden steigenden K-Linien und der Anzahl der aufeinanderfolgenden fallenden K-Linien kann die Handelsfrequenz gesteuert werden. Wenn festgestellt wird, dass die Anzahl der aufeinanderfolgenden steigenden K-Linien die festgelegte Zahl erreicht, wird unter der Bedingung, dass die lineare Regressionsneigung kleiner als 0 ist, ein Verkaufssignal generiert, um einen Umkehrhandel in der Nähe des Höchstpunkts zu erreichen. Wenn festgestellt wird, dass die aufeinanderfolgenden fallenden K-Linien die Einstellung erreichen, wenn die lineare Regressionsneigung größer oder gleich 0 ist, wird ein Kaufsignal generiert, um einen Umkehrhandel in der Nähe des Tiefpunkts zu erreichen.

Analyse der Vorteile

Die Strategie kombiniert Trendhandel und Umkehrhandel und kann umkehrende Operationen an kritischen Punkten durchführen, wodurch der Vorteil nach der Preisanpassung erzielt wird. Die lineare Regressionsanalyse bietet ein Mittel, um den Gesamttrend der Preise zu bestimmen und die Umkehrung von Short- oder Long-Positionen zu vermeiden, wenn die Preise noch steigen oder fallen. Die aufeinanderfolgende K-Line-Bedingung steuert die Handelsfrequenz und funktioniert an kritischen Umkehrpunkten.

Im Vergleich zu einfachen Umkehrstrategien kombiniert diese Strategie mehrere technische Indikatoren, um den Transaktionszeitplan genauer zu steuern, wodurch das Risiko falscher Ausfälle wirksam vermieden und die Rentabilität gesteigert werden kann.

Risikoanalyse

Das Hauptrisiko für diese Strategie ist das Scheitern der Umkehrung. Wenn es beurteilt wird, dass das Preisumkehrsignal den ursprünglichen Trend beibehält, wird dies Verluste verursachen. Darüber hinaus wird die Einstellung von Parametern der linearen Regressionsanalyse und ATR-Indikatoren auch das Einkommen der Strategie beeinflussen.

Stop-Loss kann verwendet werden, um einzelne Verluste zu kontrollieren. Die Häufigkeit der Marktschwankungen vernünftigerweise bewerten, die Anzahl der aufeinanderfolgenden K-Linien angemessen anpassen und die Handelshäufigkeit reduzieren. Die Zyklusparameter der linearen Regression und ATR-Parameter optimieren, um sie den Eigenschaften verschiedener Sorten besser anzupassen.

Optimierungsrichtung

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Hinzufügen anderer technischer Indikatoren, um die Richtigkeit der Beurteilung zu verbessern, z. B. MACD, Bollinger Band usw.

  2. Erhöhung der Komponenten für maschinelles Lernen zur automatischen Optimierung von Parametern und dynamischen Anpassung von Handelsregeln.

  3. Einbeziehung von Risikomanagementmechanismen wie Kapitalmanagement und Stop-Loss-Strategien zur Kontrolle von Handelsrisiken.

  4. Portfoliooptimierung, bei der Strategien mit anderen nicht zusammenhängenden Strategien kombiniert werden, um die Gesamtrücknahmen zu reduzieren und die Stabilität zu verbessern.

  5. Erweitern Sie auf mehr Sorten, bewerten Sie die Parameter-Einstellungen für verschiedene Sorten, um die Strategie vielseitiger zu gestalten.

Zusammenfassung

Die umgekehrte lineare Regressionsstrategie integriert mehrere technische Indikatoren und nimmt umgekehrte Operationen bei der Beurteilung des Zeitpunkt der Preisumkehr an. Es ist eine effektive Umkehrhandelsstrategie. Durch Parameteroptimierung und verbessertes Risikomanagement kann die Strategie die Gewinnmargen weiter ausbauen und hat ein großes Verbesserungspotenzial. Als typische Umkehrstrategie-Idee bietet sie uns wertvolle Referenzen.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Reverse Up/Down Strategy", currency=currency.USD, initial_capital=1000, pyramiding=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100,overlay=true)

//User Options
consecutiveBarsUp   = input(title="Sell after how many bars up?",   type=input.integer, minval=1, defval=1)
consecutiveBarsDown = input(title="Buy after how many bars down?",  type=input.integer, minval=1, defval=1)
atrLength           = input(title="ATR Length",                     type=input.integer, minval=1, defval=14)
atrMult             = input(title="ATR Multiplier",                 type=input.float,   minval=0.1, defval=2.33)

//ATR Channel
adjustedATR     = sma(atr(atrLength),atrLength) * atrMult
longATR         = low - adjustedATR
shortATR        = high + adjustedATR
plot(shortATR,  title="Short ATR",  color=color.red)
plot(longATR,   title="Long ATR",   color=color.lime)


// This is the true linear regression slope rather than an approximation given by numerical differentiation
src = hlc3
len = input(defval=14, minval=1, title="Slope Length")
lrc = linreg(src, len, 0)
lrc1 = linreg(src, len,1)
lrs = (lrc-lrc1)

//Check if last candle was up or down
priceOpen = open
priceClose = close
longCondition = priceOpen > priceClose
shortCondition = priceOpen < priceClose
ups = 0.0
dns = 0.0

ups := shortCondition ? nz(ups[1]) + 1 : 0
dns := longCondition ? nz(dns[1]) + 1 : 0

if (shortCondition)
    strategy.close("buy", qty_percent=100, comment="Close")
    if (ups >= consecutiveBarsUp and lrs <= 0)
    	strategy.entry("sell", strategy.short, comment="Sell")
    	

if (longCondition)
    strategy.close("sell", qty_percent=100, comment="Close")
    if (dns >= consecutiveBarsDown and lrs >= 0)
	    strategy.entry("buy", strategy.long, comment = "Buy")


Mehr