Diário de um Portfólio de Robôs (19): O Simulado Passou no Risco com Tombo de 227 Dólares, e Levei os 54 Robôs para a Conta Real

O simulado de 54 robôs passou no item de risco com tombo de 227,51 dólares, contra banda de 439 e linha de reprovação de 768, e reprovou na checagem de execução. Levei os mesmos robôs para uma conta real de US$ 1.000,19, que 18 dias depois estava 30,63 abaixo do saldo-base.

Direto ao ponto. O simulado dos 54 robôs passou no item que decidia o teste, o risco: o pior tombo pela medida oficial do teste foi de 227,51 dólares, contra uma banda de aprovação de 439 e uma linha de reprovação de 768. A checagem de execução reprovou. Em 3 de setembro pus o mesmo portfólio de robôs em conta real, no mesmo lote, com US$ 1.000,19. Dezoito dias depois ela estava 30,63 dólares abaixo do saldo-base.

Passou no critério que eu escrevi antes de ligar, e reprovou em outro. O teste de dois meses em conta simulada da Tickmill rodou de 14 de julho a 3 de setembro de 2026, 50,8 dias, com 15 grids e 39 robôs do StrategyQuant X no lote 0,01, e fechou 540 posições. O critério de aprovação era o tamanho do tombo, e a medida oficial dele, que chamo de regente, terminou em 227,51 dólares, abaixo até da mediana de 258 que o backtest produz em janelas de dois meses, usando 29,6% da linha de reprovação. A checagem de execução marcou 6 robôs. O resultado da era, patrimônio final menos saldo-base, foi de −18,14 dólares, ou −0,18%.

Encerrei o simulado no dia 50,8 dos 62 previstos, e 31 minutos depois os mesmos 54 robôs inicializaram na conta real 55948384, com saldo-base de US$ 1.000,19, contra os cerca de 1.200 dólares que o protocolo de julho previa para ela. O cálculo que decide o tamanho é curto. Robô no mesmo lote produz o mesmo tombo em dólar em qualquer conta, então os 227,51 que eram 2,31% da conta simulada viram 22,75% desta. Por isso criei uma segunda régua. Na foto de 21 de setembro, às 9h24, o patrimônio era de 969,56 e o resultado da era, −30,63 dólares (−3,06%).

Barras do pior tombo em dólar: no simulado, 207,48 pela série do painel e 227,51 pelo regente do teste; na conta real, 101,13 pela série e 198,59 pelo regente; ao lado, a mediana de 258, a banda de aprovação de 439 e a linha de reprovação de 768 do backtest.

Os quatro itens do teste e o que cada um deu

O protocolo foi escrito em 2 de julho, e as bandas em dólar desta carteira saíram em 12 de julho, dois dias antes do dia 0, de 122 janelas rolantes de 60 dias do backtest da carteira entre 2024 e 2026. Esse trecho vem depois da construção de cada robô no StrategyQuant X, mas foi nele que escolhi os 54 da carteira, então para a carteira as bandas são in sample. Otimistas por construção. A linha de 768 é o percentil 95 multiplicado por 1,75, a inflação de risco que o walk-forward do capítulo 11 mediu fora da amostra. Ela virou a linha de reprovação em 17 de agosto, no meio do teste. Até ali valiam cerca de 900 dólares, herdados das bandas de uma carteira anterior.

Item O que mede Resultado
1. Risco Pior tombo da era contra as bandas Passou: 227,51 dólares, 29,6% da linha de 768
2. Execução Frequência e lado de cada robô contra o backtest Reprovou: 6 robôs marcados
3. Disjuntor Quantas vezes a proteção tirou um robô Sem medida: o extrato não separa stop de alvo
4. Retorno Registrado, fora do critério −18,14 dólares, ou −0,18%

O item 1 tem dois números. Os capítulos 17 e 18 publicaram 207,48 dólares, varrendo a série que o painel grava, do topo de 7 de agosto ao fundo de 21 de agosto. O teste usa o regente do dd_era.py, script que escrevi em 21 de julho, no sétimo dia da era, com a mesma régua de pior prejuízo por par que gerou as bandas. Ele reconstrói cada dia útil com barras de 5 minutos e põe o vale do dia no realizado acumulado na abertura mais o pior prejuízo aberto do dia, somando o pior de cada par. Deu 227,51 dólares, no mesmo dia. A diferença de 20,03 é de método: a série guarda um ponto por hora fora das últimas 24 horas e perde o minuto exato do fundo, e a reconstrução soma os piores de cada par mesmo quando eles aconteceram em horas diferentes.

