
Die Strategie kombiniert einen einfachen Moving Average (SMA) mit einer rollenden linearen Rückkehr-Trendlinie. Die Kaufbedingung ist, dass der Schlusskurs höher ist als der SMA und die Trendlinie, und die Exitbedingung ist, dass der Schlusskurs niedriger ist als der SMA und die Trendlinie.
Die Strategie basiert hauptsächlich auf folgenden Komponenten:
SMA: Ein einfacher Moving Average, der den Mittelwert des Schlusskurses für einen bestimmten Zeitraum als Signallinie berechnet.
Rollende Trendlinie: Die optimale Anpassung einer Geraden in einem bestimmten Zeitfenster basierend auf der Berechnung der linearen Regression als Trendsignal. Die Berechnungsmethode ist die Minimum-Doppel-Methode.
Eintrittsbedingungen: Eintritt ist möglich, wenn der Schlusskurs über der SMA-Durchschnittslinie und der rollenden Trendlinie liegt.
Ausstiegsbedingungen: Der Ausstieg erfolgt, wenn der Schlusskurs unterhalb der SMA-Mittellinie und der rollenden Trendlinie liegt.
Die Strategie basiert auf einem Breakout-Eintritt und einem Breakout-Ausgang. Sie nutzt die Mean-Return-Eigenschaften des Moving Averages und die Mean-Return-Unterstützung des Linear-Return-Channels, um einen Trend-Tracking-Break-Operation zu ermöglichen.
Die Strategie integriert eine doppelte Filterung von Mittellinien und Trendlinien, um falsche Durchbruchoperationen wirksam zu reduzieren. Gleichzeitig bietet eine Rollende Trendlinie eine genauere Kanalunterstützung, die eine zuverlässigere Handelsentscheidung ermöglicht. Die Hauptvorteile sind:
Die Strategie birgt auch einige Risiken, die sich auf folgende Punkte konzentrieren:
Es ist wichtig zu wissen, dass es sich um Risiken handelt, die von folgenden Punkten aus optimiert werden können:
Die Strategie kann in folgenden Dimensionen optimiert werden:
Hinzugefügt wurde die Funktion, die SMA-Zyklen und Gleitpunktparameter dynamisch anzupassen. Die Parameter werden automatisch in verschiedenen Marktumgebungen optimiert.
Erhöhung der Elastizität des Stop-Loss-Mechanismus. Stop-Loss, wenn der Preis die Trendlinie in einem bestimmten Prozentsatz überschreitet.
In Kombination mit anderen Indikatoren filtern Sie die Signale aus. Zum Beispiel die Quantität, die Stärke und die Schwäche der Indikatoren.
Entwickeln Sie eine umgekehrte Version. Machen Sie mehr, wenn der Preis nahe am Boden ist und den Abwärtskanal durchbricht.
Die Strategie integriert die Unterstützung von Moving Average Trading Signals und Rolling Trend Line Channels, um Trend-Tracking-Operationen zu ermöglichen. Die Doppelfiltermechanismen reduzieren die Wahrscheinlichkeit von False Breakouts und verbessern die Entscheidungsqualität. Einfache Parameter-Einstellung, klare Logik, einfache Implementierung und optimierte Anpassung.
/*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)