A estratégia do indicador de volume relativo

Autora:ChaoZhang, Data: 2023-12-20 15:12:56
Tags:

img

Estratégia geral

Trata-se de uma estratégia quantitativa de negociação baseada no índice de força relativa (RSI) e no indicador de volume relativo.

Estratégia lógica

A estratégia incorpora dois indicadores: Índice de Força Relativa (RSI) e Volume Relativo (RVOL). O RSI julga os níveis de sobrecompra / sobrevenda. RSI abaixo de 30 sugere sobrevenda e RSI acima de 70 sugere sobrecompra. RVOL captura aumentos de volume em comparação com a média recente. Quando o RVOL está acima de um limiar, indica forte pressão de compra / venda.

A lógica da estratégia é: ir longo quando o RSI mostra sobrecompra (acima do limiar) E o RVOL dispara para cima; ir curto quando o RSI mostra sobrevenda (abaixo do limiar) E o RVOL dispara para cima.

Análise das vantagens

A maior vantagem desta estratégia é localizar a parte mais agressiva de uma tendência, combinando o sinal de sobrecompra / sobrevenda do RSI e o sinal de alto volume relativo.

Em comparação com o uso do RSI sozinho, esta estratégia incorpora informações de volume para evitar a entrada no mercado com liquidez insuficiente.

Análise de riscos

O maior risco desta estratégia é a possibilidade de RSI dar sinais falsos. Quando o mercado está variando, o RSI pode frequentemente cruzar dentro / fora das zonas OB / OS e gerar sinais falsos. Além disso, esta estratégia é sensível a mudanças de volume. Instrumentos de baixa liquidez podem descontar a lucratividade.

Para mitigar os riscos, os parâmetros do RSI podem ser ajustados, como aumentar o período de média ou elevar o limiar para RVOL.

Orientações de otimização

As potenciais otimizações incluem:

  1. Adicionar métricas de liquidez para evitar instrumentos ilíquidos;

  2. Adicionar métricas de volatilidade às negociações apenas quando a volatilidade aumentar;

  3. Criar mecanismos para evitar falsas rupturas, por exemplo, volume de monitorização;

  4. Tornar o stop loss mais rigoroso, para limitar os drawdowns;

  5. Ajuste de parâmetros baseado em backtests para encontrar configurações ótimas.

Conclusão

A estratégia de volume relativo consegue localizar pontos de aumento do volume dentro das zonas OB/OS incorporando o RSI e o volume relativo, tornando-se uma estratégia eficaz de captura de tendências.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gary_trades
//This script is a basic concept to catch breakout moves utilising a spike in relative volume when the RSI is high (for longs) or when the RSI is low (for shorts).
//Drawdown is typically low as it exits out of the trade once the RSI returns back to "normal levels".

//@version=4
strategy(title="Relative Volume & RSI Pop", shorttitle="VOL & RSI Pop", overlay=false, precision=2, margin_long=100, margin_short=100)

//RSI
RSIlength = input(14, title="RSI Period")
RSItop = input(70, title="RSI buy", minval= 69, maxval=100)
RSIbottom = input(35, title="RSI short", minval= 0, maxval=35)
price = close
vrsi = rsi(price, RSIlength)
RSIco = crossover(vrsi, RSItop)
RSIcu = crossunder(vrsi, RSIbottom)
plot(vrsi, "RSI", color=color.purple)
band1 = hline(70, "Upper Band", color=#C0C0C0)
bandm = hline(50, "Middle Band", color=color.new(#C0C0C0, 50))
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=color.purple, transp=90, title="Background")

//RELATIVE VOLUME
RVOLlen = input(14, minval=1, title="RV Period")
av = sma(volume, RVOLlen)
RVOL = volume / av
RVOLthreshold = input(1.5,title="RV Threshold", minval=0.5, maxval=10)

//TRADE TRIGGERS
LongCondition = RSIco and RVOL > RVOLthreshold
CloseLong = vrsi < 69

ShortCondition = RSIcu and RVOL > RVOLthreshold
CloseShort = vrsi > 35

if (LongCondition)
    strategy.entry("Long", strategy.long)
    
strategy.close("Long", when = CloseLong)    

if (ShortCondition)
    strategy.entry("Short", strategy.short)
    
strategy.close("Short", when = CloseShort)   


Mais.