O recurso está a ser carregado... Carregamento...

Estratégia de negociação de bandas de volatilidade de várias camadas

Autora:ChaoZhang, Data: 2024-07-31 14:08:36
Tags:SMAEMASMMAWMAVWMAATR

img

Resumo

A estratégia de negociação de banda de volatilidade de várias camadas é uma abordagem quantitativa de negociação baseada na volatilidade de preços. Esta estratégia utiliza várias bandas de volatilidade para identificar áreas de sobrecompra e sobrevenda no mercado, iniciando negociações quando os preços tocam essas áreas. A ideia central é estabelecer posições quando os preços se desviam da média e lucro quando eles revertem.

Princípios de estratégia

  1. Calculo da média móvel: a estratégia utiliza tipos de média móvel selecionáveis (SMA, EMA, SMMA, WMA, VWMA) para calcular a linha de base.

  2. Configuração das bandas de volatilidade: as bandas de volatilidade múltiplas são configuradas com base na linha de base, utilizando o desvio-padrão multiplicado por um fator.

  3. Níveis de Fibonacci: os níveis de retracement de Fibonacci (23,6%, 38,2%, 50%, 61,8%) são utilizados para subdividir as faixas de volatilidade, criando mais oportunidades de negociação.

  4. A taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação.

  5. Logic de entrada: as posições são estabelecidas quando o preço toca ou cruza uma faixa de volatilidade na direção correspondente.

  6. Scaling de posição: se o preço continuar a mover-se desfavorável, a estratégia aumenta a posição em níveis de faixa de volatilidade adicionais, incorporando o conceito de estratégia Martingale.

  7. Lógico de saída: Os lucros são obtidos quando o preço retorna à linha de base.

Vantagens da estratégia

  1. Entrada de vários níveis: Ao definir várias faixas de volatilidade e níveis de Fibonacci, a estratégia fornece mais oportunidades de negociação, capturando a volatilidade do mercado em diferentes níveis de preços.

  2. Alta flexibilidade: a estratégia permite aos utilizadores escolher diferentes tipos de médias móveis, períodos e parâmetros para se adaptarem a vários ambientes de mercado e instrumentos de negociação.

  3. Adaptação dinâmica: o recurso opcional de multiplicador dinâmico permite que a estratégia se ajuste automaticamente em função da volatilidade do mercado, aumentando a adaptabilidade.

  4. Gerenciamento de riscos: Ao aumentar as posições durante os movimentos adversos dos preços, a estratégia tenta reduzir o preço médio de entrada, aumentando a probabilidade de rentabilidade final.

  5. Conceito de reversão média: A estratégia é baseada na ideia de que os preços eventualmente retornarão à média, que tem um bom desempenho em muitos mercados e prazos.

  6. Personalização: Os utilizadores podem ajustar parâmetros como o tamanho das acções e os níveis de Fibonacci de acordo com as suas preferências de risco e estilo de negociação.

Riscos estratégicos

  1. Risco de perdas consecutivas: em mercados com tendências fortes, os preços podem atravessar continuamente múltiplas faixas de volatilidade, levando a aumentos consecutivos das posições e a acumular perdas significativas.

  2. Pressão sobre a gestão de capital: a ampliação de posições no estilo Martingale pode conduzir a um rápido aumento dos requisitos de capital, potencialmente excedendo a capacidade da conta.

  3. O risco de excesso de negociação: múltiplas faixas de volatilidade podem gerar sinais de negociação excessivos em mercados de gama, aumentando os custos de transação.

  4. Sensibilidade dos parâmetros: o desempenho da estratégia é altamente dependente das configurações dos parâmetros; parâmetros inadequados podem levar a um desempenho fraco.

  5. Risco de deslizamento e de liquidez: em mercados altamente voláteis, pode ocorrer deslizamento significativo, especialmente quando as posições são dimensionadas.

  6. Risco de retirada: Embora a estratégia vise reduzir os custos médios através da ampliação das posições, pode ainda enfrentar retiradas substanciais em condições de mercado extremas.

Orientações para a otimização da estratégia

  1. Introduzir filtros de tendência: adicionar indicadores de tendência de longo prazo para abrir posições apenas na direção da tendência, evitando frequentes negociações contrárias à tendência em tendências fortes.

  2. Dimensão dinâmica da posição: ajustar o número de ações negociadas com base no tamanho da conta e na volatilidade do mercado para melhor controlar o risco.

  3. Otimizar os mecanismos de saída: considerar a introdução de trailing stops ou stop-loss dinâmicos baseados na volatilidade para melhor garantir os lucros e controlar os riscos.

  4. Adicionar filtros de tempo: implementar restrições de janela de tempo de negociação para evitar períodos de alta volatilidade ou baixa liquidez.

  5. Integrar indicadores de sentimento do mercado: Incorporar indicadores de volatilidade como o VIX para ajustar os parâmetros da estratégia ou pausar a negociação durante períodos de alta volatilidade.

  6. Introduzir Machine Learning: utilizar algoritmos de machine learning para otimizar dinamicamente parâmetros, melhorando a adaptabilidade da estratégia às mudanças do mercado.

  7. Adicionar filtros fundamentais: Incorporar dados fundamentais para permitir a negociação apenas em condições fundamentais específicas, melhorando a qualidade do comércio.

Conclusão

