Chiến lược được đặt tên theo việc sử dụng hai chỉ số, Bollinger Bands và Keltner Channels, để tạo ra tín hiệu giao dịch. Nó theo dõi sự đột phá giá vượt ra ngoài ranh giới kênh, đi dài trên sự đột phá giảm và ngắn trên sự đột phá tăng.
Chiến lược này kết hợp Bollinger Bands và Keltner Channels. Bollinger Bands là các kênh thích nghi được vẽ ở đường trung bình động cộng với / trừ độ lệch chuẩn. Keltner Channels sử dụng phạm vi thực để tính chiều rộng kênh.
Khái niệm giao dịch là đi dài khi giá đóng cửa giảm xuống dưới dải Bollinger thấp hơn và kênh Keltner thấp hơn, dự đoán một sự đảo ngược. Nó đi ngắn khi giá đóng cửa tăng lên trên ranh giới Bollinger và Keltner Channel trên.
Bằng cách kết hợp hai kênh, chiến lược có hiệu quả xác định biến động giá bất thường. Các bộ lọc kênh kép giúp tránh tín hiệu sai. Các điểm dừng và lợi nhuận cũng giúp kiểm soát rủi ro.
So với chỉ sử dụng Bollinger Bands hoặc Keltner Channels, chiến lược này lọc ra nhiều tiếng ồn hơn cho các tín hiệu chất lượng cao hơn.
Một rủi ro chính là bản chất chậm trễ của các chỉ số kênh. Giá có thể bắt đầu đảo ngược trước khi chạm đến ranh giới kênh kích hoạt tín hiệu. Điều này có thể dẫn đến nhập muộn hoặc bị bắt trong pullbacks.
Các điểm dừng quá chặt chẽ và lợi nhuận quá rộng là những rủi ro khác.
Chiến lược có thể được tối ưu hóa bằng cách thêm các bộ lọc phụ trợ như dao động động lực.
Việc kết hợp các điểm dừng thích nghi và lấy lợi nhuận là một con đường cải thiện khác, giúp chiến lược thích nghi tốt hơn với thị trường phát triển.
Chiến lược phá vỡ kênh kép này kết hợp các điểm mạnh của Bollinger Bands và Keltner Channels để xác định hiệu quả các cơ hội đảo ngược, đồng thời kiểm soát rủi ro thông qua các bộ lọc kênh kép và cài đặt dừng / lấy lợi nhuận.
/*backtest start: 2023-01-31 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Estratégia de Compra/Venda BB e KC", overlay=true) // Parâmetros das Bandas de Bollinger bollinger_length = input(20, title="Comprimento das Bandas de Bollinger", minval=1) bollinger_deviation = input(2.0, title="Desvio Padrão das Bandas de Bollinger", minval=0.1) // Parâmetros dos Canais de Keltner keltner_length = input(20, title="Comprimento dos Canais de Keltner", minval=1) atr_multiplier = input(1.5, title="Multiplicador ATR dos Canais de Keltner", minval=0.1) // Take Profit e Stop Loss em termos financeiros take_profit = input(10.0, title="Take Profit (em $)", step=1) stop_loss = input(20.0, title="Stop Loss (em $)", step=1) // Cálculos das Bandas de Bollinger basis_bb = sma(close, bollinger_length) dev_bb = sma(stdev(close, bollinger_length), bollinger_length) upper_bb = basis_bb + dev_bb * bollinger_deviation lower_bb = basis_bb - dev_bb * bollinger_deviation // Cálculos dos Canais de Keltner basis_kc = sma(close, keltner_length) atr_kc = sma(atr(keltner_length), keltner_length) upper_kc = basis_kc + atr_multiplier * atr_kc lower_kc = basis_kc - atr_multiplier * atr_kc // Condição de Compra buy_condition = close < lower_bb and close < lower_kc // Condição de Venda sell_condition = close > upper_bb and close > upper_kc // Estratégia de Compra/Venda com TP e SL if (buy_condition) strategy.entry("Compra", strategy.long) strategy.exit("Take Profit/Stop Loss", from_entry="Compra", profit=take_profit, loss=stop_loss) if (sell_condition) strategy.entry("Venda", strategy.short) strategy.exit("Take Profit/Stop Loss", from_entry="Venda", profit=take_profit, loss=stop_loss) // Plot das Bandas de Bollinger e dos Canais de Keltner plot(upper_bb, color=color.rgb(47, 33, 243), title="Banda Superior de Bollinger") plot(lower_bb, color=color.rgb(89, 33, 243), title="Banda Inferior de Bollinger") plot(upper_kc, color=color.rgb(200, 255, 0), title="Canal Superior de Keltner") plot(lower_kc, color=color.rgb(225, 255, 0), title="Canal Inferior de Keltner")