Chiến lược đột phá RSI kép

Tác giả:ChaoZhang, Ngày: 2024-01-18
Tags:

img

Tổng quan

Chiến lược đột phá RSI kép là một chiến lược giao dịch định lượng tạo ra các tín hiệu giao dịch bằng cách sử dụng cả các chỉ số RSI nhanh và chậm.

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

Chiến lược này sử dụng hai chỉ số RSI đồng thời, một chỉ số RSI nhanh với khoảng thời gian 2 và một chỉ số RSI chậm với khoảng thời gian 14.

Khi RSI chậm lớn hơn 50 và RSI nhanh nhỏ hơn 50, một tín hiệu dài được tạo ra. Khi RSI chậm nhỏ hơn 50 và RSI nhanh lớn hơn 50, một tín hiệu ngắn được tạo ra. Sau khi đi dài hoặc ngắn, nếu có tín hiệu dừng lỗ (một cột đường K màu đỏ xuất hiện khi vị trí dài mất tiền, và một cột đường K màu xanh lá cây xuất hiện khi vị trí ngắn mất tiền), vị trí sẽ được đóng.

Phân tích lợi thế

  • Xây dựng tín hiệu giao dịch bằng cách sử dụng các tính năng mua quá mức và bán quá mức của các chỉ số RSI để tránh theo đuổi đỉnh và giết đáy.
  • Sự kết hợp của chỉ số RSI nhanh và chậm có thể theo dõi những thay đổi xu hướng để nhận ra các bước vào và ra kịp thời.
  • Theo dõi xu hướng trung bình và dài hạn và tránh bị xáo trộn bởi tiếng ồn thị trường ngắn hạn.
  • Kiểm soát rủi ro tốt với cơ chế dừng lỗ.

Rủi ro và giải pháp

  • Rủi ro của đột phá sai. Giải pháp là thiết lập hợp lý các thông số của RSI nhanh và chậm để đảm bảo đột phá thực sự.
  • Rủi ro từ việc thiết lập điểm dừng lỗ không chính xác.
  • Rủi ro mất mát xoắn ốc. Giải pháp không phải là theo đuổi tăng và đánh bại giảm, và thực hiện nhập và ra theo các quy tắc chiến lược.

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

Chiến lược cũng 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ố của RSI nhanh và chậm để tìm ra sự kết hợp thông số tốt nhất;
  2. giới thiệu các chỉ số khác để tạo ra các tín hiệu giao dịch đáng tin cậy hơn;
  3. Thiết lập stop loss động và điều chỉnh điểm stop loss trong thời gian thực theo biến động thị trường.

Kết luận

Chiến lược đột phá RSI kép sử dụng các chỉ số RSI nhanh và chậm để theo dõi những thay đổi xu hướng thị trường và hình thành các tín hiệu giao dịch trong các khu vực mua quá mức và bán quá mức, có thể tránh hiệu quả đuổi theo đỉnh và giết đáy. Đồng thời, một cơ chế dừng lỗ được thiết lập để kiểm soát rủi ro. Chiến lược này hoạt động đơn giản và dễ thực hiện, phù hợp với giao dịch định lượng.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Double RSI Strategy 1.0", shorttitle = "2RSI str 1.0", overlay=true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
fast = input(2, defval = 2, minval = 2, maxval = 100, title = "Fast RSI Period")
slow = input(14, defval = 14, minval = 2, maxval = 100, title = "Slow RSI Period")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(close), 0), fast)
fastdown = rma(-min(change(close), 0), fast)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Slow RSI
slowup = rma(max(change(close), 0), slow)
slowdown = rma(-min(change(close), 0), slow)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))

//Signals
up = slowrsi > 50 and fastrsi < 50
dn = slowrsi < 50 and fastrsi > 50
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)
lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1]

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot )

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot )
    
if exit
    strategy.close_all()

Thêm nữa