Chiến lược mua và bán điểm dựa trên KDJ và RSI


Ngày tạo: 2023-11-27 10:57:16 sửa đổi lần cuối: 2023-11-27 10:57:16
sao chép: 0 Số nhấp chuột: 2432
1
tập trung vào
1617
Người theo dõi

Chiến lược mua và bán điểm dựa trên KDJ và RSI

Tổng quan

Chiến lược này kết hợp các chỉ số KDJ và RSI để xác định thời điểm mua và bán. Nó phát ra tín hiệu giao dịch khi các chỉ số KDJ và RSI phát ra tín hiệu mua / bán.

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

Chiến lược này sử dụng giao dịch chéo giữa chỉ số KDJ và RSI để xác định thời điểm mua và bán.

Cụ thể, khi đường J của KDJ đi qua đường K từ phía dưới được coi là tín hiệu mua, và khi đường J đi qua đường K từ phía trên là tín hiệu bán. Điều này có nghĩa là cổ phiếu mua khi chuyển từ trạng thái bán tháo sang trạng thái mua quá mức và bán khi chuyển từ trạng thái mua quá mức sang trạng thái bán tháo.

Trong khi đó, chiến lược này kết hợp với chỉ số RSI để đánh giá tín hiệu mạnh yếu. RSI nhỏ hơn 30 là bán tháo, RSI lớn hơn 70 là mua quá mức. Khi KDJ phát ra tín hiệu mua, tín hiệu mua sẽ được tăng cường nếu chỉ số RSI cũng hiển thị là bán tháo. Ngược lại, khi KDJ phát ra tín hiệu bán khi RSI cũng hiển thị là mua quá mức, tín hiệu bán sẽ được tăng cường.

Nói chung, chiến lược này phát ra tín hiệu giao dịch khi:

Dấu hiệu mua:

  1. Đường J của KDJ đi ngang qua đường K và RSI (khoảng 6) < RSI (khoảng 12)
  2. Đường J của KDJ đi ngang qua đường K và RSI (khoảng 6) đi ngang qua RSI (khoảng 24)
  3. RSI (khoảng 6) đi qua RSI (khoảng 24) và RSI (khoảng 6) < 40

Bán tín hiệu:

  1. Đường J của KDJ đi xuống xuyên qua đường K và RSI (trong giai đoạn 6) > RSI (trong giai đoạn 12)
  2. Đường J của KDJ đi xuống qua đường K và RSI (thời gian 6) đi qua RSI (thời gian 24)
  3. RSI (thời gian 6) đi qua RSI (thời gian 24) và RSI (thời gian 6) > 60

Lợi thế chiến lược

  1. Kết hợp chỉ số KDJ và chỉ số RSI, làm cho tín hiệu giao dịch đáng tin cậy hơn.

  2. Chỉ số KDJ đánh giá tình trạng quá mua quá bán, chỉ số RSI đánh giá tình trạng mạnh yếu, kết hợp cả hai có thể nắm bắt tốt hơn điểm biến đổi.

  3. Kết hợp nhiều điều kiện mua / bán để tránh bỏ lỡ cơ hội vì chỉ số duy nhất.

  4. Các tham số của RSI được thiết lập thành ba nhóm tham số là 6, 12 và 24, các tham số này áp dụng cho các cấp chu kỳ khác nhau, làm cho chiến lược có thể áp dụng rộng hơn.

Phân tích rủi ro

  1. Các chỉ số KDJ và RSI có thể xuất hiện các tín hiệu giả, dẫn đến giao dịch không cần thiết.

  2. Điều kiện giao dịch đa dạng làm tăng sự phức tạp trong hoạt động chiến lược và cần được kiểm tra kỹ lưỡng.

  3. Chiến lược này cũng cần được thử nghiệm và tối ưu hóa trong các thị trường khác nhau, và các tham số cũng cần được điều chỉnh.

Tối ưu hóa chiến lược

  1. Thêm các chỉ số khác như đường Brin, tín hiệu giao dịch tăng cường.

  2. Các tham số của chỉ số KDJ và RSI có thể được tối ưu hóa để phù hợp hơn với các cấp chu kỳ khác nhau.

  3. Bạn có thể kiểm soát rủi ro bằng cách nâng cao tiêu chuẩn ngăn chặn.

  4. Có thể thêm một cơ chế tự động dừng lỗ.

Tóm tắt

Chiến lược này kết hợp các ưu điểm của chỉ số KDJ và chỉ số RSI, tăng cường độ chính xác của tín hiệu giao dịch bằng cách kết hợp các chỉ số kép để đánh giá thời gian mua và bán. Đồng thời kết hợp các chỉ số RSI với các tham số khác nhau để xác định trạng thái dư thừa, làm cho chiến lược có thể áp dụng rộng hơn. Chiến lược này có hiệu quả trong việc tránh rủi ro tín hiệu giả mà chỉ một chỉ số có thể mang lại.

Mã nguồn chiến lược
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 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/
// © innocentChart76064

//@version=5
strategy(title = "buy/sell KDJ RSI", overlay=true)

//Define KDJ parameter
kdj_length = input(9, title = "KDJ length")
signal = input(3,title="signal")

// Calculate KDJ values
bcwsma(s,l,m) => 
    _bcwsma = float(na)
    _s = s
    _l = l
    _m = m
    _bcwsma := (_m*_s+(_l-_m)*nz(_bcwsma[1]))/_l
    _bcwsma

c = close
h = ta.highest(high, kdj_length)
l = ta.lowest(low,kdj_length)
RSV = 100*((c-l)/(h-l))
kdj_k = bcwsma(RSV, signal, 1)
kdj_d = bcwsma(kdj_k, signal, 1)
kdj_j = 3 * kdj_k-2 * kdj_d

//Define RSI parameter 
rsi_length_1 = input(6)
rsi_length_2 = input(12)
rsi_length_3 = input(24)
price = close 

//Calculate RSI values
rsi_1 = ta.rsi(price, rsi_length_1)
rsi_2 = ta.rsi(price, rsi_length_2)
rsi_3 = ta.rsi(price, rsi_length_3)

// Trading conditions
longCondition = ta.crossover(kdj_j,kdj_k) and rsi_1 > rsi_2 or ta.crossover(kdj_j,kdj_k) and ta.crossover(rsi_1,rsi_3) or ta.crossover(rsi_1,rsi_3) and rsi_1<40
shortCondition = ta.crossunder(kdj_j,kdj_k) and rsi_1 < rsi_2 or ta.crossunder(kdj_j,kdj_k) and ta.crossunder(rsi_1,rsi_3) or ta.crossunder(rsi_1,rsi_3) and rsi_1>60
// Enter long trade
strategy.entry("Long", strategy.long, when=longCondition)

// Enter short trade
strategy.entry("Short", strategy.short, when=shortCondition)