Diese Strategie kombiniert den Supertrend-Indikator und den Bollinger Bands-Indikator, um Trendchancen auf dem Markt zu erfassen. Der Supertrend-Indikator wird verwendet, um die aktuelle Markttrendrichtung zu bestimmen, während der Bollinger Bands-Indikator zur Messung der Marktvolatilität verwendet wird. Ein langes Signal wird erzeugt, wenn der Schlusskurs über die Supertrend-Linie bricht und unterhalb des unteren Bollinger Bands liegt, und ein kurzes Signal wird erzeugt, wenn der Schlusskurs unterhalb der Supertrend-Linie bricht und über dem oberen Bollinger Band liegt. Der Vorteil dieser Strategie besteht darin, dass sie rechtzeitig in den Markt eintreten kann, wenn der Trend klar ist und gleichzeitig einen vorzeitigen Eintritt in einen unruhigen Markt vermeidet.
Die Supertrend-Bollinger-Band-Kombinationsstrategie ist eine Trendfolgestrategie, die durch die Kombination von zwei Marktfaktoren: Trend und Volatilität Trendschancen effektiv erfassen kann. Diese Strategie hat jedoch auch bestimmte Einschränkungen, wie Parameterempfindlichkeit und erhöhtes Risiko in Umgebungen mit hoher Volatilität. Daher ist es in der tatsächlichen Anwendung notwendig, die Strategie entsprechend den Merkmalen des Marktes und den eigenen Risikopräferenzen angemessen zu optimieren und zu verbessern.
/*backtest start: 2024-03-21 00:00:00 end: 2024-03-28 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sabhiv27 //@version=4 strategy("Supertrend & Bollinger Bands Strategy", shorttitle="ST_BB_Strategy", overlay=true) // Input options factor = input(3, title="Supertrend Factor") length = input(10, title="ATR Length") bollinger_length = input(20, title="Bollinger Bands Length") bollinger_deviation = input(2, title="Bollinger Bands Deviation") // Calculate True Range for Supertrend truerange = rma(tr, length) // Calculate Supertrend var float up_trend = na var float dn_trend = na var float trend = na up_signal = hl2 - (factor * truerange) dn_signal = hl2 + (factor * truerange) up_trend := close[1] > up_trend[1] ? max(up_signal, up_trend[1]) : up_signal dn_trend := close[1] < dn_trend[1] ? min(dn_signal, dn_trend[1]) : dn_signal trend := close > dn_trend ? 1 : close < up_trend ? -1 : nz(trend[1], 1) // Calculate Bollinger Bands basis = sma(close, bollinger_length) dev = stdev(close, bollinger_length) upper_band = basis + bollinger_deviation * dev lower_band = basis - bollinger_deviation * dev // Entry conditions long_condition = crossover(close, up_trend) and close < lower_band short_condition = crossunder(close, dn_trend) and close > upper_band // Exit conditions exit_long_condition = crossover(close, dn_trend) exit_short_condition = crossunder(close, up_trend) // Plot Supertrend plot(trend == 1 ? up_trend : dn_trend, color=trend == 1 ? color.green : color.red, linewidth=2) // Plot Bollinger Bands plot(upper_band, color=color.blue) plot(lower_band, color=color.blue) // Generate buy and sell signals 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)