Chỉ số sức mạnh tương đối và chiến lược chéo trung bình động

Tác giả:ChaoZhang, Ngày: 2023-12-21 11:30:27
Tags:

img

Tổng quan

Chỉ số sức mạnh tương đối (RSI) và chiến lược chéo trung bình di chuyển kết hợp chỉ số RSI và trung bình di chuyển để đưa ra các quyết định giao dịch định lượng. Nó sử dụng mức mua quá mức và bán quá mức được chỉ ra bởi RSI để xác định các bước vào và ra, cùng với các tín hiệu chéo vàng và chéo chết được tạo ra khi RSI vượt qua đường trung bình di chuyển của nó.

Chiến lược logic

  1. Tính toán giá trị chỉ số RSI. RSI đo mức độ thay đổi giá gần đây để đánh giá liệu một tài sản có bị mua quá mức hoặc bán quá mức không.

  2. Tính toán đường trung bình động (MA) của chỉ số RSI, sử dụng đường trung bình động nhân tố (EMA) hoặc đường trung bình động đơn giản (SMA).

  3. Khi RSI vượt qua trên đường MA, một tín hiệu mua chéo vàng được tạo ra. Khi RSI vượt qua dưới đường MA, một tín hiệu bán chéo chết được kích hoạt.

  4. Khi chỉ số RSI tăng trên ngưỡng mua quá mức, tài sản được coi là đã mua quá mức và một vị trí ngắn có thể được bắt đầu. Khi chỉ số RSI giảm xuống dưới ngưỡng bán quá mức, tài sản được coi là đã bán quá mức và một vị trí dài có thể được mở.

Phân tích lợi thế

  1. Kết hợp các tín hiệu chéo giữa các chỉ báo với các mức mua quá mức / bán quá mức RSI cải thiện độ chính xác của các quyết định giao dịch.

  2. Các ngưỡng mua quá mức và bán quá mức RSI xác định các bước vào và thoát tối ưu.

  3. Khám phá sự đảo ngược xu hướng bằng cách hoạt động trên các tín hiệu chéo giữa các chỉ báo.

Phân tích rủi ro

  1. RSI có thể tạo ra các tín hiệu không chính xác trong các thị trường hỗn loạn hoặc bên.

  2. Các thiết lập ngưỡng mua quá nhiều hoặc bán quá nhiều không đúng có thể dẫn đến các tín hiệu quá lỏng lẻo hoặc quá nghiêm ngặt.

  3. Mức trung bình động nhạy cảm với các bất thường ngắn hạn và sự biến động tăng, làm tăng khả năng bị dừng sớm.

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

  1. Tối ưu hóa thông số RSI bằng cách thử nghiệm các khoảng thời gian dài khác nhau.

  2. Tìm các khoảng thời gian trung bình động tối ưu bằng cách đánh giá các chiều dài MA khác nhau.

  3. Kiểm tra các mức ngưỡng mua quá mức và bán quá mức để tinh chỉnh các tín hiệu nhập cảnh.

  4. Tích hợp các bộ lọc bổ sung để xác nhận tín hiệu và tránh giao dịch sai.

Kết luận

Chiến lược chéo RSI và Moving Average kết hợp các mức mua/bán quá mức RSI với các tín hiệu chéo MA để xác định các điểm chuyển đổi thị trường và nắm bắt sự đảo ngược. Hiệu suất và quản lý rủi ro có thể được tăng cường thông qua tối ưu hóa tham số và lọc tín hiệu. Chiến lược giao dịch trung hạn này cung cấp tiềm năng tạo alpha mạnh mẽ cho các nhà đầu tư có kinh nghiệm.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//dfurrer45
strategy(title="Relative Strength Index", shorttitle="RSI", overlay=true)
src = close, len = input(13, minval=1, title="Length"), maLen = input(9, minval=1, title="MA Lenght"), exponential = input(false, title="Exponential")

// === BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1)
FromDay   = input(defval = 3, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)
// ===  BACKTEST END  ===
backtestdaterange = (time > timestamp(FromYear, FromMonth, FromDay, 00, 00))

rsioverbought = input(90, minval=1, title="RSI % start overbought")
rsioversold = input(10, minval=1, title="RSI % start oversold")
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))
ma = exponential ? ema(rsi, maLen) : sma(rsi, maLen)
rsimacrossup = cross(rsi,ma) and rsi > ma
rsimacrossdown = cross(rsi,ma) and rsi < ma
plotchar(rsimacrossup, char='⇧', location = location.belowbar, color = green, text = "", textcolor = green, size=size.small)
plotchar(rsimacrossdown, char='⇩', location = location.abovebar, color = red, text = "", textcolor = red, size=size.small)
plotchar(rsi > rsioverbought, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
plotchar(rsi < rsioversold, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)


closetrade = rsimacrossup or rsimacrossdown
strategy.close_all(closetrade)
strategy.close_all((rsi > rsioverbought) or (rsi < rsioversold))
strategy.entry("Short Overbought",strategy.short, when=(rsi > rsioverbought) and backtestdaterange)
strategy.entry("Buy Overbought",strategy.long, when=(rsi < rsioversold) and backtestdaterange)
strategy.entry("Long Cross", strategy.long, when=rsimacrossup and backtestdaterange)
strategy.entry("Short Cross", strategy.short, when=rsimacrossdown and backtestdaterange)


Thêm nữa