
A estratégia de negociação quantitativa EMA-VWAP em conjunto com a CBC para rastrear a reversão de tendências é um sistema de negociação complexo que combina vários indicadores técnicos. O núcleo da estratégia é o uso da sinergia dos três principais indicadores técnicos: a média móvel do índice (EMA), o preço médio ponderado pelo volume de transação (VWAP) e a confirmação de rupturas de preços críticas (CBC) para formar um sinal de negociação preciso.
Esta estratégia é especialmente adequada para ambientes de mercado com tendências claras, e filtra de forma eficaz os falsos breaks e os sinais de ruído, combinando a direção das EMAs de curto e médio prazo com a relação de posição do VWAP, e anexando a confirmação de ruptura do CBC. A estratégia também integra referências de preços-chave do dia, incluindo os níveis de alta (PDH), baixa (PDL), encerramento (PDC) e VWAP do dia de negociação anterior, bem como os níveis de alta e baixa do dia de segunda-feira, fornecendo uma riqueza de informações de contexto de mercado para decisões de negociação.
A estratégia usa regras claras de entrada e saída, onde os sinais de entrada requerem que várias condições sejam atendidas ao mesmo tempo, enquanto os sinais de saída dependem, de forma concisa, do sinal de inversão da CBC, implementando a filosofia de negociação “forward forward, backward forward”.
O núcleo da estratégia é baseado na sinergia de quatro elementos tecnológicos-chave:
Sistema de EMA de múltiplos períodosA estratégia usa três linhas de EMA (os 9 ciclos, os 20 ciclos e os 200 ciclos) para formar uma estrutura de determinação de tendências. A posição relativa do EMA rápido (os 9 ciclos) e do EMA médio (os 20 ciclos) é usada para determinar a direção da tendência de curto prazo. Quando o EMA rápido está acima do EMA médio, é considerado um sinal de otimismo; ao contrário, é considerado um sinal de baixa.
Benchmark do VWAPA estratégia exige que o preço, a EMA rápida e a EMA média estejam do mesmo lado da VWAP para confirmar a consistência e a força da tendência.
CBC (Close, Break, Close) sinal de reversãoEste é o mecanismo de acionamento central da estratégia, através da detecção de preços que quebram os altos ou baixos do dia de negociação anterior, e a confirmação da eficácia do rompimento no fechamento. Quando o preço de fechamento supera o alto do dia anterior, o CBC reverte para a baixa; Quando o preço de fechamento cai abaixo do baixo do dia anterior, o CBC reverte para a baixa.
Sistema de referência de preços críticos diáriosA estratégia integra os altos, baixos, preços de fechamento e níveis de VWAP do dia de negociação anterior, além dos altos e baixos de segunda-feira como referência para a semana inteira, formando uma estrutura de referência completa do mercado.
A lógica de entrada exige que as seguintes condições sejam simultaneamente atendidas:
A lógica de saída depende diretamente da reversão do CBC, ou seja, a posição em alta no CBC se transforma em posição baixa quando baixa, e a posição em baixa no CBC se transforma em posição baixa quando baixa, o que reflete a natureza de negociação de tendência da estratégia.
A análise do código da estratégia revela as seguintes vantagens:
Mecanismo de confirmação múltiplaA estratégia requer que a direção da tendência do EMA, a relação de preço com a posição do VWAP e o sinal de inversão do CBC estejam em sintonia para que o trio possa disparar o sinal de negociação, reduzindo efetivamente a taxa de falsidade e aumentando a qualidade do sinal.
Seguimento de tendência combinado com reversãoA estratégia capta a tendência (consistência através da EMA e VWAP) e depende dos sinais CBC para capturar as rupturas críticas, equilibrando a vantagem de seguir a tendência com a inversão.
Referência completa da estrutura do mercadoA integração dos preços-chave do dia de negociação anterior com os altos e baixos da segunda-feira fornece uma riqueza de informações de contexto do mercado para decisões de negociação, ajudando a entender a posição dos preços atuais na estrutura do mercado maior.
Comentários visuaisA estratégia usa elementos visuais ricos, incluindo mudanças de cor de fundo, marcas de forma e etiquetas, permitindo que o comerciante identifique intuitivamente os sinais e o estado atual do mercado.
Uma lógica de saída simples: Usando a reversão do CBC como sinal de saída, evita o risco de saída prematura ou excesso de posse, formando um sistema consistente e simétrico com a lógica de entrada.
Configuração de parâmetros de adaptabilidadeA estratégia oferece um filtro de data e várias opções de exibição, permitindo que os comerciantes personalizem a estratégia de acordo com suas necessidades, aumentando a flexibilidade e adaptabilidade da estratégia.
Integração da gestão de fundosA estratégia de negociar em percentagem de fundos de conta, em vez de num número fixo, demonstra uma boa consciência de gestão de risco, o que contribui para o crescimento a longo prazo dos fundos e para o controlo do risco.
Embora esta estratégia tenha muitos benefícios, uma análise mais aprofundada do código também revelou os seguintes riscos potenciais:
Risco de atrasoO EMA é essencialmente um indicador de atraso, que pode causar atrasos no sinal, perder o melhor ponto de entrada ou sair atrasado em mercados altamente voláteis, causando perdas adicionais. A solução é considerar ajustar os parâmetros do EMA ou aumentar os filtros de taxa de flutuação em ambientes de alta volatilidade.
Risco de Falso BreakoutEmbora a lógica do CBC exija que o preço de fechamento confirme uma ruptura, o mercado pode reverter rapidamente após uma falsa ruptura. A solução é considerar a confirmação de volume de transação ou a configuração de condições de filtragem da amplitude da ruptura.
Excessiva dependência do VWAP: Em mercados horizontais ou estreitos, os preços podem atravessar frequentemente o VWAP, causando aumento do ruído de sinal. A solução é suspender a negociação ou aumentar a amplitude de flutuação quando for identificado um mercado horizontais.
Falta de mecanismos de contençãoA estratégia atual não possui um mecanismo de stop loss definido e depende exclusivamente do CBC para equilibrar os sinais de reversão, o que pode levar a grandes perdas em situações extremas. A solução é aumentar o stop loss fixo ou o stop loss do múltiplo ATR e definir um limite de perda máxima.
Falta de filtro de dataA solução é integrar a funcionalidade do calendário econômico, que ajusta ou suspende automaticamente a negociação durante eventos importantes.
Deformação de detecçãoUso estratégico:fill_orders_on_standard_ohlc = trueParâmetros, que podem ter diferenças na retrospectiva em relação à negociação real, levando a resultados de retrospectiva muito otimistas. A solução é usar simulações de nota por nota ou considerar os pontos de deslizamento e os custos de negociação para uma retrospectiva mais realista.
Dependência de ciclo únicoA solução é considerar a integração de um mecanismo de confirmação de sinal de múltiplos períodos.
Com base em uma análise completa do código de estratégia, recomendamos as seguintes direções de otimização:
Adição de parâmetros de adaptaçãoO ciclo EMA pode ser ajustado de acordo com a dinâmica da taxa de flutuação do mercado, usando ciclos mais curtos em mercados de alta flutuação e ciclos mais longos em mercados de baixa flutuação, aumentando a adaptabilidade da estratégia a diferentes ambientes de mercado. Isso pode ser feito calculando o ATR e mapeando-o para o intervalo do ciclo EMA.
Confirmação de volume de transação integrada: Aumentar a requisição de confirmação de volume de transação com base no sinal de inversão do CBC, apenas quando a ruptura é acompanhada por um aumento significativo no volume de transação, o sinal é acionado, filtrando a ruptura de baixa qualidade. Isso pode ser feito comparando a relação entre o volume de transação atual e o volume de transação médio de N ciclos.
Adesão ao mecanismo de impedimentoIntrodução de um stop dinâmico ou de um stop em percentagem fixa baseado no ATR, para proteger os fundos de situações extremas antes de aguardar um sinal de reversão do CBC. Recomenda-se a implementação de um stop tracking, que ajusta automaticamente o nível de stop à medida que o preço se move na direção favorável.
Confirmação de sincronia de múltiplos ciclosAumento da verificação de tendências de períodos de tempo mais elevados, entrando somente quando a direção da tendência de períodos maiores coincide com a direção de negociação atual, aumentando a qualidade do sinal. Isso pode ser feito solicitando dados de EMA de períodos mais elevados e examinando sua direção.
Classificação do estado do mercado: Desenvolver módulos de identificação de estado de mercado, diferenciando mercados de tendência e mercados de travessia, ajustando parâmetros de estratégia ou suspensão de negociação em diferentes estados de mercado. Pode usar o ADX (indice de direção média) ou análise de amplitude de flutuação de preços para identificar o estado do mercado.
Optimizar a gestão de fundos: Dimensão da posição de ajuste dinâmico com base na taxa de flutuação e taxa de ganho, aumentar a posição em sinais de alta expectativa de lucro e reduzir a posição em sinais de baixa expectativa de lucro. O ajuste de posição dinâmico pode ser realizado através da estatística de sinais históricos e do cálculo da volatilidade do mercado atual.
Aumentar o tempo de filtragemIntrodução de filtros de horário do dia, evitando os períodos de alta volatilidade antes do início e do fim do dia, concentrando-se na negociação em períodos de tempo em que o mercado está ativo, mas relativamente estável. Pode-se configurar horários de negociação otimizados de acordo com as características de horário de negociação de diferentes mercados.
Otimização do ambiente de detecçãoUtilização:fill_orders_on_standard_ohlc = falseA avaliação da estratégia é mais confiável quando se comparam os pontos de deslizamento reais e as configurações de comissões.
A estratégia de negociação quantitativa de EMA-VWAP e CBC para acompanhamento de reversão de tendências é um sistema de negociação estruturado, logicamente claro, que forma um sinal de negociação de alta qualidade através da integração de vários indicadores técnicos e métodos de análise de comportamento de preços. A vantagem central da estratégia reside no mecanismo de confirmação múltipla e no sistema de referência completo da estrutura do mercado, que reduz efetivamente a taxa de erro e melhora a qualidade do sinal.
A estratégia adota uma filosofia de negociação de “avanço e contra-avanço”, que requer a confirmação de várias condições de sincronia na entrada e na saída, dependendo do sinal de inversão da CBC, formando um sistema de negociação lógico, consistente e simétrico. Ao mesmo tempo, a estratégia integra elementos de feedback visual abundantes e configurações de parâmetros flexíveis, melhorando a experiência de uso e adaptabilidade.
No entanto, a estratégia também apresenta problemas potenciais, como o risco de atraso, o risco de falso avanço e a falta de mecanismos de parada de perdas. A solidez e a lucratividade da estratégia podem ser melhoradas ainda mais com o aumento dos parâmetros de adaptação, a confirmação de volume de negócios integrado e as medidas de otimização, como a confirmação de parada e a confirmação de sincronia de múltiplos ciclos.
Em geral, trata-se de uma estrutura estratégica de base bem projetada, com o potencial de se tornar um sistema de negociação robusto, com otimização razoável e configuração de gerenciamento de risco. Na aplicação prática, o comerciante deve personalizar os parâmetros da estratégia de acordo com suas próprias preferências de risco e objetivos de negociação, mantendo sempre a disciplina de gerenciamento de fundos adequada.
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Maple&CBC Strategy", overlay = true, fill_orders_on_standard_ohlc = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// EMA's
fastEma = ta.ema(close, 9)
middleEma = ta.ema(close, 20)
slowEma = ta.ema(close, 200)
vwap = ta.vwap(close)
plot(fastEma, color=color.blue, title="9 EMA")
plot(middleEma, color=color.green, title="20 EMA")
plot(slowEma, color=color.red, title="200 EMA")
plot(vwap, color=color.yellow, title="VWAP")
// Input instellingen voor zichtbaarheid van lijnen
show_prev_day_high = input.bool(true, title="Toon Previous Day High")
show_prev_day_low = input.bool(true, title="Toon Previous Day Low")
show_prev_day_vwap = input.bool(true, title="Toon Previous Day VWAP")
show_prev_day_close = input.bool(true, title="Toon Previous Day Close")
show_monday_levels = input.bool(true, title="Toon Monday High/Low")
// Vorige dag niveaus
[dh, dl, dc, dv] = request.security(syminfo.tickerid, "D", [high[1], low[1], close[1], ta.vwap(close)[1]])
// Maandag High en Low
isMonday = dayofweek == dayofweek.monday
var float mondayHigh = na
var float mondayLow = na
if isMonday and barstate.isconfirmed
mondayHigh := high
mondayLow := low
// CBC Flip Logica
cbc = false
cbc := cbc[1]
if cbc and close < low[1]
cbc := false
if not cbc and close > high[1]
cbc := true
cbc_long = cbc and not cbc[1]
cbc_short = not cbc and cbc[1]
// EMA's bullish/bearish check
ema_bullish = fastEma > middleEma
ema_bearish = fastEma < middleEma
// Prijs boven/onder VWAP check
price_above_vwap = close > vwap
price_below_vwap = close < vwap
// ==================== STRATEGIE LOGICA ====================
// Long signaal: prijs boven VWAP + EMA's bullish + EMA's boven VWAP + CBC flip bullish
emas_above_vwap = fastEma > vwap and middleEma > vwap
longCondition = cbc_long and price_above_vwap and ema_bullish and emas_above_vwap and barstate.isconfirmed
// Short signaal: prijs onder VWAP + EMA's bearish + EMA's onder VWAP + CBC flip bearish
emas_below_vwap = fastEma < vwap and middleEma < vwap
shortCondition = cbc_short and price_below_vwap and ema_bearish and emas_below_vwap and barstate.isconfirmed
// Variabelen om bij te houden of we in een positie zitten
var bool inLongPosition = false
var bool inShortPosition = false
// Strategy entrypoints
if longCondition and not inLongPosition and not inShortPosition
strategy.entry("Long", strategy.long)
inLongPosition := true
inShortPosition := false
if shortCondition and not inShortPosition and not inLongPosition
strategy.entry("Short", strategy.short)
inShortPosition := true
inLongPosition := false
// Strategy exitpoints - wacht op tegenovergestelde CBC flip signaal
if cbc_short and inLongPosition
strategy.close("Long", comment="Exit Long on CBC flip short")
inLongPosition := false
if cbc_long and inShortPosition
strategy.close("Short", comment="Exit Short on CBC flip long")
inShortPosition := false
// Visuele weergave van signalen
plotshape(series=cbc_long, location=location.belowbar, color=color.green, style=shape.triangleup, title="Bulls")
plotshape(series=cbc_short, location=location.abovebar, color=color.red, style=shape.triangledown, title="Bears")
// Achtergrondkleur voor visuele ondersteuning
bgcolor(cbc_long ? color.rgb(255, 235, 59, 71) : cbc_short ? color.rgb(5, 185, 240, 59) : na)
// Extra achtergrondkleur voor trading signalen
bgcolor(longCondition ? color.rgb(0, 255, 0, 90) : shortCondition ? color.rgb(255, 0, 0, 90) : na)
// Labels voor de trading posities
if inLongPosition and barstate.islast
label.new(bar_index, low - (low * 0.002), "IN LONG", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)
if inShortPosition and barstate.islast
label.new(bar_index, high + (high * 0.002), "IN SHORT", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)