Trendfolgende Handelsstrategie basierend auf linearer Regression und gleitenden Durchschnitten


Erstellungsdatum: 2023-12-18 17:34:29 zuletzt geändert: 2023-12-18 17:34:29
Kopie: 4 Klicks: 890
1
konzentrieren Sie sich auf
1621
Anhänger

Trendfolgende Handelsstrategie basierend auf linearer Regression und gleitenden Durchschnitten

Überblick

Die Strategie basiert auf einer linearen Regressionslinie und einem Moving Average und entwirft ein einfaches Trend-Tracking-Handelssystem. Wenn Sie den Moving Average über die lineare Regressionslinie durchqueren, machen Sie einen Plus, wenn Sie den Moving Average unter der linearen Regressionslinie durchqueren, machen Sie einen Minus.

Bezeichnung der Strategie

Trendfollowing Regression Trading Strategy (Trendfollowing Regression Trading Strategy) (Trendfollowing Regression Trading Strategy) (Trendfollowing Regression Trading Strategy) (Trendfollowing Regression Trading Strategy) (Trendfollowing Regression Trading Strategy) (Trendfollowing Regression Trading Strategy) (Trendfollowing Regression Trading Strategy)

Strategieprinzip

Die Strategie beinhaltet folgende Schlüsselkomponenten:

  1. Berechnen Sie den N-Tage-SMA
  2. Berechnung der linearen Regressionslinie für die letzten N Tage
  3. Machen Sie mehr, wenn der Schlusskurs die SMA überschreitet und über der Rückkehrlinie liegt
  4. Kurzschluss, wenn der Schlusskurs unterhalb der SMA und unterhalb der Regressionslinie liegt
  5. Setzen Sie einen Stop-Loss- und einen Stop-Loss-Preis

Eine lineare Regressionslinie passt sehr gut zur Richtung des Trends in der jüngsten Zeit. Dies kann verwendet werden, um die Richtung der Gesamttrend zu bestimmen. Wenn der Preis die SMA-Linie durchbricht, müssen wir weiter beurteilen, ob die Richtung der linearen Regressionslinie mit diesem Durchbruch übereinstimmt.

Darüber hinaus hat die Strategie einen Stop-Loss-Mechanismus eingerichtet. Wenn der Preis die Stop-Loss-Linie berührt, wird die Position platziert. Ebenso wurde eine Stop-Line eingerichtet, um einen Teil der Gewinne zu sperren.

Strategische Vorteile

Diese Strategie hat folgende Vorteile:

  1. Kombination von Trend- und Breakout-Indikatoren zur Vermeidung von False-Breakouts und zur Verbesserung der Signalqualität
  2. Trendfilter mit linearer Regression, um die Richtung des Trends zu bestimmen, nur wenn der Trend nach oben geht, und nur wenn der Trend nach unten geht
  3. Ein Stop-Loss- und Stop-Stop-Mechanismus wurde eingerichtet, um das Risiko zu kontrollieren.
  4. Die Regeln sind klar und eindeutig, leicht zu verstehen und umzusetzen.
  5. Nur ein paar Parameter müssen angepasst werden, es muss nicht zu kompliziert sein.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es gibt mehr falsche Handelssignale bei Schwankungen.
  2. Die Einstellung von Moving Averages und Regressionszyklen erfordert wiederholte Testoptimierung, und falsche Einstellungen können die Strategie beeinträchtigen
  3. Extreme Umstände, bei denen ein Durchbruch zu größeren Verlusten führen könnte
  4. Nur auf Basis von technischen Indikatoren, nicht mit Fundamentaldaten verbunden

Wir können Optimierungen für diese Risiken in folgenden Bereichen vornehmen:

  1. Erwägen Sie eine Pause-Strategie oder filtern Sie mit anderen Indikatoren in einem wackligen Markt
  2. Die Parameter werden wiederholt getestet, um optimale Parameter zu finden.
  3. Optimierung und dynamische Anpassung der Stop-Loss-Position
  4. Das sind die grundlegenden Faktoren in Verbindung mit den Wirtschaftsdaten.

Optimierungsrichtung

Die Strategie kann vor allem in folgenden Bereichen optimiert werden:

  1. Hinzufügen von zusätzlichen Hilfsindikatoren zur Beurteilung der Marktsituation und Vermeidung von Handelsbewegungen bei Schwankungen
  2. Optimierung von Moving-Average-Typen, wie beispielsweise Kombinationen aus zwei oder drei Moving-Averagen
  3. Weitere Analyse der Regressionslinie-Schräglage, Hinzufügung von Schrägheitsurteilsregeln
  4. In Kombination mit der Schwankungsrate-Anzeige, um die dynamische Stop-Loss-Stopp-Position einzustellen
  5. Automatische Optimierung von Parametern mit Hilfe von Machine Learning

Zusammenfassen

Die Strategie integriert die Trend-Tracking-Funktion des Moving Averages mit der Trend-Ermittlung der linearen Regression zu einem relativ einfachen und einfachen Trend-Tracking-Trading-System. In trendigen Märkten kann die Strategie eine bessere Wirkung erzielen. Wir müssen auch die Parameter und Regeln umfangreich testen und optimieren und die Risiken kontrollieren, dann sollte die Strategie einen stabilen Return on Investment erzielen.

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

//@version=4
strategy(title="Regression Trading Strategy", shorttitle="RTS", overlay=true)

// Input parameters
n = input(14, title="SMA Period")
stop_loss_percentage = input(2, title="Stop Loss Percentage")
take_profit_percentage = input(2, title="Take Profit Percentage")

// Calculate the SMA
sma = sma(close, n)

// Linear regression function
linear_regression(src, length) =>
    sumX = 0.0
    sumY = 0.0
    sumXY = 0.0
    sumX2 = 0.0
    for i = 0 to length - 1
        sumX := sumX + i
        sumY := sumY + src[i]
        sumXY := sumXY + i * src[i]
        sumX2 := sumX2 + i * i
    slope = (length * sumXY - sumX * sumY) / (length * sumX2 - sumX * sumX)
    intercept = (sumY - slope * sumX) / length
    line = slope * length + intercept
    line

// Calculate the linear regression
regression_line = linear_regression(close, n)

// Plot the SMA and regression line
plot(sma, title="SMA", color=color.blue)
plot(regression_line, title="Regression Line", color=color.red)

// Trading strategy conditions
long_condition = crossover(close, sma) and close > regression_line
short_condition = crossunder(close, sma) and close < regression_line

// Exit conditions
stop_loss_price = close * (1 - stop_loss_percentage / 100)
take_profit_price = close * (1 + take_profit_percentage / 100)

// Plot entry and exit points on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=crossunder(close, stop_loss_price), title="Stop Loss", location=location.abovebar, color=color.red, style=shape.labeldown, text="SL")
plotshape(series=crossover(close, take_profit_price), title="Take Profit", location=location.belowbar, color=color.green, style=shape.labelup, text="TP")

// Strategy orders
strategy.entry("Long", strategy.long, when = long_condition)
strategy.entry("Short", strategy.short, when = short_condition)
strategy.exit("Exit", from_entry = "Long", when = crossover(close, stop_loss_price) or crossover(close, take_profit_price))
strategy.exit("Exit", from_entry = "Short", when = crossunder(close, stop_loss_price) or crossunder(close, take_profit_price))