Bloco 2 - Volatilidade de Mercado
Em nosso modelo, o Bloco 2 foi desenvolvido para controlar períodos operacionais do robô às condições de mercado intraday. O comportamento dos preços em ativos financeiros não ocorre de maneira uniforme ao longo do tempo; ele é fortemente influenciado por fatores externos, como divulgações de dados macroeconômicos, abertura e fechamento de pregões e até mesmo períodos de baixa volatilidade. Por esse motivo, compreender os diferentes cenários de volatilidade é essencial para proteger a estratégia e garantir maior consistência nos resultados.
A divulgação de indicadores econômicos é um dos pontos mais sensíveis para qualquer sistema automatizado. Eventos como decisões de taxa de juros, relatórios de emprego, inflação ou Produto Interno Bruto costumam gerar grande expectativa nos mercados. No momento em que os dados são divulgados, ocorre um aumento súbito no volume de ordens, causando movimentos violentos nos preços. Nessas condições, os spreads tendem a variar e o risco de slippage (diferença entre o preço esperado de uma ordem e o preço efetivamente executado no mercado) aumenta consideravelmente, o que pode levar a execuções muito distantes dos níveis programados. Operar nesses instantes sem qualquer filtro de proteção significa expor o robô a um ambiente de incerteza e risco elevado.
Outro momento crítico é a abertura dos pregões. Durante o período em que o mercado permanece fechado, ordens ficam acumuladas e informações externas continuam circulando. Ao início da nova sessão, essa concentração de ordens resulta frequentemente em gaps de preço: saltos abruptos entre o fechamento anterior e a primeira cotação disponível. Esses movimentos podem anular sinais técnicos, desconfigurar padrões de entrada e saída e, em casos extremos, ultrapassar níveis de stop loss ou take profit antes mesmo da execução pelo sistema. O controle desse risco é, portanto, indispensável para preservar a integridade do modelo.
Em contrapartida, também existem momentos em que a volatilidade é extremamente reduzida. São períodos de baixa volatilidade, muitas vezes associados a horários intermediários entre sessões ou a feriados em determinados mercados. Nessas situações, o preço tende a oscilar com spreads alargados e maior incidência de falsos sinais de entrada.
Diante dessa diversidade de cenários, o Bloco 2 atua como uma camada de resiliência do robô. Ele tem por objetivo identificar os momentos em que operar representa maior risco operacional - seja pelo excesso de volatilidade, pela presença de gaps ou pela baixa volatilidade - e ajustar o comportamento do sistema a essas condições. Ao evitar negociações em ambientes desfavoráveis, o modelo busca preservar capital, reduzir exposição a eventos imprevisíveis e aumentar a estabilidade de longo prazo da estratégia.
Estrutura:
Bloco 2. Volatilidade de Mercado
├── 2.1 Função OnTime
└── 2.2 Função Horário Restrito

