Định hướng dựa trên các chỉ số OBV và CCI theo chiến lược

Tác giả:ChaoZhang, Ngày: 2024-02-21 14:05:12
Tags:

img

Tổng quan

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

Chiến lược logic

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 dòng vốn trong thị trường. Khi OBV màu xanh lá cây, nó có nghĩa là xu hướng hiện tại là dòng vốn chảy vào; khi OBV màu đỏ, nó có nghĩa là xu hướng hiện tại là dòng vốn chảy ra. Chỉ số CCI được sử dụng như một bộ lọc. Bằng cách đặt ngưỡng, khi CCI trên ngưỡng, nó được coi là thị trường tăng; khi CCI dưới ngưỡng, nó được coi là thị trường gấu.

Đối với tín hiệu nhập cảnh, nếu giá trị OBV giai đoạn cuối là màu xanh lá cây (dòng vốn chảy vào) và CCI trên ngưỡng (trong thị trường tăng), trong khi đó đường OBV vượt qua đường EMA của nó, một tín hiệu mua được tạo ra.

Đối với tín hiệu thoát, nếu giá trị OBV giai đoạn cuối là màu đỏ (dòng vốn chảy ra) và CCI dưới ngưỡng (trong thị trường giảm), trong khi đó đường OBV băng qua dưới đường EMA của nó, một tín hiệu bán được tạo ra.

Vì vậy, bằng cách đánh giá xu hướng chính bằng OBV, lọc bằng chỉ số CCI, và kết hợp chúng bằng cách sử dụng đường chéo EMA để tạo ra các tín hiệu giao dịch cụ thể, chiến lược nhận ra xu hướng theo.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Sử dụng OBV để xác định dòng vốn thị trường và hướng xu hướng, tránh nhiễu nhiễu thị trường ngắn hạn;

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

  3. Sử dụng EMA crossover để tạo ra các điểm giao dịch bê tông chất lượng cao;

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

Phân tích rủi ro

Ngoài ra còn có một số rủi ro tiềm ẩn cho chiến lược này:

  1. Khả năng các chỉ báo OBV và CCI tạo ra tín hiệu sai;

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

  3. Có thể bị mắc kẹt trong quá trình quay lại;

  4. Điều chỉnh tham số kém dẫn đến hiệu suất chiến lược kém.

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

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:

  1. Đánh giá tác động của các thông số khác nhau và tìm ra sự kết hợp các thông số tối ưu;

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

  3. Thêm cơ chế dừng lỗ để kiểm soát lỗ giao dịch duy nhất;

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

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

Tóm lại

Tóm lại, đây là một chiến lược theo xu hướng cơ bản có thể theo dõi hiệu quả xu hướng giá và tránh nhiễu nhiễu. Nhưng vẫn có một số rủi ro, đòi hỏi phải cải thiện như tối ưu hóa tham số, dừng lỗ, kiểm soát tần số giao dịch vv. Nếu các tham số được thiết lập một cách khoa học, cải thiện hiệu suất backtest đáng kể có thể đạt được. Chiến lược phù hợp với các nhà giao dịch lượng tiên tiến hơn để học và thực hành.


/*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")


Thêm nữa