Este artigo introduz uma estratégia quantitativa de negociação para longo com base no Índice de Força Relativa (RSI) e no trailing stop. A estratégia usa o indicador RSI para determinar as condições de mercado sobrecompradas e sobrevendidas, entrando em posições longas quando o mercado está sobrevendido e fechando posições quando está sobrecomprado. Ao mesmo tempo, a estratégia emprega uma parada de trailing baseada em porcentagem para controlar o risco. Esta é uma estratégia clássica de tendência para capturar tendências de alta em mercados fortes.
O núcleo desta estratégia é o Relative Strength Index (RSI). O RSI é um oscilador de momento usado para medir a magnitude das mudanças de preço ao longo de um período de tempo.
RS = Average gain over N days / Average loss over N days
RSI = 100 - 100 / (1 + RS)
onde N é o período de tempo para o cálculo do RSI, normalmente definido em 14.
A lógica estratégica é a seguinte:
A estratégia tenta entrar em posições no início de uma transição do mercado de baixa para alta e sair no final de um mercado de alta, a fim de capturar a principal tendência de alta.
Este artigo apresentou uma estratégia quantitativa de negociação para longo baseada em RSI e trailing stops. A estratégia usa sinais de sobrecompra e sobrevenda RSI para entrar e sair de posições, enquanto usa trailing stops baseados em porcentagem para controlar o risco. Esta é uma estratégia simples e prática de seguir tendências adequada para iniciantes aprenderem. No entanto, também tem algumas limitações, como mau desempenho em mercados de gama e falta de flexibilidade no gerenciamento de stop loss e posição. Para resolver essas deficiências, podemos otimizar a estratégia em aspectos como filtragem de tendência, gestão de stop loss dinâmica, gerenciamento de posição e cobertura de longo curto, a fim de obter retornos mais robustos.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Strategy (Long)", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = ta.rsi(price, length) co = ta.crossover(vrsi, overSold) cu = ta.crossunder(vrsi, overBought) // *** Signals *** enter_long = ta.crossover(vrsi, overSold) enter_short = ta.crossunder(vrsi, overBought) close_long = ta.crossunder(vrsi, overBought) close_short = ta.crossunder(vrsi, overBought) // *** Risk management *** entry_price = close percent_diff = input(5) stop_loss_price_long = (1 - percent_diff / 100.) * entry_price stop_loss_price_short = (1 + percent_diff / 100.) * entry_price // *** Positions *** if enter_long and strategy.position_size == 0 strategy.entry("Long", strategy.long) strategy.exit("SL Long", "Long", stop = stop_loss_price_long) if enter_short and strategy.position_size == 0 strategy.entry("Short", strategy.short, qty=.001) strategy.exit("SL short", "Short", stop = stop_loss_price_short) if close_long strategy.close("Long", "Exit Long") if close_short strategy.close("Short", "Exit Short")