
Esta estratégia é baseada em um indicador relativamente forte (RSI) e foi desenvolvida para uma estratégia de negociação de curto prazo, principalmente para negociação em um período de 15 minutos. A estratégia determina se o mercado está superando a sobrevenda, emitindo sinais de compra e venda através da computação do RSI.
O RSI é uma ferramenta de análise técnica para determinar se o mercado está sobrecomprando ou sobrevendendo, calculando o índice de oscilação dos preços em um determinado período de tempo. O índice RSI varia entre 0 e 100. Um valor abaixo de 30 indica que o ativo está sobrevendido, e um valor acima de 70 indica que o ativo está sobrecomprado.
Esta estratégia define o parâmetro do indicador RSI em 14 ciclos, a linha de overbought em 70 e a linha de overbought em 30. Quando o RSI atravessa 30 a partir da parte inferior, gera um sinal de compra, o que significa que o mercado se move de overbought para overhead; Quando o RSI atravessa 70 a partir da parte superior, gera um sinal de venda, o que significa que o mercado se move de overhead para overhead.
A maior vantagem desta estratégia é que as regras são simples e claras, fáceis de entender e implementar. O índice de força relativa é um indicador quantitativo clássico, amplamente utilizado para julgar o fenômeno de supercompra e supervenda do mercado. A estratégia em si não precisa prever o futuro movimento do mercado e os objetivos de preços.
Outra vantagem é a adaptabilidade da estratégia. A estratégia pode ser aplicada em qualquer variedade e em qualquer período de tempo, especialmente para capturar oscilações intercalares em linhas médias e curtas. Além disso, a estratégia só precisa otimizar três parâmetros: o ciclo RSI, a linha de supera compra e a linha de supera venda, o espaço para parâmetros é pequeno e é fácil de testar e otimizar para encontrar a melhor combinação de parâmetros.
O maior risco desta estratégia é que o tempo de posse é incerto. Quando o mercado está sobrecomprado ou sobrevendido por um longo período de tempo, isso pode levar a um longo período de posse da estratégia e sofrer maiores perdas.
Outro risco é que a frequência de negociação pode ser muito alta. Quando o mercado oscila para cima e para baixo perto da linha de superaquecimento do RSI, isso freqüentemente desencadeia um sinal de compra e venda, aumentando as taxas de negociação e os custos de deslizamento. Isso requer um ajuste apropriado dos parâmetros, ampliando a distância entre os intervalos de superaquecimento para reduzir as transações sem sentido.
A estratégia pode ser melhorada em alguns aspectos:
Optimizar os parâmetros do RSI, ajustar os parâmetros do ciclo e encontrar a melhor combinação de parâmetros
Aumentar a estratégia de stop loss e definir um stop loss e um stop loss razoáveis
Aumentar as condições de filtragem para evitar transações desnecessárias. Por exemplo, definir a amplitude mínima de flutuação, filtragem de volume de transação, etc.
Optimizar a utilização dos fundos, configurando o controlo de posições dinâmicas
Combinação com outros indicadores para melhorar a estabilidade estratégica
Esta estratégia é uma estratégia de negociação de linha curta simples e prática, baseada no indicador RSI. As regras de sinalização da estratégia são claras, fáceis de implementar, com alta utilização de capital, e é adequada para o mercado de captura de linha curta para o mercado de overbought e oversold para negociações negativas.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("RSI Strategy", overlay=true)
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
sl_inp = input(10.0, title='Stop Loss %')/100
tp_inp = input(1.0, title='Take Profit %')/100
haOpen = 0.0
haOpen := haOpen[1]
st_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
strategy.initial_capital =50000
orderSize = ((strategy.initial_capital * 1) / close)
if (not na(vrsi))
if (co)
strategy.order("RsiLE", strategy.long, orderSize, take_level, st_level, comment="RsiLE")
if (cu)
strategy.close("RsiLE")//strategy.entry("RsiSE", strategy.short, qty=orderSize, comment="RsiSE")
plotshape(not na(vrsi) and co and haOpen == 0.0, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="buy label", text="BUY", textcolor=color.white)
plotshape(not na(vrsi) and co and haOpen == 1.0, style=shape.labelup, location=location.belowbar, color=color.orange, size=size.tiny, title="buy label", text="INC", textcolor=color.white)
plotshape(not na(vrsi) and cu and haOpen == 1.0, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="sell label", text="SELL", textcolor=color.white)
if (not na(vrsi))
if (co)
haOpen := 1.0
if (cu)
haOpen := 0.0
//strategy.exit("Stop Loss/TP","RsiLE", stop=stop_level, limit=take_level)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)