Chiến lược giao dịch hai hướng dựa trên chỉ số RSI và chỉ số RSI STOCH

Tác giả:ChaoZhang, Ngày: 2023-12-01 18:06:23
Tags:

img

Tổng quan

Chiến lược này kết hợp các chỉ số kỹ thuật tương đối mạnh mẽ (RSI) và Stoch RSI để thực hiện một chiến lược giao dịch hai hướng tương đối ổn định và đáng tin cậy. Khi chỉ số RSI cho thấy tín hiệu mua quá nhiều hoặc bán quá nhiều và Stoch RSI tạo ra tín hiệu giao dịch chéo vàng và chéo chết, chiến lược sẽ đi vào các vị trí dài hoặc ngắn.

Chiến lược logic

Chiến lược này chủ yếu dựa trên các chỉ số RSI và Stoch RSI. RSI được sử dụng để xác định xem thị trường có bị mua quá mức hay bán quá mức không. Stoch RSI được sử dụng để tạo ra các tín hiệu giao dịch cụ thể.

Đầu tiên, chỉ số RSI đánh giá liệu thị trường có bị mua quá mức hay bán quá mức. Nếu chỉ số RSI nằm trên đường mua quá mức, thị trường được coi là mua quá mức. Nếu chỉ số RSI nằm dưới đường bán quá mức, thị trường được coi là bán quá mức.

Thứ hai, Stoch RSI tạo ra các tín hiệu giao dịch. Khi đường nhanh vượt qua đường chậm từ dưới, một tín hiệu mua được tạo ra. Khi đường nhanh vượt qua dưới đường chậm từ trên, một tín hiệu bán được tạo ra.

Cuối cùng, chiến lược sẽ chỉ đi vào thị trường khi RSI cho thấy điều kiện mua quá mức / bán quá mức và Stoch RSI tạo ra tín hiệu cùng một lúc.

Phân tích lợi thế

Chiến lược kết hợp các lợi thế của cả chỉ số RSI và Stoch RSI, tính đến cả xu hướng thị trường tổng thể và các thay đổi chi tiết để tạo ra các tín hiệu giao dịch đáng tin cậy hơn, tránh các tín hiệu sai không cần thiết.

Chỉ số RSI có thể xác định hiệu quả liệu thị trường có bị mua quá mức hay bán quá mức, tránh theo đuổi đỉnh và đáy. Stoch RSI kiểm tra sự thay đổi động lực của chỉ số RSI để nắm bắt các điểm chuyển đổi kịp thời. Sự kết hợp đảm bảo cả độ tin cậy của các tín hiệu giao dịch và thời gian vào đúng.

Ngoài ra, các bộ lọc thời gian và giá được thêm vào để giảm thêm khả năng giao dịch sai lầm và tăng cường độ vững chắc của toàn bộ chiến lược.

Phân tích rủi ro

Chiến lược này chủ yếu dựa trên chỉ số RSI và Stoch RSI, nhạy cảm với những thay đổi của thị trường. Điều này có thể dẫn đến các tín hiệu sai thường xuyên và sự khác biệt giữa các chỉ số, dẫn đến tần suất giao dịch cao và lợi nhuận không ổn định.

Để giảm thiểu các rủi ro như vậy, các tham số của RSI và Stoch RSI có thể được điều chỉnh để phù hợp hơn với các đặc điểm thị trường và có thể thêm nhiều bộ lọc.

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

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

  1. Thêm stop loss di chuyển để khóa lợi nhuận và giảm lỗ.

  2. Tối ưu hóa các thông số RSI và Stoch RSI để phù hợp với các giai đoạn và sản phẩm khác nhau.

  3. Thêm thêm các bộ lọc như khung thời gian lớn hơn và tần suất giao dịch thấp hơn.

  4. Bao gồm các chỉ số khác để xác minh tín hiệu để tránh lỗi.

  5. Tối ưu hóa backtest cho sự kết hợp thông số tốt nhất.

Kết luận

Chiến lược này tận dụng điểm mạnh của cả RSI và Stoch RSI để thiết lập một khuôn khổ giao dịch hai hướng, cung cấp việc tạo tín hiệu toàn diện và đáng tin cậy hơn so với sử dụng một chỉ số duy nhất, tránh nhiều tín hiệu sai không cần thiết. Với tối ưu hóa hơn nữa, nó có thể trở thành một chiến lược giao dịch định lượng có lợi nhuận ổn định.


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

//@version= 2
strategy("RSI+STOCHRSI v2", overlay=true)
lengthrsi = input(10)
overSold = input( 20 )
overBought = input( 70 )
price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
srsilow=input(20)
srsiup=input(80)






yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(d,k)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(d,k) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Thêm nữa