A estratégia de negociação de bandas de ondas múltiplas é uma estratégia de negociação quantitativa baseada na volatilidade dos preços. A estratégia usa várias ondas para identificar áreas de sobrecompra e sobrevenda no mercado e negocia quando os preços atingem essas áreas. A idéia central da estratégia é estabelecer posições quando os preços se desviam da média e lucrar quando os preços retornam.
Calculo de linha média: a estratégia usa um tipo de linha média selecionável (SMA, EMA, SMMA, WMA, VWMA) para calcular a linha de referência.
Configuração da banda de ondas: baseada na linha de referência, a diferença padrão é multiplicada por um múltiplo para configurar uma banda de ondas de vários níveis.
Níveis de Fibonacci: Usando os níveis de retração de Fibonacci ((23.6%, 38.2%, 50%, 61.8%) para segmentar os bandos de flutuação e criar mais oportunidades de negociação.
Ajuste dinâmico: pode optar por usar o múltiplo dinâmico, ajustando automaticamente a largura de banda de oscilação de acordo com o ATR (Average True Range).
Lógica de entrada: quando o preço toca ou atravessa uma faixa de flutuação, a estratégia estabelece uma posição nessa direção.
Mecanismo de aceleração: se o preço continuar a se mover na direção negativa, a estratégia aumenta a posição em níveis de bandas de flutuação mais distantes, refletindo o pensamento da estratégia de Martingale.
Lógica de saída: quando o preço retorna à linha de referência, pode-se optar por um lucro de parada. Também pode ser configurado para se posicionar 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 oscilações do mercado em diferentes níveis de preços, através da configuração de várias bandas de flutuação e níveis de Fibonacci.
Flexibilidade: A estratégia permite aos usuários escolher diferentes tipos de linha média, períodos e parâmetros para se adaptar a diferentes ambientes de mercado e variedades de negociação.
Adaptabilidade dinâmica: a opção de multiplicadores dinâmicos permite que a estratégia se adapte automaticamente à volatilidade do mercado, aumentando a adaptabilidade da estratégia.
Gerenciamento de risco: a estratégia tenta reduzir o preço médio de entrada e aumentar a probabilidade de lucro final, aumentando a posição em um cenário desfavorável.
Ideia de regresso ao valor médio: a estratégia baseia-se na ideia de que o preço eventualmente retornará ao valor médio, o que funciona bem em muitos mercados e prazos de tempo.
Personalização: Os usuários podem ajustar parâmetros de acordo com suas preferências de risco e estilo de negociação, como número de ações, equilíbrio de Fibonacci.
Risco de perdas contínuas: em mercados de forte tendência, os preços podem romper várias bandas de flutuação de forma contínua, resultando em adições contínuas e perdas acumuladas.
Pressão de gestão de fundos: A estratégia de acumulação de depósitos do tipo Martinho Inglês pode levar a um aumento acentuado da demanda de fundos, além da capacidade de suporte da conta.
Transações excessivas: A banda de ondas multicamadas pode gerar sinais de transação excessivos em mercados turbulentos, aumentando os custos de transação.
Sensibilidade de parâmetros: o desempenho da estratégia é altamente dependente da configuração de parâmetros, e os parâmetros inadequados podem causar um mau desempenho da estratégia.
Pontos de deslizamento e risco de liquidez: em mercados de alta volatilidade, é possível enfrentar pontos de deslizamento graves, especialmente quando se coloca uma posição.
Risco de retração: Embora a estratégia vise reduzir o custo médio por meio da acumulação de posições, é possível enfrentar uma retração significativa em condições de mercado extremas.
Introdução de filtros de tendência: pode ser adicionado um indicador de tendência de longo prazo, abrir posições apenas na direção da tendência, evitando a frequência de negociação contracorrente em uma forte tendência.
Gerenciamento de posições dinâmicas: o número de ações por transação é ajustado dinamicamente de acordo com o tamanho da conta e a volatilidade do mercado para melhor controlar o risco.
Otimização do mecanismo de saída: pode-se considerar a introdução de trailing stop ou stop loss dinâmico baseado na volatilidade para melhor bloquear os lucros e controlar o risco.
Aumentar o filtro de tempo: adicionar restrições à janela de tempo de negociação, evitando períodos de maior volatilidade ou menor liquidez.
Integração de indicadores de sentimento de mercado: combinação de indicadores de volatilidade, como o VIX, para ajustar os parâmetros de estratégia ou suspender a negociação durante a alta volatilidade.
Introdução de aprendizado de máquina: Parâmetros de otimização dinâmica de algoritmos de aprendizado de máquina para melhorar a adaptabilidade das estratégias às mudanças do mercado.
Aumentar a filtragem básica: a combinação de dados básicos permite que as transações sejam permitidas apenas sob determinadas condições básicas, melhorando a qualidade das transações.
A estratégia de negociação de bandas de ondas múltiplas é um sistema de negociação complexo que combina análise técnica, teoria da probabilidade e gerenciamento de risco. Através de pontos de entrada em vários níveis e métodos de aceleração de Martingale, tenta capturar lucros nas flutuações de preços. O benefício da estratégia reside na sua flexibilidade e no uso de regresso ao valor médio, mas também enfrenta riscos em mercados de forte tendência.
Para aplicar com sucesso esta estratégia, os comerciantes precisam ter uma profunda compreensão das características do mercado, definir cuidadosamente os parâmetros e implementar um rigoroso gerenciamento de risco. Com otimização e feedback contínuos, combinados com insights sobre o mercado, esta estratégia tem o potencial de se tornar uma ferramenta de negociação eficaz.
Em geral, a estratégia de negociação de bandas de ondas multicamadas oferece uma estrutura interessante e desafiadora para os comerciantes de quantidade, cuja aplicação bem sucedida requer habilidades de análise técnica, habilidades de gerenciamento de risco e otimização estratégica contínua.
/*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")