Chiến lược giao dịch RSI Range

Tác giả:ChaoZhang, Ngày: 2023-11-06 16:12:23
Tags:

img

Tổng quan

Chiến lược giao dịch phạm vi RSI tạo ra lợi nhuận bằng cách giao dịch chống lại xu hướng khi RSI đạt đến mức mua quá mức hoặc bán quá mức. Nó dựa trên giả định rằng giá không xu hướng theo một hướng mãi mãi mà dao động qua lại trong phạm vi. Chiến lược này nhằm mục đích tận dụng lợi thế của sự rút lui khi RSI chạm cực.

Chiến lược logic

Chiến lược này tính toán chỉ số RSI để xác định xem giá đã đạt mức mua quá mức hoặc bán quá mức. Cụ thể, thời gian RSI được đặt thành 2 thanh. Dòng mua quá mức là 91 và đường bán quá mức là 11. Một tín hiệu ngắn được tạo ra khi RSI vượt qua mức mua quá mức. Một tín hiệu dài được tạo ra khi RSI vượt qua dưới mức bán quá mức. Kích thước vị trí được đặt ở mức 5% rủi ro tối đa cho mỗi giao dịch.

Để kiểm soát rủi ro, một cơ chế dừng lỗ được thực hiện. Nếu giá di chuyển 0,5% so với vị trí dài sau khi mở dài, vị trí sẽ được đóng. Tương tự với vị trí ngắn. Điều này tránh mất quá nhiều khi xu hướng giá mạnh mẽ theo một hướng.

Tóm lại, logic cốt lõi là theo dõi RSI cho quá mua / quá bán, giao dịch chống lại xu hướng dựa trên các mức RSI được cấu hình và quản lý rủi ro thông qua dừng lỗ.

Phân tích lợi thế

  • RSI là một chỉ số đã được chứng minh để xác định mức mua quá mức / bán quá mức.

  • Giao dịch chống lại cực đoan phù hợp với giả định dao động giá thay vì xu hướng một chiều.

  • Stop loss kiểm soát lỗ cho các giao dịch cá nhân.

  • Khung kiểm tra sau đơn giản và rõ ràng, dễ hiểu và sửa đổi.

  • Các thông số RSI linh hoạt và mức dừng lỗ thích nghi với thị trường thay đổi.

Phân tích rủi ro

  • RSI là một chỉ số theo xu hướng, tổn thất liên tục có thể xảy ra trong xu hướng liên tục thay vì giá giới hạn trong phạm vi.

  • Các thông số RSI không chính xác có thể tạo ra nhiều tín hiệu hơn nhưng với tỷ lệ thắng thấp hơn.

  • Dừng lỗ có thể được kích hoạt bởi các động tác nhỏ hoặc gây ra tổn thất lớn nếu không được đặt đúng cách.

  • Chiến lược hoạt động tốt hơn trong thị trường giới hạn phạm vi, có thể hoạt động kém hơn trong các kịch bản xu hướng mạnh.

  • Kích thước vị trí quá lớn có thể làm tăng lỗ.

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

  • Kết hợp RSI với các chỉ số khác như MACD để cải thiện độ chính xác tín hiệu.

  • Nghiên cứu các hành vi RSI thống kê với các thông số khác nhau để tìm các thiết lập tối ưu.

  • Kiểm tra các cơ chế định kích thước vị trí động trong các thử nghiệm ngược.

  • Sử dụng ATR để thiết lập mức dừng lỗ thích nghi.

  • Áp dụng máy học để khám phá kết hợp tham số tối ưu.

  • Khám phá việc kết hợp các chiến lược đảo ngược trung bình khác với RSI để xây dựng các hệ thống mạnh mẽ.

Tóm lại

Chiến lược giao dịch phạm vi RSI tạo ra các giao dịch đảo ngược đơn giản dựa trên mức mua quá mức / bán quá mức RSI và quản lý rủi ro thông qua dừng lỗ. Nó hoạt động cho các thị trường dao động giới hạn trong phạm vi nhưng có những hạn chế trong các kịch bản xu hướng mạnh. Điều chỉnh các tham số, cải thiện các quy tắc dừng lỗ, kết hợp với các chỉ số và chiến lược khác có thể tăng cường sự ổn định và khả năng thích nghi. Nhìn chung chiến lược này cung cấp một số hiểu biết có giá trị nhưng cần ứng dụng thận trọng và tối ưu hóa trong giao dịch trực tiếp.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple RSI Strategy", overlay=true)

var rsiLength = input(2, title = "rsi Length")
var float rsiBuyLevel = input(11, title = "What rsi level triggers a long")
var float rsiShortLevel = input(91, title = "What rsi level triggers a short")
var float maxRisk =  input(.05, title="Maximum risk/ trade")
var chartEntryStop = input(.005, title="Max Movment in the opposite direction / trade")
var float longEntryPrice = na
var float shortEntryPrice = na 
rsiValue = ta.rsi(close, rsiLength)

var float maxRiskValue = (strategy.equity * maxRisk) / chartEntryStop
var float maxRsi = 0

//Conditions


// Strategy Execution
if( close <= longEntryPrice-(longEntryPrice*chartEntryStop ))
    strategy.close("Long")

if( close >= shortEntryPrice+(shortEntryPrice*chartEntryStop ))
    strategy.close("Short")

if (rsiValue <= rsiBuyLevel and maxRsi == rsiShortLevel)
    maxRsi := rsiBuyLevel 
    strategy.close("Short")
    strategy.entry("Long", strategy.long)
    longEntryPrice := close
    
   
else if (rsiValue >= rsiShortLevel and maxRsi == rsiBuyLevel)
    maxRsi := rsiShortLevel
    strategy.close("Long")
    strategy.entry("Short", strategy.short)
    shortEntryPrice := close

else if (rsiValue >= rsiShortLevel )
    maxRsi := rsiShortLevel
    strategy.close("Long")

else if (rsiValue <= rsiBuyLevel )
    maxRsi := rsiBuyLevel
    strategy.close("Short")

Thêm nữa