2.1 Função OnTime() – Calendário Econômico
A função OnTime() foi desenvolvida com o propósito de identificar, em tempo real, se o mercado se encontra em um período de risco elevado associado à divulgação de indicadores do calendário econômico. Esses momentos costumam ser marcados por variações abruptas de preço, variação dos spreads e maior probabilidade de slippage, fatores que podem comprometer diretamente a execução de ordens automatizadas.
Para cumprir esse objetivo, a lógica da função realiza a comparação do horário atual do servidor com intervalos previamente definidos de maior volatilidade, organizados em duas listas: AltaVolatilidadeInicio e AltaVolatilidadeFim. Dessa forma, o sistema consegue mapear não apenas o instante exato da divulgação de um indicador, mas também o período de preparação que o antecede, no qual o mercado já começa a reagir por meio do reposicionamento dos investidores.
O retorno da função ocorre em três estados distintos, que servem de referência para a tomada de decisão do robô:
2 → Período de evento econômico – corresponde ao horário exato da divulgação, momento em que o mercado atinge o nível máximo de imprevisibilidade;
1 → Período de restrição – intervalo de segurança, definido em 30 minutos antes do evento, quando a volatilidade já começa a se intensificar;
0 → Fora de restrição – mercado considerado livre de influências imediatas do calendário econômico, permitindo a execução normal da estratégia.
Esse mecanismo garante que o robô possa suspender suas operações ou ajustar parâmetros de negociação (como volume, níveis de stop ou tolerância de slippage) em conformidade com o cenário identificado. Ao aplicar esse filtro temporal, a estratégia ganha em segurança, disciplina operacional e preservação de capital, evitando exposições desnecessárias em situações de risco extremo.
No modelo atualmente implementado para simulação de estratégias no MetaTrader 5, o calendário econômico considerado está vinculado ao dólar (USD), cobrindo os eventos previstos para o primeiro semestre de 2025. Essa escolha se deve ao papel central do dólar como moeda de referência global e ao forte impacto que suas divulgações exercem sobre diferentes ativos financeiros.
Além disso, o código foi estruturado de forma flexível, permitindo que, mediante solicitação pela área de contato do site, os períodos de 2023 e 2024 possam ser integrados ao simulador. Essa possibilidade amplia o horizonte de análise, fornecendo ao usuário maior base histórica para avaliar o desempenho e a consistência da estratégia em diferentes contextos de mercado.
2.2 Função HorarioRestrito() – Controle de Gaps na Abertura
A função HorarioRestrito() tem como objetivo monitorar continuamente se o horário atual coincide com um intervalo crítico pré-definido, geralmente associado à abertura dos pregões. Esses momentos são especialmente sensíveis, pois concentram a execução de ordens acumuladas durante o período em que o mercado permaneceu fechado, resultando em gaps de preços. Esses gaps representam saltos abruptos entre o fechamento da sessão anterior e o primeiro preço negociado na nova sessão, podendo invalidar sinais técnicos, deslocar ordens de entrada e comprometer níveis de stop loss ou take profit previamente configurados.
Quando a função identifica que o mercado se encontra em um desses períodos de maior risco, ela ativa a restrição e adota duas medidas imediatas:
Impressão de mensagens de alerta no log, registrando o motivo da suspensão e facilitando o acompanhamento posterior pelo operador;
Fechamento automático de todas as posições abertas associadas aos Magic Numbers configurados, assegurando que o Expert Advisor não permaneça exposto às oscilações imprevisíveis e frequentemente violentas que caracterizam a abertura de mercado.
A resposta da função é booleana: retorna true quando o mercado está em horário restrito e false quando não há restrição. Essa simplicidade no retorno permite que a lógica do Expert Advisor seja clara e objetiva, ao mesmo tempo em que assegura nível de proteção.
O uso da HorarioRestrito() fortalece a disciplina do sistema, prevenindo que operações sejam mantidas em momentos de elevada incerteza e mitigando potenciais perdas ocasionadas por gaps inesperados. Ao incorporar esse filtro, o modelo reduz significativamente a exposição a riscos sistêmicos, aumentando a consistência e a resiliência do robô frente às condições adversas que podem ocorrer de forma recorrente na abertura dos mercados.
Integração do Bloco 2
Ao incorporar filtros temporais e restrições inteligentes, o robô garante que a estratégia não seja executada em condições desfavoráveis aos seus parâmetros fundamentais, como em abertura dos pregões ou em períodos de baixíssima volatilidade, que antecedem divulgações, e períodos de alta volatilidade que ocorrem durante divulgações do calendário econômico.
Mais do que evitar operações em momentos considerados não adequados, o Bloco 2 fortalece a disciplina do sistema, preservando capital e assegurando maior consistência no longo prazo. Essa camada de proteção transforma a lógica operacional do robô em um processo mais resiliente, adaptável e alinhado às dinâmicas reais do mercado financeiro.
A seguir o todo o trecho que compõe o Bloco 2 do nosso exemplo:
Para avançar ou retornar para revisar módulos do código, você pode utilizar os botões a seguir:
Indicadores
Produtos
Artigos
Determine
Estudo Semanal
Robô MQL5
