Chiến lược này là một hệ thống giao dịch định lượng dựa trên Bollinger Bands và các nguyên tắc đảo ngược giá trung bình. Nó theo dõi độ lệch giá từ đường trung bình động, kết hợp với các tín hiệu Bollinger Bands, để giao dịch khi mong đợi sự hồi quy giá sau khi thị trường mua quá mức / bán quá mức. Chiến lược sử dụng ngưỡng phần trăm để đo độ lệch giá và thiết lập các điều kiện kích hoạt hợp lý để lọc các tín hiệu sai và cải thiện độ chính xác giao dịch.
Logic cốt lõi dựa trên các yếu tố chính sau:
Chiến lược này nắm bắt các cơ hội mua quá mức / bán quá mức trên thị trường thông qua các Dải Bollinger và nguyên tắc đảo ngược trung bình, kiểm soát hiệu quả rủi ro giao dịch với ngưỡng độ lệch hợp lý và cơ chế theo dõi tình trạng. Khung chiến lược có khả năng mở rộng tốt và có thể thích nghi với các môi trường thị trường khác nhau thông qua tối ưu hóa tham số và cải thiện chức năng.
/*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)