Chiến lược phá vỡ phạm vi RSI

Tác giả:ChaoZhang, Ngày: 2023-10-11 15:54:11
Tags:

Tổng quan

Chiến lược phá vỡ phạm vi RSI là một chiến lược theo xu hướng điển hình. Nó sử dụng Chỉ số Sức mạnh Tương đối (RSI) làm chỉ số kỹ thuật chính để tìm kiếm các cơ hội phá vỡ khi RSI ở mức mua quá mức hoặc bán quá mức, với mục tiêu theo xu hướng.

Chiến lược logic

Chiến lược này chủ yếu dựa trên chỉ số RSI để xác định mức mua quá mức và bán quá mức trên thị trường. Công thức tính toán RSI là: RSI = (Giá trị tăng trung bình / (Giá trị tăng trung bình + Giá trị giảm trung bình)) x 100. Giá trị tăng trung bình là trung bình di chuyển đơn giản của các kích thước cận cảnh trong N ngày qua. Giá trị giảm trung bình là trung bình di chuyển đơn giản của các kích thước cận cảnh trong N ngày qua.

Khi chỉ số RSI cao hơn đường mua quá mức (thất định 80), nó chỉ ra thị trường đang ở trạng thái mua quá mức. Khi chỉ số RSI thấp hơn vùng bán quá mức (thất định 35), nó chỉ ra thị trường đang ở trạng thái bán quá mức. Chiến lược tìm kiếm các cơ hội ngắn khi chỉ số RSI phá vỡ đường mua quá mức và các cơ hội dài khi chỉ số RSI phá vỡ vùng bán quá mức.

Cụ thể, chiến lược sử dụng hai đường SMA để xác định xu hướng của chỉ số RSI. Khi đường SMA nhanh hơn phá vỡ đường SMA chậm hơn, trong khi RSI phá vỡ vùng bán quá mức, đi dài. Khi đường SMA nhanh hơn phá vỡ đường SMA chậm hơn, trong khi RSI phá vỡ đường mua quá mức, đi ngắn. Chiến lược cũng thiết lập dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro.

Ưu điểm

  • Sử dụng chỉ số RSI để xác định mức mua quá mức và bán quá mức, với khả năng đánh giá xu hướng nhất định
  • Kết hợp với đường SMA kép để tránh đột phá sai do dao động RSI
  • Thiết lập dừng lỗ và lấy lợi nhuận để kiểm soát lỗ duy nhất
  • Bị đột nhập, không mở và đóng thường xuyên

Rủi ro và giải pháp

  • Chỉ số RSI có hiệu ứng chậm, có thể bỏ lỡ các điểm đảo ngược xu hướng
    • Điều chỉnh các thông số RSI phù hợp để tối ưu hóa độ nhạy của chỉ báo
  • Thiết lập khu vực mua quá mức và bán quá mức không phù hợp, tăng khó khăn trong phạm vi lợi nhuận
    • Điều chỉnh các thông số theo thị trường khác nhau để đảm bảo cài đặt hợp lý
  • Điểm dừng lỗ quá gần, dễ bị dừng bởi biến động qua đêm
    • Mở rộng khoảng cách dừng mất mát thích hợp để tránh bị mắc kẹt
  • Lấy lợi nhuận thiết lập quá nhỏ, không thể hoàn toàn nắm bắt xu hướng chạy
    • Điều chỉnh dòng lợi nhuận linh hoạt dựa trên biến động thị trường

Hướng dẫn tối ưu hóa

  • Kết hợp với các chỉ số khác để xác định thời gian nhập cảnh, chẳng hạn như KDJ, MACD, v.v., để tránh các vấn đề chậm RSI
  • Thêm phán đoán về xu hướng chính để tránh giao dịch chống lại xu hướng
  • Tối ưu hóa chiến lược dừng lỗ và lấy lợi nhuận, chẳng hạn như dừng lại, di chuyển lấy lợi nhuận, vv
  • Phân biệt các thiết lập tham số cho các sản phẩm khác nhau, xác định các tham số hợp lý dựa trên đặc điểm thị trường
  • Thêm chiến lược quản lý vị trí, điều chỉnh vị trí thông qua thêm lệnh

Tóm lại

Chiến lược đột phá phạm vi RSI là một chiến lược theo xu hướng điển hình nói chung. Nó xác định các tín hiệu giao dịch thông qua chỉ số RSI, lọc các tín hiệu với đường SMA kép và thiết lập dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro. Nhưng chỉ số RSI có các vấn đề chậm trễ và cài đặt tham số không đúng cũng ảnh hưởng đến hiệu suất chiến lược. Khả năng theo xu hướng có thể được thực hiện đầy đủ thông qua tối ưu hóa hơn nữa.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//strategy("Strategy RSI | Fadior", shorttitle="Strategy RSI", pyramiding=10, calc_on_order_fills=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false)
 
len = input(3, minval=1, title="RSI Length") 
threshLow = input(title="Treshold Low", defval=35)
threshHigh = input(title="Treshold High", defval=80)
rsiLength1 = input(title="RSI Smoothing 1", defval=3)
rsiLength2 = input(title="RSI Smoothing 2", defval=5)
SL = input(title="Stop loss %", type=float, defval=.026, step=.001)
TP = input( defval=300)

// 3 40 70 2
// 14 40 70 2 16 0.05 50

src = close
  
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

plot(sma(rsi,rsiLength2), color=orange)
plot(sma(rsi,rsiLength1), color=green)

band1 = hline(threshHigh)
band0 = hline(threshLow)
fill(band1, band0, color=purple, transp=90)

strategy = input(type=bool, title="Long only ?", defval=true)
strategy.risk.allow_entry_in(strategy ? strategy.direction.long : strategy.direction.all)

longCondition = sma(rsi,rsiLength1) < threshLow and sma(rsi,rsiLength2) > sma(rsi,rsiLength2)[1] 

if (longCondition)
    strategy.entry("Long", strategy.long) //, qty=10)
    strategy.exit("Close Long", "Long", stop=src-close*SL, profit=TP)
    
shortCondition = sma(rsi,rsiLength1) > threshHigh and sma(rsi,rsiLength2) < sma(rsi,rsiLength2)[1]
if (shortCondition)
    strategy.entry("Short", strategy.short) //, qty=10)
    strategy.exit("Close Short", "Short") //, stop=src-close*SL, profit=TP)


Thêm nữa