← Todos os artigos

Robô para ações da B3 no MT5: lote padrão, fracionário e horários

Por Jackson Jordão · 21 de outubro de 2026 · 6 min

Vista aérea dos prédios da cidade de São Paulo sob um céu com nuvens
Foto: Lucas Marcomini/Unsplash

Um robô de ações da B3 precisa respeitar três coisas que não aparecem no mercado de mini índice ou de Forex: o lote padrão de 100 ações, o mercado fracionário (de 1 a 99 ações) e as fases do pregão, que incluem leilões. Se o código ignora isso, as ordens são recusadas ou executam em horários em que não deveriam.

A regra prática: o robô não deve ter lote, símbolo ou horário "chumbados" no código. Ele lê as regras do símbolo na própria plataforma (volume mínimo, passo de volume, sessões de negociação) e se adapta. Veja a seguir como fazer isso no MT5.

Lote padrão e mercado fracionário

Segundo a B3, o lote padrão de uma ação é definido pelo emissor e costuma ser de 100 papéis. O mercado fracionário permite negociar quantidades menores que o lote padrão, de 1 a 99 ações, e as ofertas fracionárias são processadas separadamente das de lote padrão.

No MetaTrader 5, as corretoras costumam expor o fracionário como outro símbolo do mesmo papel, geralmente com a letra F no final do código (por exemplo, o ticker normal e a versão com F). Confira na janela Observação de Mercado da sua corretora, porque o nome e a disponibilidade mudam de uma para outra.

Para o robô, isso significa duas decisões: em qual símbolo ele vai operar e como o volume será calculado. Quem opera o símbolo de lote padrão envia volumes múltiplos de 100. Quem opera o fracionário pode enviar de 1 a 99. Misturar os dois no mesmo robô, sem tratar cada caso, é uma fonte clássica de erro.

Dica: O fracionário costuma ter menos liquidez e o preço pode diferir do lote padrão. Teste o robô no símbolo exato em que ele vai operar, e não em um parecido.

Como o robô descobre o volume válido

Não escreva "100" no código. Leia as propriedades do símbolo com SymbolInfoDouble: SYMBOL_VOLUME_MIN (volume mínimo), SYMBOL_VOLUME_MAX (máximo) e SYMBOL_VOLUME_STEP (passo). Depois ajuste o volume calculado ao passo, arredondando para baixo, e confirme que ele ficou entre o mínimo e o máximo.

Esse ajuste vale também quando o volume vem de um cálculo de risco. Se o resultado for 237 ações e o passo for 100, o robô deve enviar 200, e não 237. Se o resultado ficar abaixo do mínimo, o certo é não operar e registrar o motivo no log, em vez de forçar o mínimo e assumir mais risco do que o configurado.

Outra propriedade útil é SYMBOL_TRADE_CONTRACT_SIZE, que indica o tamanho do contrato. Em ações, é o que ajuda a converter o volume em valor financeiro quando o robô calcula exposição.

As fases do pregão de ações

O mercado à vista de ações da B3 tem fases: um período de cancelamento de ofertas, a pré-abertura, a negociação contínua, o call (leilão) de fechamento e o after-market. Nos leilões, o preço é formado pelo encontro das ordens, e a B3 informa que o leilão de fechamento não aceita ordem a mercado: todas precisam de preço limite.

Isso tem efeito direto no robô. Uma ordem a mercado enviada na pré-abertura ou no leilão pode ser recusada ou ficar pendente. Por isso, o robô de ações deve operar só dentro da negociação contínua, a menos que a estratégia seja feita justamente para os leilões.

Horários: não escreva no código

Os horários da B3 mudam ao longo do ano. A bolsa já ajustou a grade por causa do horário de verão dos Estados Unidos, e as fontes antigas que circulam na internet divergem entre si. Por isso, um robô com "10:00" e "16:55" escritos no código pode ficar errado em parte do ano. Para valores atuais, consulte a página de horário de negociação da B3 e o ofício circular em vigor.

A solução técnica é ler a sessão do símbolo com SymbolInfoSessionTrade, que devolve o início e o fim de cada sessão de negociação de um dia da semana, conforme a corretora informa. O robô compara a hora do servidor com essas janelas e só envia ordens dentro delas. Se quiser uma margem de segurança, deixe parâmetros de minutos de folga após a abertura e antes do fim da sessão.

Lembre também que a hora do servidor do MT5 não é necessariamente a de Brasília. Use TimeCurrent para a hora do servidor e converta com cuidado, ou trabalhe sempre na hora do servidor, que é a mesma das sessões lidas.

Dica: Quer zerar posições antes do fechamento? Faça isso com uma margem antes do início do call de fechamento, para a ordem não cair no leilão.

Ordens e execução em ações

Em ações, o robô costuma enviar ordens com a classe CTrade da biblioteca padrão e precisa informar o tipo de preenchimento aceito pelo símbolo (veja o artigo sobre FOK, IOC e Return, em /blog/tipos-preenchimento-ordem-fok-ioc-return-mt5). Se o preenchimento estiver errado, a ordem é rejeitada mesmo com o volume certo.

Outro ponto: ações em geral são operadas na compra, e a venda a descoberto exige que o papel esteja emprestado. Se a estratégia opera vendido, confirme com a corretora como isso funciona na conta, antes de programar.

Para validar tudo isso, faça o backtest no símbolo correto e teste em conta demo no pregão real (veja /blog/como-fazer-backtest-metatrader-5). O histórico de ações pode ter ajustes por proventos e desdobramentos, o que também deve ser considerado ao ler resultados.

Se o robô tem horário de operação e zeragem, o artigo /blog/horario-operacao-robo-metatrader-5 mostra como estruturar essa janela em qualquer ativo.

Resumo

  • O lote padrão de ações costuma ser 100; o fracionário vai de 1 a 99 e, no MT5, geralmente é outro símbolo.
  • Leia SYMBOL_VOLUME_MIN, SYMBOL_VOLUME_MAX e SYMBOL_VOLUME_STEP em vez de fixar o volume no código.
  • Ajuste o volume ao passo, arredondando para baixo, e não opere se ficar abaixo do mínimo.
  • Os horários da B3 mudam; use SymbolInfoSessionTrade e confirme a grade atual no site da B3.
  • Nos leilões não há ordem a mercado: opere na negociação contínua e zere antes do call de fechamento.

Quer um robô de ações da B3 feito sob medida?

  1. Descreva a estratégia pelo Termo de Referência do site ou pelo WhatsApp.
  2. Analiso as regras, o ativo (lote padrão ou fracionário) e os horários do seu caso.
  3. Você recebe o robô testado em conta demo, com o código-fonte.

Orçamento pelo WhatsApp: (84) 99652-3661

Leia também