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.
Trend nach Regressionshandelsstrategie
Zu den wichtigsten Bestandteilen dieser Strategie gehören:
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.
Die Strategie weist folgende Vorteile auf:
Die Strategie birgt auch einige Risiken:
In Bezug auf diese Risiken können wir aus folgenden Aspekten optimieren:
Zu den wichtigsten Aspekten zur weiteren Optimierung der Strategie gehören:
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))