
Chiến lược này được thiết kế dựa trên chỉ số CCI để tạo ra một chiến lược giao dịch đường dài mà chỉ làm nhiều và không thả ra. Khi chỉ số CCI vượt quá 100, nó tạo ra tín hiệu mua và khi chỉ số CCI vượt quá 100, nó tạo ra tín hiệu bán. Chiến lược này chỉ cho phép vị trí trống, không cho phép thả ra, do đó, có thể ngăn ngừa hiệu quả rủi ro giao dịch không có đầu.
Chỉ số CCI là một chỉ số biến động theo xu hướng, nó đo lường mức độ lệch của giá hiện tại với giá điển hình trong một chu kỳ nhất định để xác định xem hiện tại có phải là tình trạng quá mua hay quá bán hay không. Khi chỉ số CCI vượt quá 100 có nghĩa là vào khu vực quá mua, thì có thể xem xét bán; khi chỉ số CCI vượt quá 100 có nghĩa là vào khu vực quá bán, thì có thể xem xét mua.
Lịch lý giao dịch của chiến lược này là khi có tín hiệu mua khi chỉ số CCI vượt qua 100, thì có thể tạo vị trí đầu nhiều; khi chỉ số CCI tiếp tục phá vỡ 100, có tín hiệu bán, sẽ tháo dỡ vị trí đầu nhiều trước đó. Ngoài ra, chiến lược này ngăn chặn việc tạo vị trí đầu trống bằng cách chỉ cho phép tháo dỡ, kiểm soát rủi ro hiệu quả.
Chiến lược này sử dụng chỉ số CCI để đánh giá vùng quá mua quá bán, chỉ cần làm nhiều hơn không làm rỗng, có thể ngăn ngừa rủi ro giao dịch không có hiệu quả. Khái niệm của chiến lược là khá trưởng thành, logic đơn giản, dễ thực hiện.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CCI Long Only Strategy", overlay=true)
// Input for CCI period
cciPeriod = input(14, title="CCI Period")
// Calculate CCI
cciValue = ta.cci(close, cciPeriod)
// Initialize variables to track last signals
var bool lastBuySignal = na
var bool lastSellSignal = na
// Buy condition
buyCondition = cciValue > 100 and na(lastBuySignal)
// Sell condition
sellCondition = cciValue < -100 and na(lastSellSignal)
// Update last signals
lastBuySignal := buyCondition ? true : na
lastSellSignal := sellCondition ? true : na
// Execute Buy and Sell orders
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.close("Buy", when = sellCondition)
// Plot CCI for reference
plot(cciValue, title="CCI", color=color.blue)