Xu hướng RSI theo chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-07 16:33:43
Tags:

img

Tổng quan

Chiến lược này được thiết kế dựa trên chỉ số chỉ số sức mạnh tương đối (RSI) để xác định các tình huống mua quá mức và bán quá mức và theo xu hướng. Nó đi dài khi RSI dưới đường bán quá mức và đi ngắn khi RSI trên đường mua quá mức, nhằm mục đích kiếm lợi nhuận bằng cách theo xu hướng chính của thị trường.

Chiến lược logic

Chiến lược này sử dụng chỉ số RSI để xác định các điều kiện mua quá mức và bán quá mức trên thị trường. RSI được tính dựa trên sự thay đổi giá trong một khoảng thời gian nhất định. RSI dưới 30 được coi là bán quá mức trong khi RSI trên 70 được coi là mua quá mức.

Cụ thể, chiến lược này đầu tiên xác định các thông số RSI dài=14, mua quá nhiều=70, bán quá nhiều=30. Sau đó nó tính giá trị RSI vrsi dựa trên giá đóng. Khi vrsi vượt qua trên đường mua quá nhiều hoặc dưới đường bán quá nhiều, nó kích hoạt giao dịch dài hoặc ngắn theo đó. Sau khi tham gia giao dịch, một lệnh dừng lỗ của các thẻ etoroStopTicks được thiết lập. Các vị trí sẽ được đóng khi lệnh dừng lỗ được kích hoạt trong cửa sổ giao dịch.

Bằng cách này, chiến lược có thể theo dõi xu hướng chính của thị trường - đi dài trong các tình huống bán quá mức và đi ngắn trong các tình huống mua quá mức.

Ưu điểm

  • Sử dụng chỉ số RSI để xác định các điều kiện thị trường mua quá mức / bán quá mức để bắt được xu hướng
  • Cửa sổ backtesting linh hoạt để kiểm tra các khoảng thời gian khác nhau
  • Định giá dừng lỗ hợp lý để kiểm soát lỗ giao dịch duy nhất

Rủi ro

  • Sự khác biệt của chỉ số RSI có thể tạo ra tín hiệu sai
  • Không thích nghi với biến động thị trường
  • Khó xác định sự đảo ngược xu hướng, có thể dẫn đến các giao dịch đảo ngược

Giải pháp:

  • Thêm các chỉ số bộ lọc để tránh các mục nhập sai dựa trên tín hiệu RSI sai
  • Stop loss động để theo dõi chuyển động thị trường trong thời gian thực
  • Thêm các công cụ đánh giá xu hướng để ngăn chặn các giao dịch ngược

Cải thiện

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các thông số RSI cho hiệu suất tốt nhất

Kiểm tra các giai đoạn RSI khác nhau và mức mua quá mức / bán quá mức để tìm các thông số tối ưu và giảm các tín hiệu sai.

  1. Thêm các công cụ đánh giá xu hướng để tránh giao dịch ngược xu hướng

Thêm MA, MACD để đánh giá hướng xu hướng và tránh các tín hiệu sai ở các điểm chuyển hướng.

  1. Lỗi dừng động (dynamic stop loss)

Sử dụng ATR để thiết lập stop loss thích nghi để theo dõi tốt hơn biến động thị trường.

  1. Cải thiện các quy tắc nhập cảnh

Thêm các điều kiện khác như đột phá, tăng âm lượng đến tín hiệu RSI để cải thiện độ chính xác nhập.

Kết luận

Chiến lược này bắt được xu hướng bằng cách xác định các tình huống mua quá mức và bán quá mức bằng cách sử dụng RSI. So với các chiến lược dừng theo dõi truyền thống, nó có lợi thế là thời gian thị trường với các chỉ số. Tuy nhiên, các vấn đề như chênh lệch RSI và không thể phát hiện sự đảo ngược xu hướng cần phải được giải quyết. Những cải tiến hơn nữa về tối ưu hóa tham số, đánh giá xu hướng, dừng mất động có thể nâng cao sự ổn định và lợi nhuận.


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

//@version=3

strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1995)


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close

vrsi = rsi(price, length)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Thêm nữa