O item 2 reprovou. O reconcilia.py compara as operações de cada robô ao vivo com as que o backtest previa no mesmo número de dias, e marca divergência com razão abaixo de 0,3 ou acima de 3,0, robô mudo quando 5 ou mais operações esperadas viraram zero, e posição presa quando ela passa de 30 dias e do tempo máximo que o backtest segurou. A rodada de 3 de setembro marcou 6 robôs. Dois mudos, o Strategy 4.6.77 e o 6.6.58. Quatro fora da frequência, três deles com razão de 0,2 e o 4.5.82(1) com 27 operações contra 8 esperadas, e três posições presas, uma delas aberta havia 46 dias num robô cujo backtest nunca segurou posição por mais de 4.

A causa das presas é mecânica: a variável global que conta o tempo de saída dos robôs SQX se perde quando o terminal é religado, e a posição passa do número de barras em que a regra de saída a fecharia. E tem um erro meu. A rotina escrita no protocolo mandava rodar o reconcilia toda semana, e ele só rodou no dia 50.

O item 3 ficou sem medida. O log do MT5 guarda uns 9 dias, e as 171 saídas de grid da era contadas em 2 de setembro chegaram ao extrato sem comentário, então o stop global que fecha a cesta de um grid aparece igual ao alvo. Os capítulos 17 e 18 disseram que nenhum robô foi retirado pelo disjuntor, e aquilo mediu o teto de drawdown de Monte Carlo de cada robô, que ninguém passou (o mais perto foi o grid cad_atr_H8a, com 24,2% do teto em 1º de setembro). O stop global dentro de cada grid segue sem contagem.

O retorno negativo e o que o encerramento mostrou

Dois meses de uma carteira com índice de Sharpe perto de 0,5 são ruído, e por isso o retorno ficou fora do critério. O número entra no texto assim mesmo. No backtest, 98% das janelas de dois meses fecharam positivas, com mediana de +532 dólares e pior janela em −90, e os −18,14 caíram entre as até 2% que não ficaram no azul, numa era de 50,8 dias e contra um backtest in sample. O protocolo manda investigar retorno negativo. A investigação chegou ao custo e ao encerramento.

Etapa (dólares) Valor
Lucro bruto das 540 posições +49,32
Comissão, 1.058 negócios a 0,03 cada −31,74
Swap −29,71
Resultado realizado −12,13
Posição aberta que já estava dentro do saldo-base no dia 0 −6,01
Resultado da era −18,14

O custo levou 61,45 dólares contra um bruto de 49,32. Em 1º de setembro o bruto era 173,04. O encerramento derrubou o bruto. Às 9h41 do dia 3 o patrimônio já estava em 9.848,41, com 143,05 de prejuízo aberto, e fechar as 49 posições converteu aberto em realizado sem mexer no patrimônio. Os grids entregaram −241,13 nesse fecho e os SQX, +96,88. É o padrão do capítulo 18. O grid fecha ganho cedo e carrega a perda no aberto até o dia em que a era fecha tudo de uma vez.

A terceira pergunta do capítulo 18 também tem resposta. Em 1º de setembro faltavam 18 dólares para o saldo voltar aos 9.999,34 com que a conta simulada começou a operar em 30 de junho, e às 8h48 do dia 3 o saldo chegou a 10.000,08, com 118,11 de prejuízo aberto. Às 9h37 já estava em 9.991,46. O encerramento realizou o aberto e a conta terminou com 9.848,68, ou seja, 150,66 abaixo do ponto de partida.

O que a régua dizia sobre ir para o real com um item reprovado

