
Esta estratégia permite comprar e vender de forma automática, combinando a linha de compra e a linha de venda do indicador RSI com um stop loss móvel. Um sinal de compra é emitido quando o indicador RSI está abaixo da linha de sinal de compra; um sinal de venda é emitido quando o indicador RSI está acima da linha de sinal de venda.
A estratégia baseia-se principalmente na região de sobrecompra e sobrevenda do RSI para determinar a hora de comprar e vender. Quando o RSI é inferior a 20, é considerado um excesso de venda, e quando é superior a 80, é considerado um excesso de compra. A estratégia define três linhas de entrada de baixa RSI, 20, 18, 14 respectivamente.
A estratégia completa de determinar a hora de comprar e vender através da zona de sobrecompra e sobrevenda do indicador RSI, e definir um stop loss para bloquear os lucros e controlar o risco, é uma estratégia de negociação quantitativa típica baseada em indicadores técnicos.
A estratégia tem as seguintes vantagens:
Usando o RSI, um indicador clássico e amplamente comprovado, para determinar pontos de compra e venda, é possível capturar com eficiência os momentos de sobrecompra e sobrevenda.
Configure várias linhas de compra, que podem ser compradas em lotes a preços mais baixos, reduzindo o custo de compra.
A configuração de stop loss móvel para controlar perdas e bloquear lucros permite um controle eficaz do risco.
A lógica da estratégia é simples e clara, fácil de entender e modificar, e fácil de verificar em campo.
Os parâmetros do indicador RSI podem ser personalizados e podem ser ajustados para diferentes variedades e mercados.
A estratégia também apresenta alguns riscos:
A estratégia de um único indicador é propensa a produzir falsos sinais, e os sinais emitidos pelo RSI não são necessariamente precisos.
Não há uma estratégia de contenção, há um risco de expansão de perdas.
Existe o risco de um colapso de uma zona de sobrevenda, especialmente em situações de turbulência.
Em situações extremas, o preço pode cair diretamente acima da linha de stop loss e não parar.
A solução é:
A partir de uma combinação de vários indicadores, para evitar falsos sinais.
A estratégia de adição de zonas ou sar para o bloqueio.
Ajustar os parâmetros do RSI para reduzir o intervalo.
Paragem dinâmica ou intervenção humana oportuna.
A estratégia pode ser otimizada em várias direções:
Combine com outros indicadores para formar uma combinação de indicadores, evitando falsos sinais. As combinações mais comuns são: RSI + KDJ, RSI + MACD, etc.
Aumentar as estratégias de parada, como paradas de seguimento de tendências, paradas de tempo, canais de parada móveis, etc.
Optimização de parâmetros, ajustando os parâmetros do RSI para diferentes variedades e períodos.
Derivações de estratégias, como estratégias de inversionismo, estratégias de entrada em série e outras combinações.
A redução apropriada do intervalo de compra e venda para evitar falsos sinais de compra e venda excessivos.
A estratégia como um todo é uma estratégia de negociação quantitativa típica baseada em indicadores RSI, através da configuração de sinais de compra e venda. A estratégia é simples, fácil de entender e fácil de executar.
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Buy/Sell Strategy", overlay=false)
// Input for RSI period
rsiPeriod = input(12, title="RSI Period")
// Input for RSI levels
rsiBuyLevel1 = 20
rsiBuyLevel2 = 18
rsiBuyLevel3 = 14
rsiSellLevel = input(83, title="RSI Sell Level")
// Input for stop loss percentage
stopLossPercent = input(5, title="Stop Percentage")
// Calculate RSI
rsiValue = ta.rsi(close, rsiPeriod)
// Buy Conditions: RSI below buy levels
buyCondition1 = close[1] > close and rsiValue <= rsiBuyLevel1
buyCondition2 = close[1] > close and rsiValue <= rsiBuyLevel2
buyCondition3 = close[1] > close and rsiValue <= rsiBuyLevel3
// Sell Conditions: RSI above sell level or stop loss
sellCondition = (rsiValue > rsiSellLevel )//or ( close[1] < close * (1 - stopLossPercent / 100))
// Calculate position size based on 10% of current equity
positionSize = strategy.equity * 0.8 / close
// Plot RSI on the chart
plot(rsiValue, title="RSI", color=color.blue)
// Plot horizontal lines for buy and sell levels
hline(rsiBuyLevel1, "Buy Level 1", color=color.green)
hline(rsiBuyLevel2, "Buy Level 2", color=color.green)
hline(rsiBuyLevel3, "Buy Level 3", color=color.green)
hline(rsiSellLevel, "Sell Level", color=color.red)
// Execute Buy and Sell orders with stop loss
strategy.entry("Buy1", strategy.long, when = buyCondition1, qty = positionSize,stop=close * stopLossPercent / 100)
strategy.entry("Buy2", strategy.long, when = buyCondition2, qty = positionSize,stop=close * stopLossPercent / 100)
strategy.entry("Buy3", strategy.long, when = buyCondition3, qty = positionSize,stop=close * stopLossPercent / 100)
strategy.close("Buy1", when = sellCondition)
strategy.close("Buy2", when = sellCondition)
strategy.close("Buy3", when = sellCondition)