Đây là một chiến lược giao dịch xác định các thị trường dao động bằng cách sử dụng chỉ số RSI và nắm bắt các cơ hội đảo ngược xu hướng trong các dao động của thị trường. Chiến lược đánh giá liệu giá có bước vào vùng dao động bằng chỉ số RSI nhanh và xác định thời gian nhập cảnh kết hợp với các cơ thể nến và tín hiệu RSI nhanh.
Chiến lược chủ yếu hoạt động dựa trên các nguyên tắc sau:
Cụ thể, chiến lược sử dụng chỉ số RSI hai giai đoạn để đánh giá giá liệu giá có bước vào phạm vi dao động 30-70 được đặt trước hay không. Nó cũng yêu cầu thân nến vượt qua 1/4 hoặc 1/2 của MA trước khi tạo ra tín hiệu giao dịch. Bằng các kiểm tra có điều kiện kép như vậy, các tín hiệu sai có thể được lọc hiệu quả để đảm bảo chỉ vào thị trường khi dao động thực sự xảy ra.
Chiến lược cho thấy những lợi thế quan trọng như sau:
Ngoài ra còn có một số rủi ro cần lưu ý:
Để kiểm soát rủi ro, nên điều chỉnh các kết hợp tham số, xác minh giao dịch trực tiếp và cơ chế dừng lỗ.
Có chỗ cho việc tối ưu hóa thêm:
Bằng các kỹ thuật như tích hợp nhiều chỉ số, điều chỉnh tham số thích nghi và giao dịch algos, sự ổn định chiến lược và lợi nhuận có thể được nâng lên cấp độ tiếp theo.
Chiến lược giao dịch RSI dao động nhanh xác định dao động giá và xác định thời gian đầu vào thông qua RSI nhanh và cơ chế lọc kép. Đây là một chiến lược hiệu quả đáng nghiên cứu và áp dụng sâu sắc. Trong thực tế, rủi ro nên được theo dõi và tối ưu hóa đa chiều là cần thiết để nâng cao hiệu quả chiến lược.
/*backtest start: 2023-01-07 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's FRSI Strategy v1.22", shorttitle = "FRSI str 1.22", overlay = true ) //Settings uprsiperiod = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI UP Period") dnrsiperiod = input(9, defval = 9, minval = 2, maxval = 50, title = "RSI DN Period") limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit") rsisrc = input(close, defval = close, title = "RSI Price") rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars") sps = 0 fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2018, defval = 2018, 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(rsisrc), 0), uprsiperiod) fastdown = rma(-min(change(rsisrc), 0), dnrsiperiod) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Limits bar = close > open ? 1 : close < open ? -1 : 0 uplimit = 100 - limit dnlimit = limit //RSI Bars ur = fastrsi > uplimit dr = fastrsi < dnlimit uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0 dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0 //Body body = abs(close - open) emabody = ema(body, 30) //Signals up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4 dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4 exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2 //Trading if up strategy.entry("Long", strategy.long) sps := 1 if exit strategy.close_all() sps := 0