Chiến lược theo dõi kênh RSI


Ngày tạo: 2023-12-18 17:48:24 sửa đổi lần cuối: 2023-12-18 17:48:24
sao chép: 0 Số nhấp chuột: 680
1
tập trung vào
1621
Người theo dõi

Chiến lược theo dõi kênh RSI

Tổng quan

Chiến lược theo dõi chênh lệch giá RSI Channel tạo ra tín hiệu giao dịch bằng cách theo dõi sự biến động của chỉ số RSI trong kênh giảm giá, kết hợp với sự phá vỡ giá. Chiến lược này nhằm mục đích nắm bắt sự bùng nổ mua bán nhanh chóng trong thị trường tiền điện tử.

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

  1. Sử dụng Hull Moving Average Smooth RSI để tạo ra các chỉ số RSI sau khi làm mịn, bao gồm RSI giá đóng cửa, RSI giá cao nhất, RSI giá thấp nhất và RSI giá trung bình.

  2. Cài đặt RSI trong phạm vi 55-45. Khi chỉ số RSI đi vào 55-45 kênh, biểu thị đi vào vùng rung.

  3. Khi chỉ số RSI của giá đóng cửa đi xuống từ đường trên và giá đóng cửa thấp hơn giá trung bình, nó cho thấy giá chịu áp lực; trong khi chỉ số RSI của giá trung bình vẫn cao hơn giới hạn trên đường, nó cho thấy giá trung bình vẫn có động lực mua, phù hợp với logic theo dõi giá trung bình, do đó tạo ra tín hiệu mua.

  4. Khi giá RSI đóng cửa từ giới hạn dưới của kênh, và giá đóng cửa cao hơn giá trung bình, cho thấy giá có hỗ trợ; và tại thời điểm này, chỉ số RSI trung bình thấp hơn giới hạn dưới của kênh, cho thấy giá trung bình chịu áp lực lớn, phù hợp với logic theo dõi giá trung bình phá vỡ, do đó tạo ra tín hiệu bán.

  5. Chỉ số RSI giá cao nhất và RSI giá thấp nhất được sử dụng để xác định các tín hiệu giao dịch không hiệu quả và dừng lại nhanh chóng.

Lợi thế chiến lược

  1. Sử dụng giá trung bình để theo dõi xu hướng mạnh mẽ của giá trung bình, phù hợp với khái niệm theo dõi xu hướng.

  2. RSI dao động trong kênh giảm giá, gợi ý vào thắt chặt, và sử dụng giá trung bình để theo dõi hướng mạnh của giá trung bình để tránh bị mắc kẹt trong rung động trong khoảng.

  3. Chỉ số RSI giá cao nhất và RSI giá thấp nhất được sử dụng để xác định nhanh chóng các tín hiệu giao dịch không hiệu quả, dừng lỗ nhanh chóng và kiểm soát tổn thất hiệu quả.

Rủi ro chiến lược

  1. Các chỉ số RSI được thiết lập không đúng có thể dẫn đến quá nhạy cảm hoặc chậm chạp.

  2. Ý nghĩa của giá trị trung bình không phải lúc nào cũng đáng tin cậy, giá trị trung bình có thể bị dao động.

  3. Thị trường tiền điện tử có nhiều biến động, đặt vị trí dừng lỗ quá nới lỏng có thể dẫn đến tổn thất mở rộng.

Giải pháp:

  • Tối ưu hóa các tham số RSI để đáp ứng một cách vừa phải với sự thay đổi giá
  • Kết hợp nhiều chỉ số để đánh giá độ tin cậy của giá trung bình
  • Cắt lỗ một cách thích hợp để tránh thua lỗ quá mức

Hướng tối ưu hóa chiến lược

  1. Đường hướng đột phá của giá trị trung bình kết hợp với nhiều chỉ số hơn

Có thể đưa ra các chỉ số như dải Brin để xác định xem giá trung bình có gần đường lên xuống hay không, do đó cải thiện độ chính xác của phán đoán về hướng phá vỡ giá trung bình.

  1. Giới thiệu mô hình học máy hỗ trợ phán đoán

Sử dụng các mô hình học sâu như LSTM để dự đoán xu hướng tương lai của giá trị trung bình, hỗ trợ xác định giá trị trung bình có thể phá vỡ một hướng nào đó không.

  1. Sử dụng suy giảm thích ứng

Tùy theo mức độ biến động của thị trường, điều chỉnh vị trí dừng lỗ trong thời gian thực. Ví dụ: khi biến động tăng lên, hãy thắt chặt vị trí dừng lỗ một cách thích hợp; khi biến động giảm đi, bạn có thể nới lỏng vị trí dừng lỗ một cách thích hợp.

Tóm tắt

Chiến lược theo dõi chênh lệch giá RSI Channel nhằm tạo ra tín hiệu giao dịch bằng cách theo dõi sự biến động của chỉ số RSI trong kênh và kết hợp với sự phá vỡ của giá, nhằm mục đích nắm bắt các vụ nổ mua bán nhanh chóng trong thị trường tiền điện tử. Chiến lược này kết hợp hiệu quả với phương pháp theo dõi xu hướng và nhận diện khoảng cách, vẫn có thể có được giao dịch tốt hơn khi chênh lệch giá thu hẹp.

