
Chiến lược này kết hợp các chỉ số di chuyển trung bình, chỉ số cường độ tương đối và chỉ số kênh hàng hóa, tạo thành một chiến lược theo dõi xu hướng và kết hợp các chỉ số hoàn chỉnh hơn. Ý tưởng cơ bản của nó là sử dụng các chỉ số tín hiệu đảo ngược để tạo ra một xu hướng chính xác hơn sau khi các chỉ số xu hướng xác nhận xu hướng.
Sử dụng hl2 để tính giá trung bình
Tính toán chỉ số CCI trong 14 chu kỳ để xác định xu hướng cấp độ lớn. Khi CCI lớn hơn 0 thì xu hướng lên, khi nhỏ hơn 0 thì xu hướng xuống.
Tính toán đường nhanh của chỉ số RSI 14 chu kỳ và đường chậm của chỉ số RSI 50 chu kỳ. Khi đường nhanh vượt qua đường chậm, nó tạo ra tín hiệu mua, và khi đường nhanh vượt qua đường chậm, nó tạo ra tín hiệu bán.
Chỉ khi chỉ số CCI đồng thời phù hợp với hướng tín hiệu của chỉ số RSI, tín hiệu giao dịch thực tế sẽ được tạo ra. Đó là, chỉ mua khi CCI lớn hơn 0 và RSI đi qua đường chậm trên đường nhanh và chỉ bán khi CCI nhỏ hơn 0 và RSI đi qua đường chậm dưới đường nhanh.
Bằng cách tính toán liệu giá có cao hơn hoặc thấp hơn trung bình di chuyển 14 chu kỳ hl2 để hỗ trợ phán đoán xu hướng chi tiết, do đó tránh phá vỡ giả. Chỉ có tín hiệu mua được tạo ra khi giá vượt quá trung bình 14 chu kỳ của hl2 và RSI, và chỉ có tín hiệu bán khi giá thấp hơn trung bình 14 chu kỳ của hl2 và RSI.
Chiến lược này kết hợp các tín hiệu định hướng và đảo ngược để có thể tham gia vào một thời điểm khi xu hướng bắt đầu và có hiệu suất tốt hơn bằng cách đánh giá điểm rút lui thông qua các chỉ số tín hiệu đảo ngược.
Chỉ số kênh hàng hóa có thể xác định chính xác các xu hướng lớn, tránh lựa chọn sai hướng giao dịch.
Các đường giao thoa nhanh chậm của chỉ số cường độ tương đối được sử dụng như tín hiệu chỉ ra là ổn định và đáng tin cậy hơn, tránh các vấn đề về sự chậm trễ của các đường trung bình di chuyển, có thể bắt kịp sự đảo ngược của giá.
So sánh giá và kích thước của đường trung bình có thể lọc thêm các tín hiệu sai dẫn đến phá vỡ giả.
Nhìn chung, chiến lược này khá ổn định, nổi bật trong các xu hướng mạnh.
Chiến lược này nhạy cảm với các giống giao dịch và cần các tham số tối ưu hóa cho các giống cụ thể. Nếu áp dụng mù quáng cho tất cả các giống, có thể dẫn đến hiệu suất không ổn định.
Cài đặt tham số chiến lược, chẳng hạn như đường trung bình 14 chu kỳ và đường trung bình 50 chu kỳ, cần được điều chỉnh cho phù hợp với thị trường khác nhau. Nếu tham số được thiết lập không đúng cách cũng sẽ dẫn đến hiệu suất kém.
Chỉ dựa vào CCI để đánh giá xu hướng cấp độ lớn là chưa hoàn hảo, sẽ có một số sự chậm trễ.
Có nhiều kết hợp các chỉ số tín hiệu đảo ngược, có thể có một mức độ tối ưu hóa quá mức. Điều này cũng cần được kiểm tra lại nghiêm ngặt.
Bạn có thể xem xét thêm các chỉ số để đánh giá xu hướng cấp độ lớn, như DMI, ADX, để đánh giá xu hướng chính xác hơn.
Tăng logic dừng lỗ. Ví dụ: sau khi có tín hiệu đảo ngược, nếu giá lại điều chỉnh một mức độ nhất định, bạn có thể xem xét dừng lỗ để giảm tổn thất.
Tối ưu hóa tham số để phù hợp hơn với các loại giao dịch cụ thể. Ví dụ: tăng tham số chu kỳ dòng chậm hoặc điều chỉnh cách tính toán giá trung bình.
Xây dựng một danh mục tối ưu hóa tham số, chọn tham số tối ưu cho các giống khác nhau, điều này có thể làm tăng đáng kể tính phù hợp của chiến lược.
Thêm chỉ số năng lượng, tránh phát ra tín hiệu sai lệch khi năng lượng không đủ.
Chiến lược này có khung tổng thể, kết hợp các chỉ số đánh giá xu hướng và đảo ngược, về mặt lý thuyết có thể đạt được hiệu suất tốt hơn. Tuy nhiên, trong ứng dụng thực tế, vẫn cần tối ưu hóa tham số và mô hình cho các loại giao dịch, giảm nguy cơ phù hợp quá mức. Nếu được kiểm tra thống kê nghiêm ngặt, nó có khả năng trở thành một chiến lược ổn định đáng được đề xuất.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SuchitRaju
//@version=4
strategy("MA RSI CCI")
price_up = if(close > open and close > sma(hl2,14))
1
else
0
price_down = if(open > close and close < sma(hl2,14))
1
else
0
//
cci_indicator = cci(hl2, 14)
// plot(cci_indicator, color=color.blue)
rsi_slow = sma(rsi(close, 14), 50)
// plot(rsi_slow, color=color.red)
rsi_fast = rsi(close, 14)
// plot(rsi_fast, color=color.green)
isCrossover = if(rsi_fast > rsi_slow and cci_indicator > 0)
1
else
0
// plotshape(isCrossover, style = shape.arrowup, color = color.green, size = size.huge)
isCrossunder = if(rsi_fast < rsi_slow and cci_indicator < 0)
1
else
0
// plotshape(isCrossunder, style = shape.arrowup, color = color.red, size = size.huge)
// start = timestamp("GMT-5", 2016,9,1,0,0)
// end = timestamp("GMT-5", 2017,9,1,0,0)
// strategy.entry("Long", strategy.long, 1, when = isCrossover and price_up)
// strategy.entry("Short", strategy.short, 1, when = isCrossunder and price_down)
// strategy.close("Long", when = isCrossunder and price_down)
// strategy.close("Short", when = isCrossover and price_up)
strategy.entry("Long", strategy.long, 1, when = isCrossover)
strategy.entry("Short", strategy.short, 1, when = isCrossunder)
strategy.close("Long", when = isCrossunder)
strategy.close("Short", when = isCrossover)