KDJ RSI Crossover Buy Sell Signals Chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-27 10:57:16
Tags:

img

Tổng quan

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

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

Chiến lược sử dụng sự chéo chéo của chỉ số KDJ và chỉ số RSI để đánh giá thời gian mua và bán.

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

Đồng thời, chiến lược này kết hợp chỉ số RSI để đánh giá sức mạnh của tín hiệu. RSI dưới 30 là bán quá mức và RSI trên 70 là mua quá mức. Khi KDJ phát hành tín hiệu mua, nếu chỉ số RSI cũng hiển thị bán quá mức, nó tăng độ tin cậy của tín hiệu mua. Ngược lại, khi KDJ phát hành tín hiệu bán, nếu RSI cũng hiển thị mua quá mức, nó tăng độ tin cậy của tín hiệu bán.

Tóm lại, chiến lược này tạo ra tín hiệu giao dịch trong các tình huống sau:

Tín hiệu mua:

  1. KDJs đường J băng qua trên đường K và RSI ((6) < RSI ((12)
  2. KDJs đường J băng qua trên đường K VÀ RSI(6) băng qua trên RSI(24)
  3. RSI ((6) vượt trên RSI ((24) và RSI ((6) < 40

Các tín hiệu bán:

  1. KDJs đường J băng qua dưới đường K VÀ RSI(6) > RSI(12)
  2. KDJs đường J băng qua dưới đường K VÀ RSI(6) băng qua dưới RSI(24)
  3. RSI ((6) vượt dưới RSI ((24) và RSI ((6) > 60

Ưu điểm

  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 mua quá mức / bán quá mức, trong khi chỉ số RSI đánh giá sức mạnh.

  3. Nhiều điều kiện mua / bán tránh các cơ hội bị bỏ lỡ do các lý do từ một chỉ số duy nhất.

  4. Các thông số RSI được thiết lập cho 6, 12 và 24 giai đoạn, phù hợp với các mức chu kỳ khác nhau, làm cho chiến lược linh hoạt hơn.

Phân tích rủi ro

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

  2. Các điều kiện giao dịch đa dạng làm tăng sự phức tạp của các hoạt động chiến lược và đòi hỏi phải kiểm tra cẩn thận.

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

Hướng dẫn cải thiện

  1. Thử thêm các chỉ số khác như Bollinger Bands để tăng cường tín hiệu giao dịch.

  2. Tối ưu hóa các thông số của KDJ và RSI để phù hợp với các mức chu kỳ khác nhau.

  3. Tăng các tiêu chuẩn dừng lỗ để kiểm soát rủi ro.

  4. Thêm cơ chế dừng lỗ tự động để dừng lỗ khi giá đảo ngược.

Kết luận

Chiến lược này kết hợp các lợi thế của chỉ số KDJ và chỉ số RSI bằng cách sử dụng sự chéo chéo của hai chỉ số để xác định thời gian mua và bán, cải thiện độ chính xác của tín hiệu giao dịch. Sử dụng các chỉ số RSI với các thông số khác nhau cũng làm cho chiến lược linh hoạt hơn. Chiến lược này có hiệu quả tránh rủi ro tín hiệu sai có thể xảy ra với một chỉ số duy nhất. Bằng cách cải thiện các thông số, thêm các chỉ số phụ trợ, cơ chế dừng lỗ, v.v., hiệu suất của chiến lược này có thể được tăng thêm.


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


Thêm nữa