Chiến lược RSI Channel Price Difference Tracking tạo ra các tín hiệu giao dịch bằng cách theo dõi biến động của các chỉ số RSI trong các kênh ngưỡng kết hợp với sự đột phá giá.
Sử dụng trung bình động Hull để làm mịn RSI và tạo các chỉ số RSI mịn, bao gồm RSI cho giá đóng, giá cao nhất, giá thấp nhất và giá trung bình.
Đặt phạm vi kênh RSI lên 55-45. Khi RSI bước vào kênh 55-45, nó cho thấy bước vào vùng sốc.
Khi giá đóng RSI giảm trở lại so với giới hạn trên của kênh, và giá đóng thấp hơn giá trung bình, nó cho thấy giá đang chịu áp lực; tuy nhiên, tại thời điểm này, giá trung bình RSI vẫn nằm trên giới hạn trên của kênh, cho thấy giá trung bình vẫn có sức mua đáp ứng logic theo dõi sự đột phá giá trung bình. Do đó, một tín hiệu mua được tạo ra.
Khi giá đóng RSI bật trở lại từ giới hạn dưới của kênh, và giá đóng cao hơn giá trung bình. Nó chỉ ra rằng giá có hỗ trợ; nhưng tại thời điểm này, giá trung bình RSI giảm xuống dưới giới hạn dưới của kênh, cho thấy giá trung bình có áp lực lớn hơn, đáp ứng logic theo dõi sự đột phá giá trung bình. Do đó, một tín hiệu bán được tạo ra.
Chỉ số RSI giá cao nhất và chỉ số RSI giá thấp nhất được sử dụng để nhanh chóng xác định các tín hiệu giao dịch không hợp lệ và thực hiện các lỗ dừng nhanh.
Sử dụng giá trung bình để theo dõi hướng mạnh của giá trung bình đáp ứng ý tưởng theo dõi xu hướng.
Khi chỉ số RSI dao động trong kênh ngưỡng, nó cho thấy bước vào vùng sốc.
Chỉ số RSI giá cao nhất và chỉ số RSI giá thấp nhất được sử dụng để nhanh chóng xác định các tín hiệu giao dịch không hợp lệ và thực hiện các lỗ dừng nhanh, có thể kiểm soát thua lỗ một cách hiệu quả.
Cài đặt tham số RSI không chính xác có thể gây ra phản ứng quá nhạy cảm hoặc chậm.
Tầm quan trọng của sự đột phá giá trung bình không phải lúc nào cũng đáng tin cậy và giá trung bình cũng có thể biến động.
Sự biến động cao trên thị trường tiền điện tử, cài đặt dừng lỗ quá lỏng lẻo có thể dẫn đến tổn thất phóng đại.
Giải pháp:
Đưa ra các chỉ số như Bollinger Bands để đánh giá xem giá trung bình có gần với các dải trên hoặc dưới không, do đó cải thiện độ chính xác của việc đánh giá hướng đột phá của giá trung bình.
Sử dụng LSTM và các mô hình học sâu khác để dự đoán xu hướng tương lai của giá trung bình và giúp xác định xem giá trung bình có thể phá vỡ thành công theo một hướng nhất định hay không.
Điều chỉnh động các vị trí dừng lỗ dựa trên biến động thị trường. Ví dụ, thắt chặt các vị trí dừng lỗ một cách thích hợp khi biến động tăng; nới lỏng các vị trí dừng lỗ một cách thích hợp khi biến động giảm.
Chiến lược theo dõi chênh lệch giá kênh RSI tạo ra tín hiệu giao dịch bằng cách theo dõi biến động RSI trong các kênh kết hợp với đột phá giá, nhằm mục đích nắm bắt các vụ nổ mua / bán nhanh trên thị trường tiền điện tử. Chiến lược kết hợp hiệu quả các phương pháp theo dõi xu hướng và xác định phạm vi và vẫn có thể nhận được tín hiệu giao dịch tốt khi chênh lệch giá thu hẹp. Trong khi đó, cơ chế dừng lỗ nhanh cũng làm cho rủi ro của chiến lược có thể kiểm soát được. Bước tiếp theo là cải thiện thêm độ tin cậy và lợi nhuận của chiến lược bằng cách kết hợp nhiều phán đoán chỉ số và dự đoán học máy hơn.
/*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