Chiến lược giao dịch tiền điện tử dựa trên Stochastic RSI


Ngày tạo: 2023-12-15 10:08:14 sửa đổi lần cuối: 2023-12-15 10:08:14
sao chép: 2 Số nhấp chuột: 982
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch tiền điện tử dựa trên Stochastic RSI

1. Ghi chú về chiến lược

Chiến lược này được gọi là Chiến lược giao dịch tiền tệ kỹ thuật số dựa trên Stochastic RSI. Chiến lược này kết hợp hai chỉ số là chỉ số tương đối mạnh (RSI) và chỉ số trơn trơn di động (Stochastic RSI) để xác định tín hiệu mua và bán tiền tệ kỹ thuật số.

Ý tưởng chính của chiến lược là: Đầu tiên tính giá trị RSI, sau đó xây dựng chỉ số Stochastic RSI dựa trên RSI, tức là giá trị K và giá trị D. Khi giá trị K vượt qua giá trị D, nó tạo ra tín hiệu mua, và khi giá trị K vượt qua giá trị D, nó tạo ra tín hiệu bán. Để lọc tín hiệu giả, chiến lược cũng giới thiệu chỉ số tỷ lệ biến đổi (RVI) và đường trung bình di chuyển phẳng của nó để xác nhận.

2 - Chiến lược chi tiết

  1. Giá trị RSI của độ dài 14

  2. Dựa trên RSI xây dựng chiều dài 14 của chỉ số Stochastic RSI, nhận được giá trị K và giá trị D ((D là trung bình di chuyển 3 giai đoạn của K)).

  3. RVI có độ dài 5 và đường tín hiệu của nó ((tức là đường trung bình di chuyển trơn của RVI))

  4. Khi K trên đi qua D, nếu RVI > đường tín hiệu và một chu kỳ RVI < đường tín hiệu, sẽ tạo ra tín hiệu mua; khi K dưới đi qua D, nếu RVI < đường tín hiệu và một chu kỳ RVI > đường tín hiệu, sẽ tạo ra tín hiệu bán.

  5. Theo các tín hiệu được tạo ra, mua hoặc bán các hoạt động mở kho.

Ba, phân tích lợi thế chiến lược.

  1. Kết hợp với Stochastic RSI và RVI xác nhận kép, có thể lọc hiệu quả các tín hiệu giả.

  2. Chỉ số RVI có thể phản ánh tình trạng quá mua và quá bán trong thời gian ngắn, tránh đặt vị trí ở các điểm cực.

  3. Stochastic RSI có thể xác định các khu vực quá mua quá bán, sử dụng hình dáng giao thoa vàng của KDJ để đánh giá điểm mua và bán.

  4. Kết quả phản hồi cho thấy chiến lược này đã có hiệu quả tốt trên một số cặp giao dịch tiền kỹ thuật số (như FCT/BTC).

Đánh giá rủi ro chiến lược

  1. Một chiến lược tương tự để theo dõi các điểm dừng lỗ, đặt điểm dừng lỗ không phù hợp có thể bị giam giữ.

  2. Tỷ lệ phát tín hiệu có thể quá cao, chi phí giao dịch là một yếu tố cần xem xét.

  3. Chỉ số KDJ và chỉ số RVI có thể tạo ra tín hiệu giả, dẫn đến tổn thất không cần thiết.

  4. Các tham số chiến lược cần được tối ưu hóa cho các cặp giao dịch khác nhau.

V. Chiến lược tối ưu hóa

  1. Thêm Stop Loss di động để khóa lợi nhuận, bạn có thể tham khảo ATR để thiết lập Stop Loss.

  2. Tối ưu hóa các tham số RVI và Stochastic RSI để có tín hiệu rõ ràng hơn.

  3. Tăng cường kiểm soát khối lượng giao dịch, tránh quá nhiều đơn đặt hàng.

  4. Thêm cơ chế lọc để tránh mở vị trí cao. Có thể giới thiệu chỉ số biến động để xác định xem hiện tại có ở trạng thái chấn động hay không.

  5. Kiểm tra các cặp tiền kỹ thuật số khác nhau để tìm ra loại phù hợp nhất.

6. Ghi lại chiến lược

Chiến lược này đầu tiên sử dụng chỉ số RSI để xây dựng Stochastic RSI, sau đó kết hợp với chỉ số RVI để xác nhận tín hiệu, để phát hiện hiện tượng mua quá mức bán quá mức trong thời gian ngắn, do đó mở vị trí tại điểm đảo ngược. Ưu điểm là xác nhận kép có thể lọc các tín hiệu giả, nhược điểm là có thể có rủi ro về tham số phù hợp. Nói chung, chiến lược này đã có hiệu quả tốt trên một số cặp giao dịch và có thể thu được lợi nhuận ổn định hơn bằng cách tối ưu hóa hơn nữa.

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

//@version=4
strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true)
Per = input(5, title="Length", minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
D = sma(K, smoothD)


rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per)
sig = swma(rvi)
//plot(rvi, color=green, title="RVI")
//plot(sig, color=red, title="Signal")

//plot(K,  title="K")
//plot(D,  title="D")
Dn = K <= D  and K > 70 and rvi <= sig  and rvi[1] >= sig[1]
Up= K >= D  and K < 30 and rvi >= sig  and rvi[1] <= sig[1]
ARROW =  Up - Dn
plotarrow(ARROW, title="Down Arrow",  colordown=red, transp=0, maxheight=10, minheight=10)
plotarrow(ARROW, title="Up Arrow", colorup=lime,  transp=0, maxheight=10, minheight=10)
long = crossover(Up, Dn)
short = crossunder(Up, Dn)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

//plot(long_signal, "BUY", color=green)
//plot(short_signal, "SELL", color=red)
strategy.entry("BUY", strategy.long, when=long_signal)
strategy.entry("SELL", strategy.short, when=short_signal)