Estratégia de negociação de quebra de volatilidade


Data de criação: 2023-12-11 14:20:48 última modificação: 2023-12-11 14:20:48
cópia: 1 Cliques: 638
1
focar em
1621
Seguidores

Estratégia de negociação de quebra de volatilidade

Visão geral

A estratégia de negociação de ruptura de volatilidade é uma estratégia baseada em ações individuais de preços. Ela desencadeia sinais de compra e venda através da análise de mudanças no preço e volume de transações. A estratégia também pode ser usada em combinação com alertas para desencadear ordens em outras bolsas ou sistemas.

Princípio da estratégia

A estratégia determina o movimento e a força dos preços através da análise dos preços de fechamento, abertura, máximo e mínimo da linha K.

Especificamente, analisa se o preço de fechamento das 3 linhas K mais recentes está continuamente acima ou abaixo do preço de abertura. Se assim for, indica que o preço está em uma ruptura contínua para cima ou para baixo, produzindo uma tendência.

Além disso, a estratégia também calcula o volume máximo de transações em um determinado período. Se o volume de transações da linha K atual excede o valor máximo do período mais recente, o volume de transações é amplificado, refletindo uma grande força de transação no mercado.

A estratégia gerou um sinal de compra ou venda, ao mesmo tempo em que o preço produziu três rupturas consecutivas da linha K e aumentou o volume de transações.

Vantagens estratégicas

Esta é uma estratégia simples e eficaz que utiliza a ação dos preços e os sinais de volume de transação.

  1. Princípios claros, fáceis de entender e de implementar
  2. - Alta sensibilidade a situações de emergência, capaz de capturar as mudanças no mercado em tempo hábil
  3. Basta analisar as linhas K básicas e os dados de volume de transação, sem algoritmos complexos
  4. Parâmetros podem ser ajustados de forma flexível para diferentes variedades e ciclos
  5. O custo é baixo e é adequado para investidores de capital pequeno e médio

Análise de Riscos

A estratégia também apresenta alguns riscos potenciais:

  1. A falta de previsão sobre a evolução dos preços, uma certa cegueira
  2. Os sinais de disparo errados são mais sensíveis e podem aumentar o número de transações sem sentido.
  3. É fácil criar sinais errados em situações de balanço.
  4. Sem medidas de contenção de prejuízos, há risco de expansão dos prejuízos

Para controlar esses riscos, pode-se considerar a inclusão de stop loss móvel, combinações de parâmetros de otimização ou uso em combinação com outros indicadores ou estratégias.

Direção de otimização

Esta é uma estratégia básica, mas ainda há muito espaço para otimização, principalmente no sentido de:

  1. Aumentar as estratégias de stop loss para controlar os prejuízos
  2. Parâmetros de otimização para mais variedades e ciclos
  3. Adicionar outros indicadores ao sinal de filtragem
  4. Combinação com estratégias de acompanhamento de tendências para ajuste automático de tendências
  5. Combinação de algoritmos de aprendizagem de máquina para otimizar parâmetros dinâmicos e sinais
  6. Adicionar módulos de pesquisa quantitativa e de feedback para evoluir e otimizar as estratégias

Resumir

Esta estratégia é, em geral, uma estratégia muito prática baseada na ideia de ação de preços. Ela possui vantagens como participação, facilidade de compreensão e baixo custo de implementação.

Código-fonte da estratégia
/*backtest
start: 2022-12-04 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)

int signal_hh = 0
int signal_ll = 0

if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
    signal_hh := 1

if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
    signal_ll := 1

plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)

int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)

for i = vol_length to 1
    if volume[i] > max_volume
        max_volume := volume[i]

if volume[0] > max_volume
    signal_vol := 1

plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)

int signal_buy = 0
int signal_sell = 0

if signal_hh and signal_vol
    signal_buy := 1
    label.new(bar_index, high, "B", color=color.green)
    strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)

if signal_ll and signal_vol
    signal_sell := 1
    label.new(bar_index, low, "S", color=color.red)
    strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)

//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)

//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)