
Chiến lược phá vỡ RSI kép là một chiến lược giao dịch định lượng sử dụng cả RSI nhanh và RSI chậm để tạo ra tín hiệu giao dịch. Chiến lược này tạo ra tín hiệu giao dịch bằng cách phá vỡ giữa hai chỉ số RSI nhanh và chậm để theo dõi xu hướng thị trường.
Chiến lược này sử dụng hai chỉ số RSI cùng một lúc, một chỉ số RSI nhanh có chu kỳ 2 và một chỉ số RSI chậm có chu kỳ 14.
Khi RSI chậm lớn hơn 50, RSI nhanh nhỏ hơn 50, tạo ra tín hiệu giao dịch; khi RSI chậm nhỏ hơn 50, RSI nhanh lớn hơn 50, tạo ra tín hiệu giao dịch. Sau khi giao dịch, nếu có tín hiệu dừng lỗ ((đột K màu đỏ xuất hiện khi mất nhiều đơn vị, và cột K màu xanh lá cây khi mất đơn vị), thì dừng lỗ).
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược phá vỡ RSI kép sử dụng chỉ số RSI chậm và nhanh để theo dõi xu hướng thị trường, tạo ra tín hiệu giao dịch trong khu vực mua quá mức, có thể tránh theo đuổi đà tăng và giảm. Đồng thời, thiết lập cơ chế dừng lỗ để kiểm soát rủi ro. Chiến lược này hoạt động đơn giản, dễ thực hiện, phù hợp với giao dịch định lượng.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Double RSI Strategy 1.0", shorttitle = "2RSI str 1.0", overlay=true )
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
fast = input(2, defval = 2, minval = 2, maxval = 100, title = "Fast RSI Period")
slow = input(14, defval = 14, minval = 2, maxval = 100, title = "Slow RSI Period")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Fast RSI
fastup = rma(max(change(close), 0), fast)
fastdown = rma(-min(change(close), 0), fast)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//Slow RSI
slowup = rma(max(change(close), 0), slow)
slowdown = rma(-min(change(close), 0), slow)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))
//Signals
up = slowrsi > 50 and fastrsi < 50
dn = slowrsi < 50 and fastrsi > 50
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)
lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1]
//Trading
if up
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot )
if dn
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot )
if exit
strategy.close_all()