Chiến lược giao dịch phạm vi RSI


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

Chiến lược giao dịch phạm vi RSI

Tổng quan

Chiến lược giao dịch dao động RSI bằng cách giao dịch ngược khi RSI đạt đến vùng mua bán quá mức. Chiến lược này dựa trên giả định rằng giá sẽ không bao giờ tăng hoặc giảm một cách đơn lẻ và kiếm lợi nhuận bằng cách nắm bắt cơ hội của RSI đạt đến mức giá giảm khi RSI đạt đến vùng mua bán quá mức.

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

Chiến lược này xác định giá đã đạt đến phạm vi mua hoặc bán quá mức bằng cách tính toán chỉ số RSI. Cụ thể, chiến lược này đầu tiên tính toán chiều dài của chỉ số RSI là 2 chu kỳ. Sau đó, thiết lập đường RSI mua quá mức là 91 và đường bán quá mức là 11.

Để kiểm soát rủi ro, chiến lược cũng thiết lập kỹ thuật dừng lỗ. Cụ thể, nếu giá di chuyển xuống dưới hơn 0,5% so với giá đầu vào sau khi mua nhiều, hãy dừng vị trí bằng phẳng; Nếu giá di chuyển lên trên 0,5% sau khi mua nhiều, hãy dừng vị trí bằng phẳng. Điều này có thể tránh thiệt hại trong trường hợp giá có đột phá đơn phương mạnh mẽ.

Tóm lại, logic cốt lõi của chiến lược này là: giám sát chỉ số RSI để xác định giá quá mua quá bán, giao dịch ngược theo các tham số RSI được cấu hình, đồng thời đặt lệnh dừng để kiểm soát rủi ro.

Phân tích lợi thế

  • Dùng chỉ số RSI để đánh giá giá trị giao dịch, đây là một tín hiệu giao dịch cổ điển và đáng tin cậy.

  • Giao dịch đảo ngược mua quá mức, theo giả định rằng giá sẽ không bao giờ tăng hoặc giảm một chiều, có thể hưởng lợi từ biến động trong phạm vi giá.

  • Thiết lập dừng lỗ để kiểm soát tổn thất của một giao dịch.

  • Khung phản hồi chiến lược đơn giản, rõ ràng, dễ hiểu và sửa đổi.

  • Các tham số RSI và mức dừng có thể được thiết lập linh hoạt để thích ứng với sự thay đổi của thị trường.

Phân tích rủi ro

  • RSI là một chỉ số xu hướng, chiến lược này có thể tạo ra tổn thất liên tục nếu có xu hướng giá liên tục thay vì biến động.

  • Các tham số RSI được đặt không đúng, có thể dẫn đến tín hiệu giao dịch tăng nhưng tỷ lệ thắng thấp.

  • Cài đặt mức dừng lỗ không đúng cách có thể dẫn đến việc dừng lỗ được kích hoạt bởi giá nhỏ hoặc mất mát đơn lẻ quá lớn.

  • Chiến lược này phù hợp hơn với môi trường thị trường hồi phục rung động và có thể không hiệu quả trong thị trường có xu hướng rõ rệt.

  • Việc đặt vị thế quá lớn cũng có thể dẫn đến sự gia tăng tổn thất đơn lẻ.

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

  • Có thể xem xét kết hợp với các chỉ số khác như MACD để tạo ra tín hiệu kết hợp với RSI, tăng độ chính xác của quyết định giao dịch.

  • Bạn có thể nghiên cứu các đặc điểm thống kê của RSI với các tham số khác nhau để tìm ra sự kết hợp tốt nhất.

  • Có thể thiết lập cơ chế điều chỉnh động tỷ lệ vị trí để kiểm tra hiệu quả trong phản hồi.

  • Bạn có thể xem xét tính toán mức dừng lỗ bằng các chỉ số như ATR, để giảm lỗ có thể thích ứng hơn.

  • Có thể kết hợp các phương pháp như học máy để tìm ra sự kết hợp tham số tối ưu.

  • Có thể khám phá các chiến lược giao dịch đảo ngược khác kết hợp với RSI để tạo ra một hệ thống giao dịch vững chắc hơn.

Tóm tắt

Chiến lược giao dịch xung đột trong khoảng RSI sử dụng chỉ số RSI đơn giản để đánh giá giá cả quá mua quá bán và thiết lập rủi ro kiểm soát lỗ. Chiến lược này phù hợp với môi trường thị trường xung đột, thu lợi nhuận bằng cách nắm bắt biến động giá trong khoảng.

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