
Chiến lược này dựa trên tín hiệu oversold của chỉ số RSI tương đối mạnh, mua ở mức thấp trong ngày, sau đó thiết lập dừng và dừng ở tỷ lệ phần trăm cố định, đo lại xác suất khi chiến lược chạm vào các điểm dừng và dừng. Ý tưởng chính là sử dụng cơ hội đảo ngược khi chỉ số RSI vượt quá, can thiệp vào mức thấp trong ngày và lấy lợi nhuận ngắn hạn từ sự đảo ngược. Đồng thời, sử dụng đường trung bình di chuyển để lọc xu hướng, chỉ khi giá cao hơn đường trung bình.
Chiến lược RSI2 cố gắng nắm bắt cơ hội đảo ngược trong ngày sau khi chỉ số RSI bị vượt quá, kiểm soát rủi ro bằng cách thiết lập mức dừng dừng phần trăm cố định, đồng thời sử dụng đường trung bình chu kỳ để lọc tín hiệu nghịch cảnh. Ý tưởng chiến lược này đơn giản, phù hợp với các nhà giao dịch đầu cơ ngắn. Nhưng nó cũng có một số hạn chế, chẳng hạn như thiếu xu hướng, khó mua chính xác ở điểm thấp nhất, dừng dừng cố định cũng hạn chế không gian thu nhập chiến lược trong tương lai.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rajk1987
//@version=5
strategy("RSI2 strategy Raj", overlay=true, margin_long=100, margin_short=100)
rsi_len = input.int( 2, title = "RSI Length", group = "Indicators")
rsi_os = input.float(10, title = "RSI Oversold", group = "Indicators")
rsi_ob = input.float(90, title = "RSI OverBrought", group = "Indicators")
max_los = input.float(3,title = "Max Loss Percent", group = "Indicators")
tar_per = input.float(6,title = "Target Percent",group = "Indicators")
//Get the rsi value of the stock
rsi = ta.rsi(close, rsi_len)
sma = ta.sma(close,200)
var ent_dat = 0
var tar = 0.0
var los = 0.0
var bp = 0.0
if ((close > sma) and (rsi < rsi_os))
strategy.entry("RSI2 Long Entry", strategy.long,1)
ent_dat := time(timeframe = timeframe.period)
if(ent_dat == time(timeframe = timeframe.period))
bp := low //high/2 + low/2
tar := bp * (1 + (tar_per/100))
los := bp * (1 - (max_los/100))
if (time(timeframe = timeframe.period) > ent_dat)
strategy.exit("RSI2 Exit", "RSI2 Long Entry",qty = 1, limit = tar, stop = los, comment_profit = "P", comment_loss = "L")
//plot(rsi,"RSI")
//plot(bp,"BP")
//plot(tar,"TAR")
//plot(los,"LOS")