
A estratégia baseia-se em um sinal de oversold de um indicador relativamente forte (RSI), comprando no mínimo do dia e depois definindo um stop e um stop de porcentagem fixa, retomando a probabilidade de que a estratégia toque o stop e o stop. A ideia principal é aproveitar as oportunidades de reversão do RSI no momento do oversold, intervir no mínimo do dia e aproveitar os benefícios de reversão no curto prazo.
A estratégia RSI2 tenta capturar a oportunidade de reversão do dia após o excesso de RSI, para controlar o risco através da configuração de uma parada de parada de percentual fixo, enquanto o uso de uma linha média de longo período para filtrar o sinal de contraste. O conceito da estratégia é simples e adequado para os comerciantes de especulação de curta linha. Mas também tem certas limitações, como a falta de julgamento de tendência, é difícil comprar com precisão no mínimo, e a parada de parada fixa também limita o espaço de receita da estratégia no futuro.
/*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")