RSI Momentum Chiến lược ngắn dài

Tác giả:ChaoZhang, Ngày: 2023-10-26 17:05:40
Tags:

img

Tổng quan

Chiến lược RSI Momentum Long Short là một chiến lược động lực điển hình dựa trên chỉ số RSI của Larry Connors, sử dụng các tín hiệu mua quá nhiều và bán quá nhiều từ RSI để xác định các bước vào và ra.

Chiến lược logic

Chiến lược này xây dựng chỉ số RSI bằng cách tính toán đà tăng và giảm của giá trong một khoảng thời gian xem lại. RSI dưới đường bán quá mức 10 được coi là bán quá mức, trong khi RSI trên đường mua quá mức 90 được coi là mua quá mức. Chiến lược tạo ra tín hiệu dài khi RSI vượt qua đường bán quá mức từ dưới, và tạo ra tín hiệu ngắn khi RSI vượt qua đường mua quá mức từ trên.

Các bộ lọc trung bình động bổ sung được thêm vào - chỉ cho phép tín hiệu dài khi 5day MA trên 200day MA, và tín hiệu ngắn khi 5day MA dưới 200day MA. Điều này giúp lọc các tín hiệu sai từ các rebound ngắn hạn.

Các cơ chế lấy lợi nhuận cũng được giới thiệu. Các vị trí dài hiện có sẽ được đóng khi RSI vượt qua đường mua quá mức 90. Các vị trí ngắn hiện có sẽ được đóng khi RSI vượt qua đường bán quá mức 10. Điều này khóa lợi nhuận và tránh mất mát ngày càng tăng.

Ưu điểm của Chiến lược

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

  2. Thêm bộ lọc MA làm giảm tín hiệu sai từ tiếng ồn ngắn hạn.

  3. Cơ chế thu lợi nhuận giúp kiểm soát rủi ro và hạn chế tổn thất.

  4. Quy tắc đơn giản và rõ ràng, dễ hiểu và thực hiện.

  5. RSI là một chỉ số được sử dụng rộng rãi và thực tế, phù hợp với nhiều công cụ.

Rủi ro của chiến lược

  1. RSI mua quá mức / bán quá mức có thể không phải lúc nào cũng dẫn đến đảo ngược.

  2. Các bộ lọc MA cũng có thể lọc các cơ hội giao dịch tốt.

  3. Các thiết lập lợi nhuận không đúng đắn từ bỏ xu hướng quá sớm.

  4. Các thông số như RSI lookback, mức mua quá mức / bán quá mức, cài đặt MA cần điều chỉnh.

Rủi ro có thể được giảm thiểu thông qua tối ưu hóa tham số, kết hợp các chỉ số khác, lấy lợi nhuận linh hoạt, v.v.

Cơ hội gia tăng

  1. Kiểm tra RSI với các khoảng thời gian nhìn lại khác nhau.

  2. Thêm các chỉ số khác như KDJ, MACD để bổ sung cho RSI.

  3. Điều chỉnh mức mua/bán quá mức dựa trên chế độ thị trường.

  4. Chế độ RSI thu lợi nhuận dựa trên thời gian nắm giữ.

  5. Kết hợp các chiến lược dừng lỗ dựa trên tỷ lệ lỗ tối đa.

  6. Tối ưu hóa hệ thống MA, sử dụng stop loss động.

Kết luận

Chiến lược RSI Momentum Long Short nắm bắt các cơ hội đảo ngược ngắn hạn bằng cách sử dụng RSI để xác định mức mua quá mức / bán quá mức, được lọc bởi các MAs và các quy tắc lấy lợi nhuận. Chiến lược này đơn giản và thực tế, đáng thử nghiệm và nâng cao hơn nữa để thích nghi với các thị trường đa dạng.


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

//authour: SudeepBisht
//@version=3
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy("SB_CM_RSI_2_Strategy_Version 2.0", overlay=true)

src = close
entry= input(defval=0,title="Entry area")
entry:=nz(entry[1])
overBought=input(90)
overSold=input(10)
//RSI CODE
up = rma(max(change(src), 0), 2)
down = rma(-min(change(src), 0), 2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//Criteria for Moving Avg rules
ma5 = sma(close,5)
ma200= sma(close, 200)

//Rule for RSI Color
col = close > ma200 and close < ma5 and rsi < 10 ? lime : close < ma200 and close > ma5 and rsi > 90 ? red : silver
chk= col==red?-1:col==lime?1:0

if (not na(rsi))
    if (crossover(rsi, overSold))
        if(chk[1]==1)
            strategy.entry("RsiLE", strategy.long, comment="RsiLE")
            entry:=1
    if (crossunder(rsi, overBought))
        if(chk[1]==-1)
            strategy.entry("RsiSE", strategy.short, comment="RsiSE")
            entry:=-1
        
if (not na(rsi))
    if (crossover(rsi, overSold) and entry==-1)
        strategy.close_all()
        //strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        entry:=0
    if (crossunder(rsi, overBought) and entry==1)
        strategy.close_all()
        //strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        entry:=0
        


Thêm nữa