Chiến lược này được gọi là chiến lược mua bán bán gấp đôi dựa trên chỉ số RSI. Chiến lược này sử dụng chỉ số RSI và chỉ số RSI Stoch cùng lúc để đánh giá tình trạng mua bán quá mức, tạo ra tín hiệu giao dịch đáng tin cậy hơn.
Chỉ số RSI phản ánh mức giá quá mua quá bán. RSI cao hơn 70 là quá mua, thấp hơn 30 là quá bán. Chỉ số RSI của Sttoch xem liệu chỉ số RSI có đang ở trạng thái quá mua hay quá bán hay không.
Logic giao dịch của chiến lược này:
Khi chỉ số RSI vượt qua đường mua quá mức mà người dùng đã thiết lập, nó sẽ thể hiện việc mua quá mức và xem xét việc tháo lỗ;
Khi chỉ số RSI vượt qua đường bán quá mức do người dùng thiết lập, nó sẽ cho biết người mua đã bán quá mức và đang cân nhắc mua nhiều hơn;
Đồng thời, Stoch RSI cũng phải hiển thị tín hiệu mua hoặc bán quá mức để xác nhận tín hiệu mua tương ứng.
Sự kết hợp của hai điều kiện này có thể lọc các tín hiệu không chắc chắn hơn và tránh các đột phá giả.
Lợi thế của chiến lược này là sử dụng các chỉ số phái sinh khác nhau của RSI để xác định chính xác hơn các khu vực quá mua quá bán. Tuy nhiên, cần lưu ý đến rủi ro phù hợp với đường cong do quá tối ưu hóa. Chiến lược dừng lỗ cũng rất cần thiết.
Nhìn chung, việc sử dụng các cặp chỉ số cần cân nhắc cẩn thận. Sử dụng hợp lý có thể làm tăng hiệu quả, nhưng cũng có thể dẫn đến nguy cơ tối ưu hóa quá mức.
/*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)