Chiến lược đảo ngược xu hướng RSI


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

Chiến lược đảo ngược xu hướng RSI

Tổng quan

Chiến lược đảo ngược xu hướng RSI sử dụng tín hiệu đảo ngược của chỉ số RSI để xác định điểm đảo ngược xu hướng tiềm năng, và tham gia vào nhiều thời gian. Chiến lược này kết hợp với sự đảo ngược giá và đảo ngược RSI, có thể lọc hiệu quả các tín hiệu đảo ngược giả.

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

Chiến lược này dựa trên sự kết hợp của tín hiệu đảo ngược của chỉ số RSI và tín hiệu đảo ngược của giá, chủ yếu phân chia thành bốn tình huống:

  1. Chuyển đổi đa đầu thông thường: Khi RSI hình thành điểm thấp cao hơn (có nghĩa là xu hướng RSI đảo ngược từ trên xuống) và khi giá hình thành điểm thấp hơn (có nghĩa là xu hướng giá đảo ngược từ dưới lên), tạo ra tín hiệu đảo ngược đa đầu thông thường.

  2. Biến đổi đa đầu ẩn: Khi RSI hình thành điểm thấp thấp hơn (có nghĩa là xu hướng RSI tiếp tục từ trên xuống) nhưng giá hình thành điểm thấp cao hơn (có nghĩa là xu hướng giá đảo ngược từ dưới lên), tạo ra tín hiệu đảo ngược đa đầu ẩn.

  3. Chuyển ngược đầu thường xuyên: Khi RSI hình thành điểm cao thấp hơn (có nghĩa là xu hướng RSI đảo ngược từ dưới lên) và giá hình thành điểm cao hơn (có nghĩa là xu hướng giá đảo ngược từ lên xuống), tạo ra tín hiệu đảo ngược đầu thường xuyên.

  4. Chuyển ngược trục ẩn: Khi RSI hình thành điểm cao cao hơn ((có nghĩa là xu hướng RSI tiếp tục từ dưới lên), nhưng giá hình thành điểm cao thấp hơn ((có nghĩa là xu hướng giá đảo ngược từ lên xuống), tạo ra tín hiệu đảo ngược trục ẩn.

Điều này có thể kết hợp với sự đảo ngược của chỉ số RSI và sự đảo ngược của giá để phát tín hiệu giao dịch đồng thời, có thể tránh hiệu quả các tín hiệu sai do chỉ số RSI hoặc chỉ bởi sự đảo ngược của giá, tăng cường sự ổn định của chiến lược.

Phân tích lợi thế

Chiến lược đảo ngược xu hướng RSI có những lợi thế sau:

  1. Kết hợp với chỉ số RSI và tín hiệu đảo ngược giá, có thể lọc hiệu quả các tín hiệu đảo ngược giả và cải thiện chất lượng tín hiệu. Chỉ số RSI một mình không hoàn toàn có thể xác định điểm đảo ngược một cách đáng tin cậy, cần được xác minh cùng với hành động đảo ngược giá.

  2. Nhận biết các hình dạng ẩn nhiều đầu và hình dạng ẩn đầu không, những hình dạng ẩn này thường báo hiệu xu hướng giá mạnh hơn sắp tới, có thể bắt kịp cơ hội xu hướng trước.

  3. Các tham số RSI và chu kỳ xem lại có thể được tùy chỉnh, có thể điều chỉnh cho các thị trường khác nhau, linh hoạt và thực tế.

  4. Hình dung hình dạng và tín hiệu của các chỉ số, trực quan đánh giá tình trạng thị trường.

  5. Chiến lược logic ngắn gọn và rõ ràng, dễ hiểu thực hiện, phù hợp với chiến lược giao dịch định lượng.

Phân tích rủi ro

RSI cũng có những rủi ro sau:

  1. RSI đảo ngược kết hợp với giá đảo ngược, có thể lọc ra nhiều tín hiệu sai, nhưng không loại trừ khả năng vẫn có thể bị đánh giá sai. Chỉ số này là thước đo thống kê về giá cả, không thể hoàn toàn phụ thuộc.

  2. Các hình dạng ẩn nhiều đầu và ẩn đầu trống không dễ dàng nhận ra, có thể bỏ lỡ những cơ hội này, cần một số phán đoán kinh nghiệm.

  3. Cài đặt tham số chu kỳ xem lại không đúng có thể dẫn đến việc bỏ lỡ thời điểm đảo ngược hoặc trì hoãn phán đoán. Các thị trường khác nhau cần điều chỉnh tham số chu kỳ.

  4. Cần đảm bảo rằng các chiến lược dừng lỗ được sử dụng để tránh sự gia tăng tổn thất do tiếp tục giảm sau khi đảo ngược.

Có thể kiểm soát rủi ro bằng cách tối ưu hóa các tham số, dừng lỗ nghiêm ngặt, nắm bắt đúng cách các phương pháp như đảo ngược ẩn.

Hướng tối ưu hóa

Chiến lược đảo ngược xu hướng RSI có thể được tối ưu hóa từ:

  1. Điều chỉnh các tham số RSI để kiểm tra sự nhạy cảm của các thị trường khác nhau đối với các tham số chu kỳ RSI và tìm các tham số tối ưu.

  2. Tối ưu hóa tham số chu kỳ xem lại, cân bằng nhu cầu thu được thời điểm quay ngược và ngăn chặn tín hiệu giả.

  3. Tăng phân tích thống kê về khối lượng giao dịch, ví dụ như khối lượng giao dịch bị đảo ngược do giảm giá lớn.

  4. Kết hợp với các tín hiệu chỉ số khác, chẳng hạn như MACD, băng tần Brin, để tăng độ chính xác phán đoán.

  5. Tăng chiến lược dừng lỗ để tránh sự gia tăng lỗ. Bạn có thể đặt lệnh dừng lỗ sau khi giá phá vỡ mức cao mới / mức thấp mới.

  6. Điều chỉnh chiến lược logic dựa trên kết quả đánh giá, nâng cao yếu tố lợi nhuận. Ví dụ: điều chỉnh mối quan hệ logic của điều kiện mở vị trí ((với, hoặc, hoặc không), tìm kiếm chiến lược giao dịch tốt nhất.

Tóm tắt

Chiến lược đảo ngược xu hướng RSI sử dụng kết hợp các chỉ số đảo ngược RSI và biến đổi giá để xác định điểm biến đổi xu hướng tiềm năng. Nó sử dụng hiệu quả khả năng phán đoán xu hướng của RSI, đồng thời kết hợp với các tín hiệu lọc giả của giá.

Mã nguồn chiến lược
/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study(title="Divergence Indicator", format=format.price)
strategy(title="RSI Divergence Indicator", overlay=false,pyramiding=1, default_qty_value=2,   default_qty_type=strategy.fixed, initial_capital=10000, currency=currency.USD)

len = input(title="RSI Period", minval=1, defval=5)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=5)
lbL = input(title="Pivot Lookback Left", defval=5)
rangeUpper = input(title="Max of Lookback Range", defval=60)
rangeLower = input(title="Min of Lookback Range", defval=5)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)

bearColor = color.purple
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)

