Trend nach Regressionshandelsstrategie auf der Grundlage von linearer Regression und gleitendem Durchschnitt

Schriftsteller:ChaoZhang, Datum: 2023-12-18 17:34:29
Tags:

img

Übersicht

Diese Strategie entwirft einen einfachen Trend nach dem Handelssystem, das auf der linearen Regressionslinie und der gleitenden Durchschnittslinie basiert. Es geht lang, wenn die lineare Regressionslinie über den gleitenden Durchschnitt kreuzt und geht kurz, wenn die lineare Regressionslinie unterhalb kreuzt. In der Zwischenzeit verwendet es die Neigung der Regressionslinie, um einige Handelssignale zu filtern, und tritt nur ein, wenn die Trendrichtung übereinstimmt.

Name der Strategie

Trend nach Regressionshandelsstrategie

Strategieprinzip

Zu den wichtigsten Bestandteilen dieser Strategie gehören:

  1. Berechnung des einfachen gleitenden Durchschnitts (SMA) für N-Tage
  2. Berechnung der linearen Regressionslinie der letzten N Tage
  3. Gehen Sie lang, wenn der Schlusskurs über der SMA liegt und über der Regressionslinie liegt
  4. Kurzer Kurs, wenn der Schlusskurs unterhalb der SMA und unterhalb der Regressionslinie liegt
  5. Stop-Loss- und Take-Profit-Preise festlegen

Die lineare Regressionslinie kann in den letzten Perioden gut zur Trendrichtung passen. Sie kann helfen, die allgemeine Trendrichtung zu beurteilen. Wenn der Preis durch die SMA-Linie bricht, müssen wir weiter bestimmen, ob die Richtung der linearen Regressionslinie mit diesem Ausbruch übereinstimmt. Nur wenn die beiden Richtungen konsistent sind, wird ein Handelssignal generiert. Dies kann einige falsche Ausbrüche herausfiltern.

Darüber hinaus setzt die Strategie auch einen Stop-Loss-Mechanismus. Wenn der Preis die Stop-Loss-Linie erreicht, werden Positionen geschlossen, um den Stop-Loss zu stoppen. Es setzt auch eine Take-Profit-Linie, um einige Gewinne zu erzielen.

Vorteile der Strategie

Die Strategie weist folgende Vorteile auf:

  1. Kombination von Trendindikator und Breakout-Indikator zur Vermeidung eines falschen Breakouts und Verbesserung der Signalqualität
  2. Verwenden Sie lineare Regression, um die Trendrichtung für die Trendfilterung zu bestimmen, gehen Sie nur lang im Aufwärtstrend und kurz im Abwärtstrend
  3. Stop-Loss und Take-Profit setzen, um das Risiko zu kontrollieren
  4. Klare und leicht verständliche Regeln
  5. Nur wenige Parameter, ohne zu viel Komplexität.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Auf dem Bereichsmarkt können mehr falsche Handelssignale erzeugt werden
  2. Die Einstellungen von gleitenden Durchschnitten und Regressionsperioden erfordern umfangreiche Tests und Optimierungen, unsachgemäße Einstellungen können die Strategieleistung beeinträchtigen
  3. Der Stopp-Loss kann unter extremen Marktbedingungen gebrochen werden, was zu großen Verlusten führt.
  4. Allein auf technischen Indikatoren ohne Kombination von grundlegenden Faktoren

In Bezug auf diese Risiken können wir aus folgenden Aspekten optimieren:

  1. Überlegen Sie, die Strategie auszusetzen oder andere Indikatoren für die Filterung im Bereichsmarkt zu verwenden
  2. Umfangreiche Backtests, um die optimalen Parameter zu finden
  3. Optimierung und dynamische Anpassung der Stop-Loss-Position
  4. Kombination von Wirtschaftsdaten und anderen grundlegenden Faktoren

Optimierungsrichtlinien

Zu den wichtigsten Aspekten zur weiteren Optimierung der Strategie gehören:

  1. Hinzufügen anderer Hilfsindikatoren zur Beurteilung der Marktbedingungen und Vermeidung des Handels in Bereichsperioden
  2. Optimieren Sie den Typ des gleitenden Durchschnitts, wie z. B. doppelten gleitenden Durchschnitts, dreifachen gleitenden Durchschnitts usw.
  3. Weitere Analyse der Neigung der Regressionslinie und Hinzufügen Neigung Urteilsregeln
  4. Einbeziehung von Volatilitätsindikatoren zur Festlegung dynamischer Stop-Loss- und Gewinnsätze
  5. Verwenden Sie maschinelle Lernmethoden zur automatischen Optimierung von Parametern

Schlussfolgerung

Diese Strategie integriert die Trendfollowing-Funktion von gleitenden Durchschnitten und die Trendbeurteilungsfähigkeit der linearen Regression und bildet ein relativ einfaches Trendfollowing-Handelssystem. Sie kann in stark trendigen Märkten gute Ergebnisse erzielen. Wir brauchen noch umfangreiche Rückprüfung und Optimierung der Parameter und Regeln und eine angemessene Risikokontrolle. Dann sollte diese Strategie in der Lage sein, eine stetige Anlagerendite zu erzielen.


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



Mehr