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

Estratégias de negociação de faixa de flutuação

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

多层波动带交易策略

Resumo

A estratégia de negociação de faixa de flutuação multilayer é um método de negociação quantitativa baseado na volatilidade dos preços. A estratégia usa várias flutuações para identificar áreas de supercompra e supervenda no mercado e negociar quando o preço toca essas áreas. A ideia central da estratégia é estabelecer posições quando os preços se desviam da média e lucrar quando os preços retornam.

Princípios estratégicos

  1. Computação de linha uniforme: a estratégia é calcular linhas de referência usando o tipo de linha uniforme opcional (SMA, EMA, SMMA, WMA, VWMA).

  2. Configuração da faixa de oscilação: baseada na linha de referência, a faixa de oscilação é configurada em várias camadas usando múltiplos de diferença padrão.

  3. Níveis de Fibonacci: utilizam os níveis de retração de Fibonacci (-23.6%, 38.2%, 50%, 61.8%) para dividir as bandas de flutuação e criar mais oportunidades de negociação.

  4. Ajuste dinâmico: pode optar por usar múltiplos dinâmicos para ajustar automaticamente a largura da banda de onda de acordo com o ATR (amplitude real média).

  5. Logic de entrada: quando o preço toca ou atravessa uma faixa de movimentação, a estratégia estabelece uma posição nessa direção.

  6. Mecanismo de aceleração: se o preço continuar a mover-se em uma direção desfavorável, a estratégia aumentará a posição no nível da faixa de flutuação mais distante, o que reflete a idéia estratégica de Martinel.

  7. Lógico de saída: pode-se optar por um equilíbrio para ganhar quando o preço retorna à linha de referência. Também pode-se definir um equilíbrio quando o preço atravessa a linha de referência.

Vantagens estratégicas

  1. Entrada em vários níveis: A estratégia oferece mais oportunidades de negociação, capturando os movimentos do mercado em diferentes níveis de preços, através da configuração de várias faixas de volatilidade e níveis de Fibonacci.

  2. Forte flexibilidade: a estratégia permite que os usuários escolham diferentes tipos de linha média, ciclos e parâmetros para se adaptar a diferentes ambientes de mercado e variedades de negociação.

  3. Adaptação dinâmica: a função opcional de múltiplos dinâmicos permite que a estratégia se adapte automaticamente à volatilidade do mercado, aumentando a adaptabilidade da estratégia.

  4. Gestão de risco: estratégias que tentam reduzir o preço de entrada médio e aumentar a probabilidade de lucro final através do aumento de posições em tendências adversas.

  5. Ideia de retorno do valor médio: uma estratégia baseada no valor médio é a ideia de que o preço irá retornar ao valor médio, o que funciona bem em muitos mercados e prazos.

  6. Personalização: Os usuários podem ajustar parâmetros, como número de ações, equação de Fibonacci, de acordo com suas preferências de risco e estilo de negociação.

Risco estratégico

  1. Risco de perdas contínuas: em mercados de forte tendência, o preço pode continuar a romper várias faixas de flutuação, levando a um aumento contínuo e acumulação de grandes perdas.

  2. Pressões de gestão de fundos: estratégias de aumento de ativos do tipo de Martinel podem levar a um aumento acentuado da demanda de fundos, além da capacidade das contas.

  3. Excesso de negociação: as bandas de flutuação podem gerar muitos sinais de negociação em mercados turbulentos, aumentando os custos de negociação.

  4. Sensibilidade de parâmetros: o desempenho da política depende muito da configuração dos parâmetros, e parâmetros inadequados podem causar um mau desempenho da política.

  5. Ponto de deslizamento e risco de liquidez: Pontos de deslizamento graves podem ser enfrentados em mercados altamente voláteis, especialmente quando o investimento é aumentado.

  6. Risco de retração: Embora a estratégia seja destinada a reduzir o custo médio através de um aumento de risco, um retração significativo pode ser enfrentado em condições extremas de mercado.

Estratégias de otimização

  1. Introdução de um filtro de tendência: pode-se adicionar indicadores de tendência de longo prazo e abrir apenas posições na direção da tendência, evitando frequentes negociações contraditórias em tendências fortes.

  2. Gerenciamento de posições dinâmicas: ajustando o número de ações por transação de acordo com o tamanho da conta e a dinâmica da volatilidade do mercado para controlar melhor o risco.

  3. Mecanismo de saída otimizado: pode considerar-se a introdução de um trailing stop ou um stop dinâmico baseado em volatilidade para melhor bloquear os lucros e controlar os riscos.

  4. Aumentar o filtro de tempo: adicionar restrições de janela de tempo de negociação para evitar períodos de alta volatilidade ou baixa liquidez.

  5. Integração de indicadores de sentimento de mercado: combinação de indicadores de volatilidade, como o VIX, para ajustar os parâmetros estratégicos ou suspender a negociação durante a alta volatilidade.

  6. Introdução de aprendizagem de máquina: o uso de algoritmos de aprendizagem de máquina para otimizar dinamicamente os parâmetros e melhorar a adaptabilidade da estratégia às mudanças do mercado.

  7. Aumentar a filtragem básica: combinando dados básicos para permitir transações sob determinadas condições básicas, melhorando a qualidade das transações.

Resumo

A estratégia de negociação multi-nível é um sistema de negociação complexo que combina análise técnica, teoria de probabilidade e gestão de riscos. Através de vários níveis de pontos de entrada e de um método de negociação de Martinho da Gama, tenta capturar lucros em fluctuações de preços. A estratégia tem vantagens em sua flexibilidade e no uso do retorno do valor médio, mas também enfrenta riscos em mercados de forte tendência.

Para aplicar essa estratégia com sucesso, os traders precisam ter uma compreensão profunda das características do mercado, definir os parâmetros com cuidado e implementar um rigoroso gerenciamento de riscos. Com otimização e reavaliação contínuas, combinadas com insights sobre o mercado, a estratégia tem potencial para se tornar um instrumento de negociação eficaz. No entanto, devido à sua complexidade e ao risco potencial, recomenda-se um teste simulado e uma avaliação de risco adequados antes de negociar em tempo real.

No geral, a estratégia de negociação de faixa flutuante multilayer oferece uma estrutura interessante e desafiadora para os traders de quantificação, cuja aplicação bem-sucedida requer habilidades de análise técnica, habilidades 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")

Relacionado

Mais informações