A lista de reprovação, a que impede a conta real, tem quatro gatilhos: tombo acima de 768 sustentado janela após janela, um robô com cerca de 10 vezes a frequência do backtest ou operando no lado trocado, muito mais retiradas de disjuntor que as 1,7 esperadas em dois meses, e buraco de infraestrutura que faça o monitor mentir. O de tombo e o de infraestrutura não dispararam: o máximo foi 227,51, e as conferências de 14 de agosto e 1º de setembro acharam 54 gráficos com 54 robôs anexados. No de execução, a maior razão de frequência foi 3,4 vezes, e o detector de lado trocado acendeu uma vez, no Strategy 2.8.78, registrado no painel como vendedor, que entrou comprado em 4 das 5 entradas da era. Cinco entradas é o piso da regra. O de disjuntor ficou sem medida.

Em 2 de julho eu escrevi que o simulado podia ter margem de erro e só seria reprovado se mostrasse algo totalmente distinto do backtest. O item 2 reprovou sem acionar gatilho. A régua não tem linha para isso. Levei os robôs para a conta real em 3 de setembro, 11,2 dias antes dos 62 previstos, e registro aqui que essa decisão ficou fora do texto da régua. Dois consertos saíram do simulado e já rodam na conta real: a versão 1.21 do robô de grid, que refaz o relógio de reentrada e o contador de aumentos depois de um religa e responde à recuperação de estado reprovada no item 2, e o conserto do primeiro tick dos SQX.

Por que a conta real tem duas réguas

A conta real tem 10,14% do tamanho da simulada e roda os mesmos robôs, com os mesmos números mágicos, no mesmo lote 0,01. O tombo em dólar é o mesmo. O percentual cresce 9,86 vezes.

Referência Dólares Na simulada (9.866,82) Na real (1.000,19)
Pior tombo do simulado, pelo regente 227,51 2,31% 22,75%
Banda de aprovação, percentil 95 439 4,45% 43,89%
Linha de reprovação 768 7,78% 76,79%

A régua A continua em dólar e julga se o portfólio se comporta como o backtest, porque dividir as bandas por 10 faria a linha de reprovação disparar numa semana comum. A régua B é nova e mede o tombo em percentual do saldo-base, com alerta em 10% do saldo-base (100,02 dólares), atenção em 20% (200,04) e reprovação de capital em 30% (300,06). O alarme é a que dispara primeiro. Nesta conta é sempre a B.

Uma repetição do pior tombo do simulado, 22,75% do capital, cai entre a atenção e a reprovação de capital. Esses percentuais são ponto de partida. No backtest, o tombo de dois meses tem mediana de 258 e percentil 75 de 354, então de 25% a 50% das 122 janelas passariam dos 300,06, num backtest in sample que já é otimista.

O que conferi no dia 3, e as ordens do primeiro tick

Em Brasília, horário de todas as horas deste texto (o servidor da Tickmill fica 6 horas à frente), o depósito caiu às 8h29, o simulado foi encerrado às 9h41 e às 10h13 os 54 robôs inicializaram na conta real, com zero posição e o AutoTrading desligado, e os 15 grids, já na versão 1.21, recuperaram o estado em 20 a 22 segundos. Às 10h15 um script conferiu o ambiente: conta hedging como a simulada, os quatro pares com o nome exato, contrato de 100.000 unidades e lote mínimo de 0,01.

O defeito conhecido tinha aparecido duas vezes no simulado. Nos 39 SQX, a variável que guarda a hora da última barra nasce zerada a cada carga do robô, e o código tratava esse zero como barra nova, então no primeiro tick depois do religa as regras de entrada rodavam contra a última barra fechada, ao preço daquele instante. Em 12 de agosto o religa gerou 8 negócios em 2 segundos, 4 deles de SQX. Na conta real, às 10h13, vieram 25 tentativas. Todas voltaram com o código 10027, a recusa do MT5 por AutoTrading desligado no terminal. Virou regra desligar o AutoTrading antes do login.

O conserto mudou um ramo da lógica: com a hora guardada em zero, o robô registra a barra atual sem tratá-la como abertura. Publiquei nos 39 às 17h21, e o registro do religa diz zero ordem nos segundos seguintes. Isso vale para os SQX. O extrato mostra 8 entradas de grid 27 e 43 segundos depois do religa, seis delas em grids de USD/JPY. O robô de grid faz o mesmo por desenho, porque a hora da última barra dele também nasce zerada e, com zero posição, o primeiro tick depois de recuperar o estado conta como barra nova, e o comentário no código diz que é o comportamento da versão 1.20, mantido de propósito.

Os primeiros 18 dias na conta real

