Chiến lược mua quá nhiều/bán quá nhiều dựa trên chỉ số RSI

Tác giả:ChaoZhang, Ngày: 2023-09-13 16:58:55
Tags:

Chiến lược này được gọi là Chiến lược mua quá nhiều / bán quá nhiều dựa trên chỉ số RSI. Nó sử dụng cả chỉ số RSI và chỉ số Stoch RSI để xác định các điều kiện mua quá nhiều và bán quá nhiều cho các tín hiệu giao dịch đáng tin cậy hơn.

Chỉ số RSI phản ánh mức mua quá mức / bán quá mức trong giá. Chỉ số RSI trên 70 cho thấy trạng thái mua quá mức, trong khi dưới 30 là bán quá mức. Chỉ số RSI Stoch cho thấy liệu chỉ số RSI đã bước vào khu vực mua quá mức hoặc bán quá mức.

Logic giao dịch là:

Khi RSI vượt qua đường mua quá mức được xác định bởi người dùng, nó báo hiệu các điều kiện mua quá mức để xem xét các giao dịch ngắn.

Khi chỉ số RSI giảm xuống dưới đường bán quá mức do người dùng xác định, nó đánh dấu các điều kiện bán quá mức để xem xét các giao dịch dài.

Trong khi đó, Stoch RSI cũng cần hiển thị các tín hiệu mua quá mức hoặc bán quá mức để xác nhận các tín hiệu nhập cảnh tương ứng.

Điều kiện kép này kết hợp để lọc các tín hiệu mơ hồ hơn và tránh các sự đột phá sai.

Lợi thế của chiến lược này là sử dụng các chỉ số dẫn xuất khác nhau của RSI để đánh giá phạm vi mua quá mức / bán quá mức chính xác hơn.

Tóm lại, sự kết hợp của các chỉ số cần cân bằng cẩn thận. Việc sử dụng hợp lý có thể cải thiện kết quả nhưng cũng có thể mang lại rủi ro tối ưu hóa quá mức. Các nhà giao dịch vẫn cần phán đoán linh hoạt.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("test1","t1",overlay=true, default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=200, currency=currency.USD)
//user input
k_param = input(title = "k length", type = input.integer, defval = 14)
d_param = input(title = "d length", type = input.integer, defval = 3)
rsi_param = input(title = "RSI", type = input.integer, defval = 5)
upper = input(title = "over brought", type = input.integer, defval = 80)
lower = input(title = "over sold", type = input.integer, defval = 20)

//calculation
rsi = rsi(close,rsi_param)
stochastic = 100*(rsi - lowest(rsi,k_param))/(highest(rsi,k_param)-lowest(rsi,k_param))
SMA = sma(stochastic,d_param)

//DRAW
plot(upper,color = color.blue,linewidth = 2, title ="超买")
plot(lower,color = color.blue,linewidth = 2, title ="超卖")
plot(rsi,color = rsi>upper ?color.red:rsi<lower? color.green:color.black, linewidth=2,title ="ris超买超卖")
plot(stochastic,color = color.purple,title="震荡指数")
plot(SMA, color = color.orange,title="移动平均")

//trading
shortposition = crossover(rsi,upper)
longposition = crossunder(rsi,lower)
strategy.entry("卖",false,when =(shortposition))
strategy.entry("买",true,when = (longposition))
strategy.exit("止盈",profit = close*0.013/syminfo.mintick)

Thêm nữa