Mã nguồn chiến lược
/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull MA of RSI Strategy",overlay=false)
//+++++++++++++++++++++++++++++++
//++++++++++++ Setup ++++++++++++
//+++++++++++++++++++++++++++++++
// RSI 
rsi1_tt="=== RSI ==="
rsi1_len=input(13,title="Period",inline="set",group=rsi1_tt)
//Mid
mid_tt="=== Mid Channel ==="
upper=input(55.0,title="Upper",inline="set",group=mid_tt)
lower=input(45.0,title="Lower",inline="set",group=mid_tt)
//Over
over_tt="=== Over ==="
ovb=input(70.0,title="Overbought",inline="set",group=over_tt)
ovs=input(30.0,title="Oversold",inline="set",group=over_tt)
//++++++++++++++++++++++++++++++++++++++++
//++++++++++++ Hull MA of RSI ++++++++++++
//++++++++++++++++++++++++++++++++++++++++
hma_tt="=== Hull MA ==="
hma_len=input(3,title="Period",inline="set",group=hma_tt)
rsi_c=hma(rsi(close,rsi1_len),hma_len)
rsi_h=hma(rsi(high,rsi1_len),hma_len)
rsi_l=hma(rsi(low,rsi1_len),hma_len)
rsi_hl2=hma(rsi(hl2,rsi1_len),hma_len)
//++++++++++++++++++++++++++++++++
//++++++++++++ Signal ++++++++++++
//++++++++++++++++++++++++++++++++
var order_status="None"
BuySignal=
       crossunder(rsi_c,ovb)
       and
       close<hl2
       and
       rsi_hl2>ovb
       and
       order_status=="None"
CloseBuy=
       order_status[1]=="Long"
       and
       (crossover(rsi_c,ovb)
       or
       crossunder(rsi_l,upper))
SellSignal=
       crossover(rsi_c,ovs)
       and
       close>hl2
       and
       rsi_hl2<ovs
       and
       order_status=="None"
CloseSell=
       order_status[1]=="Short"
       and
       (crossunder(rsi_c,ovs)
       or
       crossover(rsi_h,lower))
ExitSignal=
       CloseBuy
       or
       CloseSell
if BuySignal
    order_status:="Long"
if SellSignal
    order_status:="Short"
if ExitSignal
    order_status:="None"

//+++++++++++++++++++++++++++++++++++
//++++++++++++ Plot Line ++++++++++++
//+++++++++++++++++++++++++++++++++++
rsi_c_col=
       rsi_c>upper?color.new(color.blue,0):
       rsi_c<lower?color.new(color.blue,0):
       color.new(color.orange,0)
rsi_h_col=
       rsi_h>upper?color.new(color.green,0):
       rsi_h<lower?color.new(color.green,0):
       color.new(color.orange,0)
rsi_l_col=
       rsi_l>upper?color.new(color.yellow,0):
       rsi_l<lower?color.new(color.yellow,0):
       color.new(color.orange,0)
rsi_hl2_col=
       rsi_hl2>upper?color.new(color.olive,0):
       rsi_hl2<lower?color.new(color.olive,0):
       color.new(color.orange,0)
plot(rsi_c,title="RSI Close",color=rsi_c_col,linewidth=2)
plot(rsi_h,title="RSI High",color=rsi_h_col,linewidth=1)
plot(rsi_l,title="RSI Low",color=rsi_l_col,linewidth=1)
plot(rsi_hl2,title="RSI HL2",color=rsi_hl2_col,linewidth=1)
upper_line=hline(upper,title="Upper",color=color.new(color.black,100))
lower_line=hline(lower,title="Lower",color=color.new(color.black,100))
fill(upper_line,lower_line,title="Mid Channel",color=color.silver)
ovb_line=hline(ovb,title="Overbought",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2)
ovs_line=hline(ovs,title="Oversold",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2)

//++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++ Plot Analyzing Signals ++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++
//Color
buy_col=
       BuySignal?color.new(color.blue,70):na
sell_col=
       SellSignal?color.new(color.red,70):na
close_buy_col=
       CloseBuy and order_status[1]=="Long"?color.new(color.yellow,70):na
close_sell_col=
       CloseSell and order_status[1]=="Short"?color.new(color.yellow,70):na
//Background
bgcolor(close_buy_col, title='Close Buy', offset=0)
bgcolor(close_sell_col, title='Close Sell', offset=0)
bgcolor(sell_col, title='Sell', offset=0)
bgcolor(buy_col, title='Buy', offset=0)
//++++++++++++++++++++++++++++++++++
//++++++++++++ Backtest ++++++++++++
//++++++++++++++++++++++++++++++++++
strategy.entry("Long",strategy.long,when=BuySignal)
strategy.close("Long",when=CloseBuy)
strategy.entry("Short",strategy.short,when=SellSignal)
strategy.close("Short",when=CloseSell)
//EOF