Chiến lược này là một hệ thống giao dịch động lực dựa trên chỉ số kênh hàng hóa (CCI), được thiết kế để nắm bắt các cơ hội giao dịch trong các khu vực bán quá mức bằng cách theo dõi độ lệch giá so với mức trung bình. Chiến lược sử dụng xem lại 12 giai đoạn, đi vào các vị trí dài khi CCI giảm xuống dưới ngưỡng -90, thoát khi giá đóng phá vỡ trên mức cao trước đó và bao gồm các cơ chế dừng lỗ và lấy lợi nhuận tùy chọn.
Nguyên tắc cốt lõi sử dụng CCI để đo độ lệch giá so với mức trung bình của nó. Tính toán CCI bao gồm: đầu tiên tính toán giá điển hình (trung bình toán học của giá cao, thấp và đóng), sau đó tính toán Trung bình di chuyển đơn giản (SMA) của giá điển hình, cuối cùng dẫn ra CCI bằng cách trừ SMA khỏi giá điển hình, chia theo độ lệch trung bình và nhân với 0.015. Các vị trí dài được nhập khi CCI giảm xuống dưới -90, cho thấy các điều kiện bán quá mức có thể xảy ra; các vị trí được đóng khi giá vượt quá mức cao trước đó, xác nhận xu hướng tăng. Chiến lược cung cấp các tham số dừng lỗ và lấy lợi nhuận tùy chỉnh để phù hợp với sở thích rủi ro khác nhau.
Chiến lược này nắm bắt các cơ hội bán quá mức thị trường thông qua chỉ số CCI, kết hợp với các cơ chế dừng lỗ và lấy lợi nhuận để tạo ra một hệ thống giao dịch hoàn chỉnh. Chiến lược có logic rõ ràng, thực thi dễ dàng và khả năng kiểm soát rủi ro tốt. Thông qua các biện pháp tối ưu hóa như lọc tín hiệu và ngưỡng năng động, sự ổn định và lợi nhuận của chiến lược có thể được cải thiện hơn nữa. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng và điều chỉnh các tham số theo đặc điểm thị trường cụ thể trước khi thực hiện trực tiếp.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("CCI Threshold Strategy", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1) // --- Input Parameters --- // Lookback period for CCI calculation lookbackPeriod = input.int(12, minval=1, title="CCI Lookback Period") // Buy threshold for CCI; typically represents an oversold condition buyThreshold = input.int(-90, title="CCI Buy Threshold") // Stop loss and take profit settings stopLoss = input.float(100.0, minval=0.0, title="Stop Loss in Points") takeProfit = input.float(150.0, minval=0.0, title="Take Profit in Points") // Checkboxes to enable/disable SL and TP useStopLoss = input.bool(false, title="Enable Stop Loss") useTakeProfit = input.bool(false, title="Enable Take Profit") // --- Calculate CCI --- // CCI (Commodity Channel Index) is used as a momentum indicator to identify oversold and overbought conditions cci = ta.cci(close, length=lookbackPeriod) // --- Define Buy and Sell Conditions --- // Buy condition: CCI drops below -90, indicating potential oversold levels longCondition = cci < buyThreshold // Sell condition: Close price crosses above the previous day's high, signaling potential exit sellCondition = close > ta.highest(close[1], 1) // --- Strategy Execution --- // Buy entry based on the long condition if (longCondition) strategy.entry("Buy", strategy.long) // Close the long position based on the sell condition if (sellCondition) strategy.close("Buy") // Optional: Add stop loss and take profit for risk management if (longCondition) strategy.exit("Sell", from_entry="Buy", loss=useStopLoss ? stopLoss : na, profit=useTakeProfit ? takeProfit : na) // --- Plotting for Visualization --- // Plot CCI with threshold levels for better visualization plot(cci, title="CCI", color=color.blue) hline(buyThreshold, "Buy Threshold", color=color.red, linestyle=hline.style_dotted) hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted)