Эта стратегия является количественной торговой системой, основанной на принципах отклонения полос Боллинджера и цены. Она отслеживает отклонение цен от скользящей средней, в сочетании с сигналами отклонения полос Боллинджера, для торговли при ожидании регрессии цен после условий перекупки / перепродажи на рынке. Стратегия использует процентные пороги для измерения отклонения цен и устанавливает разумные условия запуска, чтобы отфильтровать ложные сигналы и улучшить точность торговли.
Основная логика основана на следующих ключевых элементах:
Эта стратегия охватывает возможности перекупленности/перепроданности рынка с помощью полос Боллинджера и принципов среднего реверсии, эффективно контролируя торговые риски с разумными порогами отклонений и механизмами отслеживания состояния.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 2h basePeriod: 2h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estratégia com Bandas de Bollinger e Sinal de Retorno", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Configurações das Bandas de Bollinger length = input.int(20, title="Período da média") mult = input.float(2.0, title="Desvio padrão") bbBasis = ta.sma(close, length) bbUpper = bbBasis + mult * ta.stdev(close, length) bbLower = bbBasis - mult * ta.stdev(close, length) // Configuração para a distância da média percent_threshold = input.float(3.5, title="Distância da média (%)") / 100 dist_from_mean = 0.0 trigger_condition = false if not na(bbBasis) dist_from_mean := math.abs(close - bbBasis) / bbBasis trigger_condition := dist_from_mean >= percent_threshold // Variáveis para identificar o estado do afastamento var bool is_outside = false var color candle_color = color.new(color.white, 0) if trigger_condition is_outside := true if is_outside and close <= bbUpper and close >= bbLower is_outside := false candle_color := color.new(color.blue, 0) // Atribui uma cor válida else candle_color := color.new(color.white, 0) // Aplicar cor às velas barcolor(candle_color) // Plotar Bandas de Bollinger plot(bbBasis, color=color.yellow, title="Média") plot(bbUpper, color=color.red, title="Banda Superior") plot(bbLower, color=color.green, title="Banda Inferior") // Lógica de entrada e saída longCondition = not is_outside and close > bbUpper if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = not is_outside and close < bbLower if (shortCondition) strategy.entry("Sell", strategy.short)