Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada Bollinger Bands dan prinsip-prinsip reversi rata-rata harga. Ini memantau penyimpangan harga dari rata-rata bergerak, dikombinasikan dengan sinyal breakout Bollinger Bands, untuk diperdagangkan ketika mengharapkan regresi harga setelah kondisi pasar yang terlalu banyak dibeli / terlalu banyak dijual. Strategi ini menggunakan ambang persentase untuk mengukur penyimpangan harga dan menetapkan kondisi pemicu yang wajar untuk menyaring sinyal palsu dan meningkatkan akurasi perdagangan.
Logika inti didasarkan pada elemen kunci berikut:
Strategi ini menangkap peluang overbought / oversold pasar melalui Bollinger Bands dan prinsip-prinsip reversi rata-rata, secara efektif mengendalikan risiko perdagangan dengan ambang batas penyimpangan yang wajar dan mekanisme pelacakan status. Kerangka strategi memiliki skalabilitas yang baik dan dapat beradaptasi dengan lingkungan pasar yang berbeda melalui optimasi parameter dan peningkatan fungsionalitas.
/*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)