
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.
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)
Die Strategie beinhaltet folgende Schlüsselkomponenten:
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.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Wir können Optimierungen für diese Risiken in folgenden Bereichen vornehmen:
Die Strategie kann vor allem in folgenden Bereichen optimiert werden:
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.
/*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))