Medida em 21/09, 9h24 (dólares) Valor
Saldo, só o que fechou 1.053,87
Posição aberta −84,31
Patrimônio 969,56
Resultado da era, patrimônio menos saldo-base de 1.000,19 −30,63 (−3,06%)
Posições fechadas / abertas 192 / 49

O saldo está no maior valor da era e o patrimônio está abaixo do saldo-base, a divisão que o capítulo 18 mostrou no simulado. Quem puxa para baixo é o aberto.

Medida, 192 fechadas Grid (15 robôs) SQX (39 robôs)
Posições fechadas 46 146
Acerto no líquido 87,0% 40,4%
Resultado fechado +85,86 −30,71
Posição aberta agora −134,07 +49,76
Fechado mais aberto −48,21 +19,05

O fechado da tabela, no líquido de cada posição, soma +55,15, e o saldo mostra +53,68 porque já pagou a comissão de entrada das 49 abertas (49 vezes 0,03, que dá 1,47), e pela mesma razão as famílias somam −29,16 contra os −30,63 do resultado da era. Os grids repetem o simulado. Fecham ganho em 87% das vezes e carregam 134,07 dólares de prejuízo aberto, mais que o fechado inteiro deles.

Curva da conta real de 3 a 21 de setembro de 2026 pela série do painel: pico de +35,66 dólares em 6 de setembro às 23h59, vale de −64,51 em 18 de setembro às 10h59, tombo de 100,17 na série e 101,13 em patrimônio, e 1,97 hora sem ponto logo depois do vale.

O tombo segue a regra que prometi no capítulo 18. Varri a série inteira que o painel gravou até 21 de setembro, 797 pontos, e o pior caminho vai do pico de 6 de setembro às 23h59 ao vale de 18 de setembro às 10h59: 100,17 dólares na métrica da série e 101,13 em patrimônio. A diferença de 0,96 é a comissão de entrada das 32 posições abertas a mais no vale (38, contra 6 no pico), que a série deixa de fora. É um piso, porque fora das últimas 24 horas a série guarda um ponto por hora.

O regente, pelo mesmo método do simulado, deu 198,59 dólares, também no dia 18. A reconstrução põe o vale do dia no realizado da abertura (−28,06) mais o pior prejuízo aberto do dia somando o pior de cada par (−133,77, com USD/JPY em −88,69, USD/CAD em −25,32 e GBP/USD em −19,76). Só que no dia 18 o portfólio fechou 20 posições com +74,01, e no instante do vale da série o realizado já estava em +41,94. A reconstrução mede como se o pior prejuízo aberto do dia tivesse convivido com o realizado da abertura. Ela também não serve de teto. Até 17 de setembro ela marcava 93,87, com o vale no dia 10, enquanto a série já tinha 100,76 em patrimônio no dia 9, porque ali o realizado caiu durante o dia.

O tombo da conta real foi de pelo menos 101,13. Na régua A, ele e o regente de 198,59 são 23,0% e 45,2% da banda de aprovação. Na régua B, os 101,13 são 10,11% do saldo-base, 1,11 dólar acima do alerta, e o vale de 9 de setembro, com 100,76, também passou dele. O regente ficou 1,45 abaixo da atenção. O painel guarda só o estado do instante, sem registro de alerta, e eu não consigo provar se o alerta acendeu na tela nas duas vezes.

E o vale tem um buraco logo depois. Às 11h06 do dia 18 o notebook que roda o terminal hibernou por bateria crítica e só voltou às 13h04, e a série ficou 1,97 hora sem ponto. Nesse intervalo o servidor executou o stop do Strategy 2.1.75, no USD/JPY, com −5,12 no líquido, porque o stop dos SQX mora na corretora. Os grids não têm stop no servidor. A proteção deles roda dentro do robô, e com o terminal apagado as cestas ficaram duas horas sem ela. O pior instante real pode ter caído dentro desse buraco.

Em 4 de setembro desliguei o AutoTrading antes do payroll das 9h30, porque os quatro pares são cotados contra o dólar e o dado bate nos 54 robôs ao mesmo tempo, o mecanismo do payroll de 7 de agosto. Uma ordem pendente do Strategy 1.5.81 executou mesmo assim. Ela estava no servidor da corretora, e desligar o AutoTrading impede ordem nova sem cancelar a que já está lá: executou seis segundos depois do dado e ficou aberta 10 minutos e 54 segundos, com +2,73. A regra que ficou é que toda parada apaga as ordens pendentes, e a conferência final lê as ordens além das posições.

