
Chiến lược này được gọi là RSI Reversal, nó là một chiến lược giao dịch định lượng dựa trên chỉ số cường độ tương đối (RSI). Chiến lược này sử dụng hai chu kỳ RSI khác nhau làm tín hiệu mua và bán, để thực hiện mua thấp và bán cao, để có được cơ hội giao dịch do giá cổ phiếu đảo ngược.
Chiến lược này sử dụng RSI chu kỳ nhanh (trong trường hợp 55 ngày) và RSI chu kỳ chậm (trong trường hợp 126 ngày) để xây dựng tín hiệu giao dịch. Nó tạo ra tín hiệu mua khi RSI chu kỳ nhanh vượt qua RSI chu kỳ chậm và ngược lại khi RSI chu kỳ nhanh vượt qua RSI chu kỳ chậm. Bằng cách so sánh sự tương đối mạnh mẽ của động lực giá trong hai khoảng thời gian khác nhau, nó tìm thấy cơ hội đảo ngược xu hướng ngắn hạn và dài hạn.
Sau khi vào tín hiệu, chiến lược sẽ thiết lập điểm dừng dừng lỗ. Địa điểm dừng lỗ mặc định là 0.9 lần giá vào, điểm dừng lỗ mặc định là 3% giá vào. Đồng thời, khi tín hiệu đảo ngược xuất hiện trở lại, vị trí hiện tại cũng sẽ được xóa.
Chiến lược này sử dụng RSI hai trục thời gian để đảo ngược bằng cách so sánh hai RSI với một chu kỳ nhanh hơn và một chu kỳ chậm hơn như một tín hiệu giao dịch, nhằm mục đích nắm bắt cơ hội biến đổi giá trong thời gian ngắn. Trong khi đó, thiết lập quy tắc dừng lỗ để tránh rủi ro. Đây là một chiến lược điển hình để thực hiện giao dịch biến đổi giá bằng cách so sánh nhiều trục thời gian của chỉ số.
/*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")