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


Ngày tạo: 2023-10-11 15:54:11 sửa đổi lần cuối: 2023-10-11 15:54:11
sao chép: 0 Số nhấp chuột: 713
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược phá vỡ phạm vi RSI là một chiến lược theo dõi xu hướng điển hình. Nó sử dụng chỉ số tương đối mạnh (RSI) làm chỉ số kỹ thuật chính, tìm kiếm cơ hội phá vỡ phạm vi để tạo vị trí khi RSI đang quá mua hoặc quá bán, nhằm mục đích theo dõi xu hướng.

Nguyên tắc chiến lược

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

Khi RSI lớn hơn so với đường mua quá mức được thiết lập (đặc biệt là 80), thị trường đang ở trạng thái mua quá mức; khi RSI nhỏ hơn so với phạm vi bán quá mức được thiết lập (đặc biệt là 35), thị trường đang ở trong phạm vi bán quá mức. Chiến lược tìm kiếm cơ hội giảm giá khi RSI phá vỡ đường mua quá mức xuống; tìm kiếm cơ hội mua nhiều khi RSI phá vỡ phạm vi bán quá mức lên.

Cụ thể, chiến lược đánh giá xu hướng của chỉ số RSI thông qua hai đường SMA trung bình. Khi đường nhanh từ dưới lên phá vỡ đường chậm và RSI phá vỡ phạm vi bán tháo, hãy làm nhiều hơn; Khi đường nhanh từ trên xuống phá vỡ đường chậm và RSI phá vỡ đường mua quá, hãy làm hỏng.

Lợi thế chiến lược

  • Sử dụng chỉ số RSI để đánh giá thị trường quá mua quá bán, có khả năng đánh giá xu hướng nhất định
  • Kết hợp với đường trung bình SMA đôi, tránh phá vỡ giả do RSI dao động
  • Thiết lập Stop Loss Stop, kiểm soát mất mát đơn lẻ
  • Thâm nhập đột phá, không có quá nhiều mạo hiểm

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

  • Chỉ số RSI bị tụt hậu, có thể bỏ lỡ điểm đảo ngược xu hướng
    • Điều chỉnh các tham số RSI để tối ưu hóa độ nhạy của chỉ số
  • Mức độ quá mua quá bán không được thiết lập đúng, làm tăng khó khăn cho việc tạo ra lợi nhuận
    • Điều chỉnh các tham số cho các thị trường khác nhau, đảm bảo các tham số được đặt hợp lý
  • Điểm dừng quá gần, dễ bị rung động qua đêm
    • Giữ khoảng cách an toàn để tránh bị mắc kẹt
  • Cụm tròn quá nhỏ để nắm bắt được xu hướng hoạt động
    • Điều chỉnh dây dừng linh hoạt theo biến động của thị trường

Hướng 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 đề về sự trễ của chỉ số RSI
  • Tăng khả năng đánh giá các xu hướng lớn, tránh các hoạt động ngược
  • Tối ưu hóa các chiến lược dừng lỗ, chẳng hạn như theo dõi dừng lỗ theo giá, di chuyển dừng
  • Phân biệt các thiết lập tham số của các giống khác nhau, xác định các tham số hợp lý dựa trên đặc điểm thị trường
  • Tăng chiến lược quản lý vị trí, điều chỉnh vị trí bằng cách tăng vị trí

Tóm tắt

Chiến lược phá vỡ khoảng RSI nói chung là một chiến lược theo dõi xu hướng điển hình. Nó sử dụng chỉ số RSI để đánh giá điểm mua và bán, lọc tín hiệu đường trung bình hai SMA và thiết lập điểm dừng để kiểm soát rủi ro. Nhưng chỉ số RSI có vấn đề về độ trễ, ngoài ra, cài đặt tham số không đúng cũng có thể ảnh hưởng đến hiệu suất của chiến lược. Bằng cách tối ưu hóa hơn nữa, có thể tận dụng đầy đủ khả năng theo dõi xu hướng của chiến lược này.

Mã nguồn chiến lược
/*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)