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.
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.
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.
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.
Die Strategie kann in folgenden Aspekten optimiert werden:
Hinzufügen anderer technischer Indikatoren, um die Richtigkeit der Beurteilung zu verbessern, z. B. MACD, Bollinger Band usw.
Erhöhung der Komponenten für maschinelles Lernen zur automatischen Optimierung von Parametern und dynamischen Anpassung von Handelsregeln.
Einbeziehung von Risikomanagementmechanismen wie Kapitalmanagement und Stop-Loss-Strategien zur Kontrolle von Handelsrisiken.
Portfoliooptimierung, bei der Strategien mit anderen nicht zusammenhängenden Strategien kombiniert werden, um die Gesamtrücknahmen zu reduzieren und die Stabilität zu verbessern.
Erweitern Sie auf mehr Sorten, bewerten Sie die Parameter-Einstellungen für verschiedene Sorten, um die Strategie vielseitiger zu gestalten.
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")