Chiến lược giao dịch đảo ngược RSI

Tác giả:ChaoZhang, Ngày: 2023-11-14 16:49:02
Tags:

img

Tổng quan

Chiến lược giao dịch đảo ngược RSI là một chiến lược giao dịch định lượng xác định các điều kiện mua quá mức và bán quá mức bằng cách sử dụng chỉ số Chỉ số Sức mạnh Tương đối (RSI) và tham gia giao dịch dài hoặc ngắn tại các điểm đảo ngược.

Chiến lược logic

Chiến lược dựa trên logic cốt lõi sau:

  1. Chỉ số RSI có thể phản ánh liệu thị trường hiện tại có quá mua hay quá bán hay không. Chỉ số RSI đo đạc động lực tương đối của tăng so với giảm bằng cách tính tỷ lệ thay đổi trung bình lên so với thay đổi trung bình xuống trong một khoảng thời gian.

  2. Khi chỉ số RSI bước vào vùng mua quá mức (thường được coi là chỉ số RSI trên 70), nó chỉ ra đà tăng mạnh. Sẽ có nhiều nhà giao dịch giữ các vị trí tăng và không gian tiếp tục tăng là hạn chế. Giá có thể đảo ngược xuống để điều chỉnh tình trạng mua quá mức.

  3. Khi chỉ số RSI bước vào vùng bán quá mức (thường dưới 30), nó chỉ ra đà giảm mạnh. Sẽ có nhiều nhà giao dịch nắm giữ các vị trí giảm và không gian tiếp tục giảm là hạn chế. Giá có thể đảo ngược lên để điều chỉnh tình trạng bán quá mức.

  4. Do đó, chúng ta có thể đặt ngưỡng mua quá mức RSI ở 90 và ngưỡng bán quá mức ở 10. Đi ngắn khi RSI bước vào vùng mua quá mức và đi dài khi RSI bước vào vùng bán quá mức để nắm bắt sự đảo ngược.

Cụ thể, chiến lược logic là:

  1. Tính toán giá trị chỉ số RSI, sử dụng giá đóng như nguồn RSI, với thời gian 2 giai đoạn.

  2. Khi chỉ số RSI vượt trên 90, nó cho thấy bước vào vùng mua quá mức, đi ngắn.

  3. Đặt dừng lỗ cho mỗi giao dịch. dừng dài ở mức giá thấp nhất, dừng ngắn ở mức giá cao nhất.

  4. Nếu RSI tiếp tục vào mức mua quá mức / bán quá mức, hãy điều chỉnh trailing stop để cho nhiều không gian hơn.

  5. Hãy xem xét lợi nhuận khi chỉ số RSI quay trở lại vùng trung tính khoảng 50.

  6. Nếu không có sự đảo ngược sau 3 thanh, đóng giao dịch để tránh lỗ không giới hạn.

Ưu điểm

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

  1. Sử dụng chỉ số RSI để xác định các điều kiện mua quá mức / bán quá mức có thể nắm bắt hiệu quả các điểm đảo ngược thị trường.

  2. Chiến lược đảo ngược có lợi thế có hệ thống tiếp tục theo dõi xu hướng. Nó có thể đi ngắn trên mua quá mức và dài trên bán quá mức kịp thời để tránh bị mắc kẹt.

  3. Cơ chế dừng lỗ kiểm soát hiệu quả lỗ trên các giao dịch cá nhân. Ngay cả khi đảo ngược thất bại, lỗ được giữ trong phạm vi nhất định.

  4. Trailing stop có thể linh hoạt điều chỉnh khoảng cách dừng dựa trên sự chuyển động giá tiếp tục, cân bằng giữa việc giữ dừng hoạt động và nắm bắt sự khác biệt giá nhiều hơn.

  5. Việc buộc phải thoát ra sau khi các thanh cố định đảm bảo giao dịch mà không đảo ngược kịp thời sẽ không dẫn đến tổn thất không giới hạn.

  6. Các thông số RSI có thể điều chỉnh có thể điều chỉnh chiến lược cho các thị trường khác nhau.

Rủi ro

