Chiến lược giao dịch định lượng dựa trên RSI

Tác giả:ChaoZhang, Ngày: 2023-12-06 17:17:16
Tags:

img

Tổng quan

Chiến lược này được đặt tên là Dual Timeframe RSI Reversal. Đây là một chiến lược giao dịch định lượng dựa trên Chỉ số sức mạnh tương đối (RSI). Chiến lược sử dụng hai chỉ số RSI với các khoảng thời gian khác nhau để tạo ra tín hiệu mua và bán, nhằm mục đích mua thấp và bán cao bằng cách nắm bắt các cơ hội đảo ngược giá.

Chiến lược logic

Chiến lược xây dựng tín hiệu giao dịch bằng cách so sánh RSI thời gian nhanh (thất định 55 ngày) và RSI thời gian chậm (thất định 126 ngày). Khi RSI thời gian nhanh vượt qua RSI chậm, một tín hiệu mua được tạo ra. Khi RSI nhanh giảm xuống dưới RSI chậm, một tín hiệu bán được kích hoạt. Bằng cách so sánh sức mạnh tương đối giữa hai khung thời gian khác nhau, nó phát hiện cơ hội khi xu hướng ngắn hạn và dài hạn đảo ngược.

Sau khi nhập vào một vị trí, mục tiêu lợi nhuận và dừng lỗ sẽ được thiết lập. Mục tiêu lợi nhuận mặc định là 0,9 lần giá nhập. Mức dừng lỗ mặc định là 3% dưới giá nhập. Các vị trí cũng sẽ được đóng nếu một tín hiệu ngược được kích hoạt.

Ưu điểm

  • Bắt được sự đảo ngược giá ngắn hạn bằng cách so sánh hai chỉ số RSI
  • Loại bỏ các tín hiệu sai bằng cách sử dụng xác nhận kép
  • Giới hạn thua lỗ trên đặt cược đơn với dừng thua lỗ

Rủi ro

  • Các tín hiệu ngược thường xuyên trong thời gian biến động cao
  • Dừng lỗ quá chặt chẽ, dễ dàng bị đánh bại bởi những biến động nhỏ
  • Không có sự đảo ngược lớn với các thông số cấu hình kém

Tăng cường

  • Kiểm tra nhiều kết hợp tham số RSI để tìm tối ưu
  • Thêm các chỉ số khác để lọc tín hiệu sai
  • Tỷ lệ dừng lỗ và lấy lợi nhuận năng động để có lợi nhuận tốt hơn

Tóm lại

Chiến lược đảo ngược RSI khung thời gian kép tạo ra các tín hiệu giao dịch bằng cách so sánh chéo giữa các giai đoạn RSI nhanh và chậm. Nó nhằm mục đích nắm bắt sự đảo ngược giá ngắn hạn. Các quy tắc lợi nhuận và dừng lỗ được thiết lập để hạn chế rủi ro. Đây là một chiến lược điển hình sử dụng so sánh chỉ số nhiều khung thời gian để đảo ngược giao dịch. Các lĩnh vực nâng cao bao gồm điều chỉnh tham số và các quy tắc kiểm soát rủi ro.


/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Relative Strength Index", shorttitle="RSI")
slen    = input(55, title="Short length")
llen    = input(126, title="Long length")
sup     = ema(max(change(close), 0), slen)
sdown   = ema(-min(change(close), 0), slen)
rsi1    = sdown == 0 ? 100 : sup == 0 ? 0 : 100 - (100 / (1 + sup / sdown))
lup     = ema(max(change(close), 0), llen)
ldown   = ema(-min(change(close), 0), llen)
rsi2    = ldown == 0 ? 100 : lup == 0 ? 0 : 100 - (100 / (1 + lup / ldown))
ob      = input(55, title="Overbought")
os      = input(45, title="Oversold")
tp      = input(.9, title="Take profit level %")*.01
sl      = input(3, title="Stoploss level %")*.01
mid     = avg(ob,os)
plot    (mid, color=#4f4f4f, transp=0)
hline   (ob, color=#4f4f4f)
hline   (os, color=#4f4f4f)
long    = crossover(rsi1,rsi2)
short   = crossunder(rsi1,rsi2)
vall    = valuewhen(long,close,0)
lexit1  = high>=(vall*tp)+vall
lexit2  = low<=vall-(vall*sl)
vals    = valuewhen(short,close,0)
sexit1  = low<=vals - (vals*tp)
sexit2  = high>=vals + (vals*sl)
bgcolor (color=long?lime:na,transp=50)
bgcolor (color=short?red:na, transp=50)
strategy.entry("Long", strategy.long, when=long)
strategy.close("Long", when=lexit1)
strategy.close("Long", when=lexit2)
strategy.close("Long", when=short)
strategy.entry("Short", strategy.short, when=short)
strategy.close("Short", when=sexit1)
strategy.close("Short", when=sexit2)
strategy.close("Short", when=long)
plot    (rsi1, color=orange, transp=0,linewidth=1, title="Short period RSI")
plot    (rsi2, color=aqua  , transp=0,linewidth=1, title="Long period RSI")


Thêm nữa