Estratégia de negociação de reversão do rácio de volume

Autora:ChaoZhang, Data: 2024-01-12 12:08:05
Tags:

img

Resumo

A Estratégia de Reversão de Ratio de Volume (VR Reversal Strategy) é uma estratégia de reversão de curto prazo baseada em indicador de volume.

Estratégia lógica

O indicador central da estratégia de reversão da VR é a Volume Ratio (referida como VR para abreviar), que representa a relação entre o volume de negociação do período em curso e o volume médio de negociação durante um período de tempo.

VR = Volume de corrente / SMA (Volume, N)

Onde N representa o parâmetro Length, o volume de negociação do ciclo em curso dividido pela média móvel simples do volume de negociação ao longo do ciclo Length.

Quando VR > limiar, é considerado como um sinal de participação dos principais players. Neste momento, combinado com a ruptura do preço para cima ou para baixo, são gerados sinais de compra e venda.

A estratégia também introduz um indicador de julgamento direcional auxiliar dir. Ele compara o preço de encerramento do ciclo atual com o de N ciclos atrás. Maior que 1 é uma direção de alta e menor que 1 é uma direção de baixa.

Quando VR é superior ao limiar especificado, se dir=1, é gerado um sinal de compra.

Vantagens

A maior vantagem da estratégia de reversão da VR é capturar a chance de reversão súbita do preço.

Outras vantagens incluem:

  • Usando o indicador de volume, o julgamento dos principais intervenientes é relativamente fiável
  • Algoritmo simples, fácil de entender e implementar
  • Parâmetros flexíveis configuráveis, melhor adaptabilidade

Riscos

Embora a estratégia de reversão da RV tenha algumas vantagens, ainda há alguns riscos a serem observados:

  • Como uma estratégia de curto prazo, há alguma aleatoriedade com curva de retorno flutuante
  • O indicador VR pode não determinar com precisão os principais intervenientes
  • É necessário selecionar produtos subjacentes adequados, menos eficazes se a flutuação for leve

Além disso, deve-se evitar a troca excessiva, deve-se definir o stop loss para controlar a perda única, etc.

Sugestões de otimização

A estratégia de reversão da realidade virtual pode ser melhorada.

  • Combinar mais indicadores para julgamento para evitar falhas de RV
  • Adicionar lógica stop loss, pode referir-se indicador ATR para definir a faixa stop loss
  • Otimizar os parâmetros, em especial o parâmetro do ciclo de comprimento para diferentes ciclos e produtos
  • Ajustar o limiar de RV positiva e negativa com base nos resultados dos backtests para garantir a robustez

Conclusão

A estratégia de negociação de reversão VR é uma estratégia quantitativa de curto prazo simples e fácil de implementar. Captura oportunidades de reversão capturando sinais de principais players. A estratégia é particularmente adequada para produtos voláteis com reversão óbvia, mas também é necessário controle de risco.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Volume Ratio_30min", shorttitle="VR_30min")//,initial_capital=1000)

// User Input ------------------------------------------------------------------
len = input(20, title="Length", minval=1)
threshold  = input(3,step=0.05, title="閾値")

// Volume Caliculetion ---------------------------------------------------------
vol = volume
sma=sma(volume,len)
vrs = vol / sma

// Direction -------------------------------------------------------------------
dirtime=input(1,"direction picker # bars")
dir=if close/close[dirtime] > 1
    1
else
    -1

// Plot ------------------------------------------------------------------------
plot(vrs, title="VRS",  color=color.green, transp=0)
hline(1, title="baseline")
plot(threshold, color=color.white)

// ️⚠️⚠️Logic -----------------------------------------------------------------

long    = vrs > threshold  and dir == 1
short   = vrs > threshold  and dir ==-1

// Back Test Fnction -----------------------------------------------------------
start = timestamp(input(2019, "Start Year"), input(1, "Start Month"), input(1, "Start Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "End Month"), input(1, "End Day"), 0, 0)
_testPeriod() => true

// Order -----------------------------------------------------------------------
if _testPeriod()
    if long
        strategy.entry("Long", strategy.long)
    if short
        strategy.entry("Short", strategy.short)


Mais.