Chiến lược này cũng có những rủi ro sau:

  1. Là một chiến lược chỉ số kỹ thuật, hiệu suất đảo ngược RSI có thể có khuynh hướng phù hợp đường cong. Tỷ lệ thành công đảo ngược giao dịch thực có thể thấp hơn kết quả backtest.

  2. Mặc dù chỉ số RSI có thể xác định các điều kiện mua quá mức / bán quá mức, nhưng nó không thể dự đoán thời gian đảo ngược chính xác.

  3. Các mức RSI mua quá mức / bán quá mức có thể không được thiết lập hợp lý. Mức độ sai có thể dẫn đến việc bỏ lỡ đảo ngược hoặc bị dừng trước khi đảo ngược.

  4. Khả năng giá sẽ quay ngược lại trước khi đạt được lợi nhuận.

  5. Khoảng cách dừng mất mát được đặt quá chặt hoặc quá lỏng có thể làm cho dừng không hiệu quả.

  6. Các khoản hoa hồng giao dịch cũng có thể ảnh hưởng đến lợi nhuận chiến lược.

Những cải tiến

Chiến lược có thể được cải thiện theo những cách sau:

  1. Kiểm tra các thông số RSI khác nhau để tìm kết hợp tối ưu, chẳng hạn như chiều dài RSI, mức ngưỡng mua quá mức / bán quá mức.

  2. Thêm nhiều bộ lọc để tránh các tín hiệu đảo ngược sai, chẳng hạn như kết hợp với MACD vv để tăng xác suất.

  3. Tối ưu hóa chiến lược dừng lỗ, ví dụ như dừng dựa trên ATR, khoảng cách điều chỉnh biến động.

  4. Tối ưu hóa chiến lược lấy lợi nhuận, chẳng hạn như di chuyển lấy lợi nhuận, theo dõi sự khác biệt giá nhiều hơn.

  5. Thêm các mô hình học máy để hỗ trợ đánh giá sự đảo ngược và cải thiện tỷ lệ thành công.

  6. Kiểm tra chiến lược trên các thị trường và công cụ khác nhau để tìm các thông số tốt nhất cho giao dịch thực tế.

  7. Kết hợp với khối lượng giao dịch, chỉ xem xét tín hiệu đảo ngược khi khối lượng tăng.

Kết luận

Kết luận, chiến lược đảo ngược RSI tận dụng sức mạnh của RSI trong việc xác định các điều kiện thị trường mua quá mức và bán quá mức và giao dịch tại các điểm đảo ngược, cung cấp lợi nhuận có hệ thống tốt. Nhưng nó cũng có những rủi ro cần phải được giải quyết thông qua các thông số RSI và tối ưu hóa dừng / lấy lợi nhuận, và lọc với các chỉ số khác. Nếu thực hiện đúng cách, đảo ngược RSI có thể tạo thành một thành phần hiệu quả trong một hệ thống giao dịch định lượng.


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

//@version=4
// Copyright (c) 2021-present, RicMos
//study("RSI2 Sell Strategy, overlay=true)

//------------------------------------------USER VARIABLE DEFINITIONS --------------------------------------
var float lots = 0.1
//var float fixed_commission = 0.6 // forex pairs commission  value USD per position size two sides
var float fixed_commission = 10 // BTC commission value USD per position size two sides
//var float money = 10000 //forex pairs position size
var float money = 0.3333 //BTC position size



strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false)
len = input(2, minval=1, title="RSI Length")
src = input(close, "RSI Source", type = input.source)
upRsi = rma(max(change(src), 0), len)
downRsi = rma(-min(change(src), 0), len)
rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi))
var color buyColor = color.blue
var color sellColor = color.red


plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor)
plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor)


// long = rsi <= 10 
// var float longsl = 0
// var int long_ts_points = 0

// if long
//     longsl:= low
//     long_ts_points := 200
    
// if rsi >= 70
//     long_ts_points := 100
// else if rsi >= 80
//     long_ts_points := 80


// plot (longsl)
// var int barsPassed = 0
// barsPassed := barssince(long)
// if long
//     strategy.entry("long", long = strategy.long, qty = 10000, stop = high)
// strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points )
// //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
// strategy.cancel_all(barsPassed > 3  and not long)


short = rsi >= 90 
var float shortsl = 0
var int short_ts_points = 0
//var bool stClose = 0

if short
    shortsl:= high
    short_ts_points := 200
    
if rsi <= 30
    short_ts_points := 100
    //stClose :=1
else if rsi <= 20
    short_ts_points := 80 
//else
    //stClose := 0

plot (shortsl)
var int barsPassedSh = 0
barsPassedSh := barssince(short)
if short
    strategy.entry("short", long = strategy.short, qty = money, stop = low)
strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 )
//strategy.close("short", comment="rsi<30", when = stClose)


//strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
strategy.cancel_all(barsPassedSh > 3  and not short)










Thêm nữa