
Dieser Artikel analysiert eine verbesserte Trend-Tracking-Strategie in Kombination mit dem SuperTrend-Indikator und dem Stochastic RSI-Filter. Die Strategie soll Kauf- und Verkaufssignale erzeugen, während die Markttrends berücksichtigt werden und falsche Signale reduziert werden.
Zuerst berechnen wir den realen Schwankungsbereich (TR) und den durchschnittlichen realen Schwankungsbereich (ATR).
Aufwärts = SMA ((Schlusskurs, ATR-Zyklus) + ATR multipliziert × ATR Unterstraße = SMA ((Schlusskurs, ATR-Zyklus) - ATR multipliziert mit ATR
Wenn der Schlusskurs über der Unterbahn liegt, ist es ein Aufwärtstrend; wenn der Schlusskurs unter der Oberbahn liegt, ist es ein Abwärtstrend. Im Aufwärtstrend ist der SuperTrend der Unterbahn; im Abwärtstrend ist der SuperTrend der Oberbahn.
Um falsche Signale zu reduzieren, wird der SuperTrend als Moving Average ausgewählt, um den gefilterten SuperTrend zu erhalten.
Berechnen Sie den RSI-Wert und verwenden Sie den Stochastic-Indikator, um den Stochastic RSI zu erzeugen. Es zeigt an, ob der RSI in einer überkauften oder überverkauften Zone ist.
Kaufbedingung: Der Abschlusspreis ist in einem Aufwärtstrend, nachdem ein Supertrend durchbrochen wurde und der Stochastic RSI < 80 Verkaufskonditionen: Nach einem Supertrend unterhalb der Schlussklasse, der nach einem Anstieg in einem Abwärtstrend liegt, und Stochastic RSI > 20
Aus- und Einkauf: Unterhalb des Schlusskurses im Aufwärtstrend nach einem Supertrend Exit/Sell: Ein Supertrend, der nach einem Anstieg am Ende der Börse in einem Abwärtstrend liegt
Dies ist eine verbesserte Trendverfolgungsstrategie, die im Vergleich zu einfachen Moving Averages und ähnlichen Indikatoren folgende Vorteile hat:
Die Strategie kombiniert die Vorteile der beiden Indikatoren SuperTrend und Stochastic RSI und ist in der Lage, Trends effektiv zu identifizieren und qualitativ hochwertige Handelssignale zu erzeugen. Die Filtermechanismen machen sie auch robuster gegenüber Marktgeräuschen. Die Strategie kann durch Parameteroptimierung bessere Strategieeffekte erzielen und kann auch in Kombination mit anderen Indikatoren oder Modellen in Betracht gezogen werden.
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved SuperTrend Strategy with Stochastic RSI", shorttitle="IST+StochRSI", overlay=true)
// Input parameters
atr_length = input(14, title="ATR Length")
atr_multiplier = input(1.5, title="ATR Multiplier")
filter_length = input(5, title="Filter Length")
stoch_length = input(14, title="Stochastic RSI Length")
smooth_k = input(3, title="Stochastic RSI %K Smoothing")
// Calculate True Range (TR) and Average True Range (ATR)
tr = ta.rma(ta.tr, atr_length)
atr = ta.rma(tr, atr_length)
// Calculate SuperTrend
upper_band = ta.sma(close, atr_length) + atr_multiplier * atr
lower_band = ta.sma(close, atr_length) - atr_multiplier * atr
is_uptrend = close > lower_band
is_downtrend = close < upper_band
super_trend = is_uptrend ? lower_band : na
super_trend := is_downtrend ? upper_band : super_trend
// Filter for reducing false signals
filtered_super_trend = ta.sma(super_trend, filter_length)
// Calculate Stochastic RSI
rsi_value = ta.rsi(close, stoch_length)
stoch_rsi = ta.sma(ta.stoch(rsi_value, rsi_value, rsi_value, stoch_length), smooth_k)
// Entry conditions
long_condition = ta.crossover(close, filtered_super_trend) and is_uptrend and stoch_rsi < 80
short_condition = ta.crossunder(close, filtered_super_trend) and is_downtrend and stoch_rsi > 20
// Exit conditions
exit_long_condition = ta.crossunder(close, filtered_super_trend) and is_uptrend
exit_short_condition = ta.crossover(close, filtered_super_trend) and is_downtrend
// Plot SuperTrend and filtered SuperTrend
plot(super_trend, color=color.orange, title="SuperTrend", linewidth=2)
plot(filtered_super_trend, color=color.blue, title="Filtered SuperTrend", linewidth=2)
// Plot Buy and Sell signals
plotshape(series=long_condition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=short_condition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Output signals to the console for analysis
plotchar(long_condition, "Long Signal", "▲", location.belowbar, color=color.green, size=size.small)
plotchar(short_condition, "Short Signal", "▼", location.abovebar, color=color.red, size=size.small)
// Strategy entry and exit
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)
strategy.close("Long", when=exit_long_condition)
strategy.close("Short", when=exit_short_condition)