Dieser Artikel analysiert eingehend eine Trendfolgestrategie, die den SuperTrend-Indikator mit einem stochastischen RSI-Filter für eine verbesserte Genauigkeit kombiniert.
Zuerst werden die wahren Reichweiten (TR) und die durchschnittlichen wahren Reichweiten (ATR) berechnet.
Der Betrag der Verzinsung wird in den folgenden Zahlen angegeben: Unterer Band = SMA ((Schließung, ATR-Periode) - ATR-Multiplikator * ATR
Ein Aufwärtstrend wird ermittelt, wenn er unterhalb des unteren Bandes geschlossen wird. Ein Abwärtstrend wird ermittelt, wenn er unter dem oberen Band geschlossen wird.
Während des Aufwärtstrends wird der SuperTrend auf das untere Band gesetzt. Während des Abwärtstrends wird der SuperTrend auf das obere Band gesetzt.
Um falsche Signale zu reduzieren, wird der SuperTrend mit einem gleitenden Durchschnitt glättet, um den gefilterten SuperTrend zu erhalten.
Der RSI-Wert wird berechnet, dann wird der Stochastische Indikator darauf angewendet, um einen Stochastischen RSI zu erzeugen.
Long-Entry: Schließung von Kreuzungen über dem gefilterten SuperTrend im Aufwärtstrend und dem Stochastic RSI < 80 Kurzer Eintrag: Schließung von Kreuzungen unter dem gefilterten SuperTrend bei Abwärtstrend und Stochastischem RSI > 20
Lange Ausfahrt: Schließung von Kreuzungen unter dem gefilterten SuperTrend im Aufwärtstrend
Kurzer Ausgang: Schließen von Kreuzungen über dem gefilterten SuperTrend im Abwärtstrend
Diese verbesserte Trendfolgestrategie hat folgende Vorteile gegenüber einfachen gleitenden Durchschnitten:
Diese Strategie kombiniert die Stärken von SuperTrend und Stochastic RSI für eine effektive Trendidentifizierung und qualitativ hochwertige Handelssignale und macht die Strategie gleichzeitig durch Filtermechanismen robust gegenüber Marktlärm. Eine weitere Leistungsverbesserung kann durch Parameteroptimierung oder Kombination mit anderen Indikatoren/Modellen erzielt werden. Insgesamt zeigt diese Strategie eine gute Trendverfolgungsfähigkeit und eine gewisse Risikokontrolle für diejenigen, die nach stabilen Renditen suchen.
/*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)