Chiến lược kết hợp RSIndex và trung bình động

Tác giả:ChaoZhang, Ngày: 2024-01-04 17:46:07
Tags:

img

Tổng quan

Chiến lược này tạo ra tín hiệu giao dịch bằng cách tính toán đường trung bình động và chỉ số sức mạnh tương đối (RSI) của giá để xác định các điểm mua và bán. Nó phát hành tín hiệu mua và bán khi chỉ số RSI đạt mức mua quá mức hoặc bán quá mức. Trong khi đó, nó sử dụng Bollinger Bands để xác định mức hỗ trợ và kháng cự của giá để lọc ra một số tín hiệu giao dịch ồn ào.

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

Chiến lược này chủ yếu dựa trên sự kết hợp của chỉ số RSI và nhiều đường trung bình động với các khoảng thời gian khác nhau. Cụ thể, nó tính toán nhiều MA từ 1 ngày đến 200 ngày và chỉ số RSI. Nó tạo ra tín hiệu mua khi giá vượt qua mức trung bình động 200 ngày và chỉ số RSI giảm xuống dưới 10. Nó tạo ra tín hiệu bán khi giá vượt qua mức trung bình động 5 ngày và MA 1 ngày vượt qua mức MA 3 ngày.

Chiến lược này cũng sử dụng Bollinger Bands để xác định mức hỗ trợ và kháng cự của giá. Bollinger Bands bao gồm một dải giữa, một dải trên và một dải dưới. Khi giá tiếp cận dải trên, cổ phiếu được coi là được đánh giá quá cao. Khi giá tiếp cận dải dưới, cổ phiếu được coi là bị đánh giá thấp. Vì vậy, Bollinger Bands có thể đánh giá hiệu quả giá trị tương đối của cổ phiếu.

Phân tích lợi thế

  1. Sử dụng chỉ số RSI để xác định mức mua quá mức và bán quá mức là một chiến lược kinh tế học cổ điển có thể nắm bắt các cơ hội đảo ngược giá.

  2. Kết hợp nhiều đường MA có thể tăng cường chức năng lọc và tránh bị mắc kẹt.

  3. Thêm Bollinger Bands để xác định mức hỗ trợ và kháng cự có thể tránh xa việc theo đuổi giá cao và theo đuổi giá thấp, lọc ra các tín hiệu giao dịch ồn ào.

Phân tích rủi ro

  1. Các chỉ số RSI có thể dễ dàng tạo ra các tín hiệu sai và cần được kết hợp với hành động giá để xác định.

  2. Các đường MA thường được sử dụng để xác định xu hướng, nhưng sự khác biệt giữa giá và MA có thể đánh giá sai các điểm chuyển đổi.

  3. Xác định mức hỗ trợ và kháng cự bằng cách sử dụng các đường ray trên và dưới của Bollinger Bands có các tính năng chậm và có thể không xác định chính xác các điểm cực cao và cực thấp tạm thời.

  4. Chiến lược này áp dụng thời gian giữ tương đối ngắn và có thể dễ dàng bị xáo trộn bởi tiếng ồn thị trường ngắn hạn.

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

  1. Có thể thử nghiệm kéo dài thời gian giữ phù hợp, chẳng hạn như thay đổi đường đóng thành đường 10 ngày hoặc 20 ngày.

  2. Có thể kiểm tra điều chỉnh các thông số RSI, chẳng hạn như thay đổi thành các thông số (3,5) hoặc (2,8).

  3. Có thể cố gắng tăng các thông số Bollinger Bands để có được khoảng thời gian hỗ trợ và kháng cự rõ ràng hơn.

  4. Có thể thử kết hợp các chỉ số khác với RSI, chẳng hạn như chỉ số KDJ, chỉ số MACD, v.v.

  5. Có thể kiểm tra sự kết hợp của RSI và chỉ số OBV.

Tóm lại

Chiến lược này tương đối cổ điển và mạnh mẽ trong tổng thể, tận dụng các chỉ số khác nhau để làm cho tín hiệu giao dịch chính xác và đáng tin cậy hơn. Ngoài ra còn có một số hướng cần tối ưu hóa.


/*backtest
start: 2023-12-04 00:00:00
end: 2024-01-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Created by ChrisMoody
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="_CM_RSI_2_Strat_Low", shorttitle="_CM_RSI_2_Strategy_Lower", overlay=false)
src = close, 

//RSI CODE
up = rma(max(change(src), 0), 2)                
down = rma(-min(change(src), 0), 2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//Criteria for Moving Avg rules
ma1 = sma(close,1)
ma2 = sma(close,2)
ma3 = sma(close,3)
ma4 = sma(close,4)
ma5 = sma(close,5)
ma6 = sma(close,6)
ma7 = sma(close,7)
ma8 = sma(close,8)
ma9 = sma(close,9)
ma200= sma(close, 120)

//Rule for RSI Color
col = close > ma200 and close < ma5 and rsi < 10 ? lime : close < ma200 and close > ma5 and rsi > 90 ? red : silver

plot(rsi, title="RSI", style=line, linewidth=4,color=col)
plot(100, title="Upper Line 100",style=line, linewidth=3, color=aqua)
plot(0, title="Lower Line 0",style=line, linewidth=3, color=aqua)

band1 = plot(90, title="Upper Line 90",style=line, linewidth=3, color=aqua)
band0 = plot(10, title="Lower Line 10",style=line, linewidth=3, color=aqua)
fill(band1, band0, color=silver, transp=90)

///////////// RSI + Bollinger Bands Strategy


if (close > ma200 and rsi < 10 and rsi >1)
    strategy.entry("RSI_2_L", strategy.long, comment="Bullish")
if (close < ma200 and rsi > 90 and rsi <98)
    strategy.entry("RSI_2_S", strategy.short, comment="Bearish")


strategy.close("RSI_2_L", when = close > ma5 and ma1 < ma3)
strategy.close("RSI_2_S", when = close < ma5 and ma1 > ma2)


Thêm nữa