O que eu ainda não sei sobre a conta real

  • Se a execução real bate com o backtest robô a robô. O reconcilia.py, o item que reprovou no simulado, ainda não rodou na conta real.
  • O tamanho real do tombo de 18 de setembro. A série dá 101,13 como piso. O regente, 198,59, junta o realizado da abertura com o pior aberto do dia, e no vale da série o realizado já estava em +41,94.
  • Se a régua de capital fica como está, com a reprovação em 300,06, entre a mediana e o percentil 75 do tombo de dois meses do backtest.
  • O stop de catástrofe dos grids no servidor, a versão 1.22, que ainda não começou.
  • A causa do swap: −29,71 no simulado inteiro, +0,55 na conta real até 20 de setembro.

O que o próximo capítulo mede

A conta real completa um mês em 3 de outubro de 2026. O próximo capítulo sai com o tombo varrido na série, o regente pelo mesmo método, as duas réguas lado a lado, o reconcilia rodado na conta real e o fechado separado do aberto por família. A partir de 25 de setembro começa também uma série que abre um robô do portfólio por vez, com a lógica, o backtest e os dados de cada um no simulado e na conta real. Os dois números de tombo seguem saindo juntos.

Perguntas frequentes

Quanto tempo de simulado antes de levar um portfólio de robôs para a conta real?

Eu planejei 62 dias e encerrei com 50,8, depois de 540 posições fechadas por 54 robôs. O prazo vem da régua: as bandas de risco saíram de janelas de 60 dias do backtest, e o teste precisa de uma janela parecida para comparar.

Por que o drawdown em dólar é o mesmo numa conta de 10 mil e numa de mil?

O tamanho de cada posição é fixo em lote 0,01, então o robô ganha e perde os mesmos dólares nas duas contas. O pior tombo do meu simulado foi de 227,51 dólares, 2,31% de uma conta de 9.866,82. Numa conta de 1.000,19, o mesmo tombo vira 22,75% do capital, e por isso ela precisa de uma régua em percentual do saldo-base além da régua em dólar.

Referências

  • MetaQuotes (consultado em 21/09/2026). MQL5 Reference: Trade Server Return Codes. mql5.com. O código 10027, TRADE_RETCODE_CLIENT_DISABLES_AT, é a recusa por AutoTrading desligado no terminal.
  • Diário de um Portfólio de Robôs, capítulo 18: o recorde de saldo da era simulada e a regra de uma definição só para o resultado da era.
  • Diário de um Portfólio de Robôs, capítulo 11: o walk-forward que mediu a inflação de risco de 1,75 fora da amostra.

Presente para Leitores: Robô de Gradiente Linear Gratuito

Estou liberando o acesso ao meu setup pessoal de Gradiente Linear sem custo nenhum. É só clicar e me pedir o arquivo.

Quero meu Robô Gratuito
🔒 Acesso Direto no WhatsApp
⚠️ Aviso de risco: O conteúdo do Invista Já é educacional e informativo sobre algotrading e estratégias quantitativas e não constitui recomendação ou consultoria de investimento, nem oferta ou solicitação de compra ou venda de qualquer ativo. Operações no mercado financeiro envolvem risco de perda, inclusive do capital investido, e resultados passados não garantem resultados futuros. Avalie seu perfil de risco e, se necessário, consulte um profissional certificado antes de investir.

Quem escreve: Flávio Araújo

Trader algorítmico há mais de 13 anos, MBA em Mercado de Capitais e Derivativos. Mantém um laboratório próprio que já rodou mais de 20 milhões de backtests e analisou mais de 20 mil estratégias, e opera um portfólio de robôs acompanhado publicamente no blog. LinkedIn · Instagram · YouTube

Flávio Araújo
Flávio Araújo

Engenheiro com MBA em Mercado de Capitais e Derivativos. Atua há mais de 10 anos no Mercado Financeiro, com 6 anos dedicados ao Algotrading e estratégias quantitativas. Especialista em validação de robustez e automação de investimentos.

Artigos: 196