Chiến lược xu hướng RSI hai hướng cực đoan
Chiến lược này sử dụng chỉ số RSI để xác định xu hướng giá nhanh chóng. Nó có cả khả năng dài và ngắn để nắm bắt mức giá ngắn hạn nhanh hơn.
Chiến lược này sử dụng một chỉ số RSI được cải tiến để đánh giá tình trạng mua quá nhiều và bán quá nhiều của giá, kết hợp với lọc thân nến để giảm tiếng ồn. Nó đi dài hoặc ngắn khi RSI nằm trong vùng mua quá nhiều hoặc bán quá nhiều và kích thước thân nến lớn hơn 1/3 kích thước thân trung bình. Nó đóng các vị trí khi nến đảo ngược hướng và RSI kéo trở lại mức an toàn hơn sau khi các tín hiệu giao dịch được kích hoạt.
Chiến lược này phản ứng nhanh chóng và có thể nắm bắt các xu hướng ngắn hạn nhanh hơn. Trong khi đó, lọc cơ thể giúp giảm tiếng ồn và tránh bị đánh lừa bởi các đột phá sai. Nó phù hợp với các sản phẩm biến động cao và có thể đạt được lợi nhuận cao hơn.
Chiến lược này khá nhạy cảm với sự thay đổi giá cả, dễ bị đánh lạc hướng bởi các tín hiệu sai trên thị trường. Ngoài ra, dừng lỗ có thể được kích hoạt thường xuyên trong thị trường biến động cao. Chúng ta có thể nới lỏng phạm vi dừng lỗ và tối ưu hóa các thông số RSI để giảm xác suất tín hiệu sai.
Chúng ta có thể kiểm tra các thông số định kỳ khác nhau của các chỉ số để tối ưu hóa chiến lược và tìm ra sự kết hợp thông số tốt nhất. Ngoài ra, kết hợp các chỉ số khác như các quy tắc giao dịch rùa có thể giúp lọc tín hiệu hơn nữa. Đào tạo ngưỡng RSI tốt hơn thông qua các phương pháp học máy cũng có thể là một nỗ lực đáng giá.
Nhìn chung, đây là một chiến lược ngắn hạn hiệu quả và đáp ứng. Với một số thông số và tối ưu hóa mô hình, nó có tiềm năng để tăng thêm sự ổn định và lợi nhuận. Nó xứng đáng với nghiên cứu và theo dõi tiếp tục của các nhà giao dịch lượng.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's Fast RSI Strategy v1.1", shorttitle = "Fast RSI str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period") limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit") rsisrc = input(close, defval = close, title = "RSI Source") 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(rsisrc), 0), rsiperiod) fastdown = rma(-min(change(rsisrc), 0), rsiperiod) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) uplimit = 100 - limit dnlimit = limit //Body body = abs(close - open) emabody = ema(body, 30) / 3 //Signals bar = close > open ? 1 : close < open ? -1 : 0 up = bar == -1 and fastrsi < dnlimit and body > emabody dn = bar == 1 and fastrsi > uplimit and body > emabody exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))) if time > timestamp(toyear, tomonth, today, 00, 00) or exit strategy.close_all()