A Estratégia de Negociação de Banda de Volatilidade de Múltiplas Camadas é um sistema de negociação complexo que combina análise técnica, teoria da probabilidade e gerenciamento de riscos. Ele tenta capturar lucros de flutuações de preços através de pontos de entrada de vários níveis e escalonamento de posições de estilo Martingale.

Para aplicar com sucesso esta estratégia, os traders precisam de uma compreensão profunda das características do mercado, configuração cuidadosa de parâmetros e implementação rigorosa de gerenciamento de riscos. Através da otimização contínua e backtesting, combinada com insights de mercado, esta estratégia tem o potencial de se tornar uma ferramenta de negociação eficaz. No entanto, dada sua complexidade e riscos potenciais, é aconselhável realizar testes simulados e avaliação de risco antes da negociação ao vivo.

Em geral, a estratégia de negociação de banda de volatilidade de várias camadas fornece uma estrutura interessante e desafiadora para os traders quantitativos. Sua aplicação bem sucedida requer habilidades de análise técnica, técnicas de gerenciamento de risco e otimização contínua da estratégia.


/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abtov

//@version=5
strategy("Spider Strategy", overlay=true)

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

stdev = input.int(56, "STDEV", group="Stdev")
mult = input.float(2.3, "Multiplier", group="Stdev")
ma_len = input.int(230, "Basis Length", group="Stdev")
ma_type = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Stdev")
auto_mult = input.bool(true, "Dynamic Mult.", group="Stdev")
basis_exit = input.bool(false, "Basis Exit", group="Stdev")

col_int = input.int(12, "Collective Value", group="Collective")
col_input = input.bool(true, "Collective Input", group="Collective")


fib1 = input.float(0.236, "Fibonacci Level 1", group = "Fibonacci")
fib2 = input.float(0.382, "Fibonacci Level 2", group = "Fibonacci")
fib3 = input.float(0.5, "Fibonacci Level 3", group = "Fibonacci")
fib4 = input.float(0.618, "Fibonacci Level 4", group = "Fibonacci")

atr_len = input.int(30, "ATR", group="ATR")
atr_bias = input.float(0.72, "Bias", group="ATR")

shares = input.int(1, "Shares Amount", group="Strategy")

if(col_input == true)
    stdev := col_int
    ma_len := col_int
    atr_len := col_int

if(auto_mult == true)
    mult := ma(ta.tr(true), atr_len, ma_type) * atr_bias


basis = ma(close, ma_len, ma_type)
lower = basis - stdev * mult
upper = basis + stdev * mult

lower2 = basis - stdev * mult * fib1
upper2 = basis + stdev * mult * fib1

lower3 = basis - stdev * mult * fib2
upper3 = basis + stdev * mult * fib2

lower4 = basis - stdev * mult * fib3
upper4 = basis + stdev * mult * fib3

lower5 = basis - stdev * mult * fib4
upper5 = basis + stdev * mult * fib4


var lowerAct = false
var lower2Act = false
var lower3Act = false
var lower4Act = false
var lower5Act = false

var upperAct = false
var upper2Act = false
var upper3Act = false
var upper4Act = false
var upper5Act = false


plot(upper, "limit short", color.red)
plot(upper2, "limit 1 short", color.red)
plot(upper3, "limit 2 short", color.red)
plot(upper4, "limit 3 short", color.red)
plot(upper5, "limit 4 short", color.red)
plot(basis, "basis", color.white)
plot(lower, "limit long", color.green)
plot(lower2, "limit 1 long", color.green)
plot(lower3, "limit 2 long", color.green)
plot(lower4, "limit 3 long", color.green)
plot(lower5, "limit 4 long", color.green)


if(lowerAct == false)
    if(close < lower)
        strategy.entry("long", strategy.long, shares)
        lowerAct := true
else
    if(low > basis)
        lowerAct := false


if(lower2Act == false)
    if(close < lower2)
        strategy.entry("long", strategy.long, shares)
        lower2Act := true
else
    if(low > basis)
        lower2Act := false


if(lower3Act == false)
    if(close < lower3)
        strategy.entry("long", strategy.long, shares)
        lower3Act := true
else
    if(low > basis)
        lower3Act := false


if(lower4Act == false)
    if(close < lower4)
        strategy.entry("long", strategy.long, shares)
        lower4Act := true
else
    if(low > basis)
        lower4Act := false


if(lower5Act == false)
    if(close < lower5)
        strategy.entry("long", strategy.long, shares)
        lower5Act := true
else
    if(low > basis)
        lower5Act := false





if(upperAct == false)
    if(close > upper)
        strategy.entry("short", strategy.short, shares)
        upperAct := true
else
    if(high < basis)
        upperAct := false


if(upper2Act == false)
    if(close > upper2)
        strategy.entry("short", strategy.short, shares)
        upper2Act := true
else
    if(high < basis)
        upper2Act := false


if(upper3Act == false)
    if(close > upper3)
        strategy.entry("short", strategy.short, shares)
        upper3Act := true
else
    if(high < basis)
        upper3Act := false


if(upper4Act == false)
    if(close > upper4)
        strategy.entry("short", strategy.short, shares)
        upper4Act := true
else
    if(high < basis)
        upper4Act := false


if(upper5Act == false)
    if(close > upper5)
        strategy.entry("short", strategy.short, shares)
        upper5Act := true
else
    if(high < basis)
        upper5Act := false


if((ta.crossover(close, basis) and basis_exit == true))
    strategy.close("short")
    strategy.close("long")

Relacionados

Mais.