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.
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).
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
Ponto de deslizamento e risco de liquidez: Pontos de deslizamento graves podem ser enfrentados em mercados altamente voláteis, especialmente quando o investimento é aumentado.
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.
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.
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.
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.
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.
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.
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.
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.
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")