Chiến lược theo xu hướng dựa trên các chỉ báo OBV và CCI


Ngày tạo: 2024-02-21 14:05:12 sửa đổi lần cuối: 2024-02-21 14:05:12
sao chép: 2 Số nhấp chuột: 958
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng dựa trên các chỉ báo OBV và CCI

Tổng quan

Chiến lược này là một chiến lược theo dõi xu hướng dựa trên chỉ số OBV và CCI. Nó đánh giá xu hướng thị trường và dòng tiền thông qua chỉ số OBV, sau đó sử dụng chỉ số CCI để lọc và tạo tín hiệu giao dịch. Khi cả chỉ số OBV và CCI xác nhận hiện tại là xu hướng tăng, hãy làm nhiều hơn; Khi cả chỉ số OBV và CCI xác nhận hiện tại là xu hướng giảm, hãy làm rỗng.

Nguyên tắc chiến lược

Chiến lược này chủ yếu dựa trên hai chỉ số OBV và CCI. Chỉ số OBV có thể phản ánh tình trạng dòng tiền của thị trường. Khi OBV màu xanh lá cây, nó cho thấy xu hướng hiện tại của dòng tiền vào; Khi OBV màu đỏ, nó cho thấy xu hướng hiện tại của dòng tiền ra.

Trong đánh giá tín hiệu nhập, nếu OBV của chu kỳ trước là màu xanh lá cây (đối với dòng tiền) và CCI cao hơn ngưỡng (đối với thị trường đa đầu), OBV trực tuyến sẽ đi qua đường trung bình EMA của nó, tạo ra tín hiệu mua.

Trong phán đoán tín hiệu bán tháo, nếu OBV của chu kỳ trước là màu đỏ ((tiền chảy ra) và CCI thấp hơn so với giá trị ngưỡng ((thuộc thị trường đầu trống), OBV cũng xuyên qua đường trung bình EMA của nó, tạo ra tín hiệu bán.

Bằng cách này, thông qua OBV để xác định định hướng lớn, chỉ số CCI để lọc, cả hai kết hợp với EMA trung bình để tạo ra tín hiệu giao dịch cụ thể, theo dõi xu hướng.

Phân tích lợi thế

Chiến lược này có những lợi thế chính như sau:

  1. Sử dụng OBV để đánh giá dòng tiền và xu hướng của thị trường, tránh bị nhiễu bởi tiếng ồn thị trường ngắn hạn;

  2. Các chỉ số CCI được sử dụng để lọc sóng, làm cho tín hiệu giao dịch đáng tin cậy hơn;

  3. Sử dụng EMA để tạo ra các điểm tín hiệu giao dịch cụ thể, chất lượng cao hơn;

  4. Các quy tắc rõ ràng, đơn giản, dễ hiểu và dễ thực hiện.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro tiềm ẩn:

  1. Có thể có tín hiệu OBV và CCI sai;

  2. Các tín hiệu giao dịch thường xuyên và dễ bị giao dịch quá mức;

  3. Có thể bị giam giữ trong thời gian bị triệu hồi.

  4. Thiết lập tham số không chính xác gây ra hiệu quả chính sách kém.

Những rủi ro này có thể được kiểm soát và tối ưu hóa thông qua các phương pháp như tham số tối ưu hóa, điều chỉnh tần số giao dịch, thiết lập dừng lỗ và sử dụng bộ lọc.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Đánh giá tác động của các tham số khác nhau đối với hiệu quả chiến lược, tìm kiếm sự kết hợp tối ưu của các tham số;

  2. Đặt giới hạn tần suất giao dịch để tránh giao dịch quá mức;

  3. Tăng các cơ chế ngăn chặn thiệt hại, kiểm soát tổn thất đơn lẻ;

  4. Thêm một bộ lọc cho các chỉ số khác để cải thiện chất lượng tín hiệu.

  5. Tối ưu hóa logic giao dịch để tín hiệu giao dịch đáng tin cậy hơn.

Tóm tắt

Chiến lược này nói chung là một chiến lược cơ bản, có thể theo dõi xu hướng giá một cách hiệu quả và tránh nhiễu tiếng ồn. Tuy nhiên, cũng có một số rủi ro cần được cải thiện thông qua các phương tiện tối ưu hóa tham số, thiết lập dừng lỗ, kiểm soát tần số giao dịch. Nếu tham số được chọn khoa học, hiệu quả đo lại có thể được cải thiện rõ rệt. Chiến lược này phù hợp với học tập và thực hành của nhà giao dịch định lượng cao cấp hơn.

Mã nguồn chiến lược
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//author: SudeepBisht
//@version=3
strategy("SB_CCI coded OBV Strategy", overlay=true)

src = close
length = input(20, minval=1, title="CCI Length")
threshold=input(0, title="CCI threshold for OBV coding")
lengthema=input(13, title="EMA length")
obv(src) => 
    cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume)
    
o=obv(src)
c=cci(src, length)
col=c>=threshold?green:red
chk=col==green?1:0
ema_line=ema(o,lengthema)

//plot(o, color=c>=threshold?green:red, title="OBV_CCI coded", linewidth=2)
//plot(ema(o,lengthema), color=orange, linewidth=2)


if (not na(ema_line))
    if (crossover(o, ema_line) and chk[1]==1)
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (crossunder(o, ema_line) and chk[1]==0)
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")