Diese Strategie kombiniert den einfachen gleitenden Durchschnitt (SMA) und die rollende lineare Regressions-Trendlinie. Sie setzt die lange Eintrittsbedingung, wenn der Schlusskurs sowohl über der SMA als auch über der Trendlinie liegt, und die Ausstiegsbedingung, wenn der Schlusskurs darunter liegt. Die Strategie nutzt hauptsächlich die SMA als Handelssignal und die rollende Trendlinie für die Kanalunterstützung. Sie tritt beim Ausbruch des Aufwärtskanals in den Handel ein und tritt beim Ausbruch des Abwärtskanals aus.
Zu den wichtigsten Bestandteilen dieser Strategie gehören:
SMA: Einfacher gleitender Durchschnitt, der den durchschnittlichen Schlusskurs über einen Zeitraum (smaPeriod) als Signallinie berechnet.
Rollende Trendlinie: Einfügen der besten linearen Regressionslinie über ein Fenster (Fenster) als Trendsignal. Berechnet mit der gewöhnlichen Mindestquadratmethode.
Eintrittsbedingung: Long gehen, wenn der Schlusskurs > SMA und Trendlinie liegt.
Ausgangszustand: Schließung der Position, wenn der Schließpreis < SMA und Trendlinie ist.
Die Strategie basiert daher hauptsächlich auf dem SMA-Signal-Breakout für den Einstieg und dem Kanal-Breakout für den Ausgang.
Diese Strategie integriert einen doppelten Filter von MA und Trendlinie, der falsche Breakout-Trades effektiv reduzieren kann.
Diese Strategie birgt auch einige Risiken:
Einige Optimierungsrichtlinien für diese Risiken:
Diese Strategie kann in folgenden Aspekten optimiert werden:
Hinzufügen dynamischer Anpassungsfunktionen für die SMA-Periode, Gleitparameter auf Basis von Marktregelungen.
Entwickeln Sie einen elastischen Stop-Loss-Mechanismus. Setzen Sie einen Stop-Loss, wenn der Preis die Trendlinie bei einem Verhältnis bricht.
Hinzufügen eines Filters aus anderen Indikatoren, z. B. Volumen, RSI, um die Entscheidungsgenauigkeit zu verbessern.
Gehen Sie lang, wenn der Preis den Boden erreicht und den Abwärtstrend durchbricht.
Diese Strategie integriert die Handelssignale vom gleitenden Durchschnitt und der Kanalunterstützung von der rollenden Trendlinie, um Trends zu implementieren. Der Doppelfilter reduziert die Wahrscheinlichkeit eines falschen Ausbruchs und verbessert die Entscheidungsqualität.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SMA Strategy with Rolling Trendline", overlay=true) // Input parameters smaPeriod = input(14, title="SMA Period") window = input(20, title="Trendline Window") startDate = input(timestamp("2023-01-01"), title="Start Date") endDate = input(timestamp("2023-12-31"), title="End Date") // Calculating SMA sma = sma(close, smaPeriod) // Function to calculate linear regression trendline for a window linreg_trendline(window) => sumX = 0.0 sumY = 0.0 sumXY = 0.0 sumX2 = 0.0 for i = 0 to window - 1 sumX := sumX + i sumY := sumY + close[i] sumXY := sumXY + i * close[i] sumX2 := sumX2 + i * i slope = (window * sumXY - sumX * sumY) / (window * sumX2 - sumX * sumX) intercept = (sumY - slope * sumX) / window slope * (window - 1) + intercept // Calculating the trendline trendline = linreg_trendline(window) // Entry and Exit Conditions longCondition = close > sma and close < trendline exitLongCondition = close < sma and close > trendline // Strategy logic if (true) if (longCondition) strategy.entry("Long", strategy.long) if (exitLongCondition) strategy.close("Long") // Plotting plot(sma, title="Simple Moving Average", color=color.blue) plot(trendline, title="Rolling Trendline", color=color.red) plotshape(series=longCondition, title="Enter Trade", location=location.belowbar, color=color.green, style=shape.triangleup) plotshape(series=exitLongCondition, title="Exit Trade", location=location.abovebar, color=color.red, style=shape.triangledown)