osc = rsi(src, len)

plot(osc, title="RSI", linewidth=2, color=#8D1699)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)

plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true

_inRange(cond) =>
    bars = barssince(cond == true)
    rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish

// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)

bullCond = plotBull and priceLL and oscHL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish",
	 linewidth=2,
	 color=(bullCond ? bullColor : noneColor),
	 transp=0
	 )


plotshape(
	 bullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish Label",
	 text=" Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bullish

// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)

hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish",
	 linewidth=2,
	 color=(hiddenBullCond ? hiddenBullColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish Label",
	 text=" H Bull ",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

longCondition=bullCond or hiddenBullCond
//? osc[lbR] : na  
//hiddenBullCond
strategy.entry(id="RSIDivLE", long=true,  when=longCondition)


//------------------------------------------------------------------------------
// Regular Bearish

// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)

bearCond = plotBear and priceHH and oscLH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish",
	 linewidth=2,
	 color=(bearCond ? bearColor : noneColor),
	 transp=0
	 )

plotshape(
	 bearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish Label",
	 text=" Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bearish

// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish",
	 linewidth=2,
	 color=(hiddenBearCond ? hiddenBearColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish Label",
	 text=" H Bear ",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )
longCloseCondition=crossover(osc,75) or bearCond
strategy.close(id="RSIDivLE",  when=longCloseCondition)