Caro criador da estratégia baseada nos dados de emprego,
Criaste uma regra simples: após a divulgação do relatório de emprego dos EUA, a tua estratégia mantém um ETF de ações durante cinco sessões se o crescimento mensal do emprego exceder 175,000. Caso contrário, fica em dinheiro. Programaste a entrada para depois da abertura do mercado de ações, incluíste os custos de negociação e mantiveste o limiar fixo. Depois, descarregaste uma série histórica de emprego e usaste-a para reconstruir todos os sinais.
O problema que te resta está nos dados descarregados. Uma série económica histórica pode conter estimativas revistas que não estavam disponíveis nas datas em que, supostamente, a tua estratégia negociou. Para testar honestamente um sinal macro, precisas da versão disponível em cada momento de decisão. Adiar a entrada uma barra não corrige um valor publicado dois meses mais tarde.
A tua observação de janeiro tem vários aniversários
Vejamos este histórico de divulgações fictício. Estas datas e variações do emprego ilustram o mecanismo; não são resultados económicos reais.
| Divulgação | Mês de referência | Variação do emprego divulgada | Regra nessa divulgação |
|---|---|---|---|
| 7 de fevereiro, 08:30 ET | Janeiro | +150,000 | Ficar em dinheiro |
| 7 de março, 08:30 ET | Janeiro, revisto | +185,000 | Não altera a decisão de fevereiro |
| 4 de abril, 08:30 ET | Janeiro, revisto novamente | +210,000 | Não altera a decisão de fevereiro |
Se a tua descarga apresenta janeiro como +210,000, a tua simulação entra no ETF em fevereiro. A tua regra real teria ficado em dinheiro. Todos os preços, carimbos temporais das ordens e comissões podem estar corretos, mas essa negociação é inteiramente fictícia.
Não podes partir do princípio de que esta contaminação melhora o desempenho. As revisões podem criar negociações vencedoras ou perdedoras, ou eliminar umas ou outras. O problema é que a tua simulação responde a uma pergunta que a tua estratégia não poderia ter feito naquele momento.
E janeiro é apenas o período medido. Não é a data em que soubeste o resultado dessa medição. Uma linha identificada como 1 de janeiro não te dá autorização para negociar com esse dado em 1 de janeiro.
Regista o histórico de disponibilidade de cada valor
A tua tabela de investigação precisa de mais do que um mês e um número. Guarda o período de referência, o valor, o carimbo temporal da divulgação, o identificador da versão e a fonte. Se recolheres dados continuamente, regista também quando o teu sistema recebeu a divulgação. Preserva as versões antigas em vez de atualizar os respetivos valores no mesmo sítio.
Em cada momento de decisão, seleciona a versão elegível mais recente de cada observação cujo carimbo temporal de disponibilidade não seja posterior a esse momento. Depois, calcula as tuas variáveis com base nesse retrato reconstruído.
A tua regra de consulta: primeiro, filtra os registos para incluir apenas o que já estava disponível; depois, seleciona as versões aplicáveis; por fim, calcula o sinal. Calcular as variáveis com base no histórico revisto de hoje e deslocar o resultado para trás mantém a fuga de informação.
O período de detenção de cinco sessões não torna esta organização opcional. Dá-te mais margem para escolher uma hora de entrada conservadora; não te dá acesso antecipado a revisões.
Em investigações mais antigas, podes ter provas da hora de divulgação pública sem registos da hora a que os teus sistemas receberam os dados. Mantém explícita essa distinção. Podes modelar o acesso com base num carimbo temporal de publicação documentado e num atraso declarado. Não podes descrever essa suposição como uma entrega histórica medida.
Também vais precisar de um carimbo temporal com fuso horário. Guarda a hora local documentada da divulgação e converte-a corretamente; um desfasamento UTC fixo para Nova Iorque falha quando muda a hora de verão. O teu eu do futuro agradece-te este pequeno gesto. O teu eu de setembro não devia ter de decifrar uma coluna do teu eu de março chamada date_actual_final2.
As tuas variáveis móveis precisam do histórico completo de versões
Imagina que substituis o limiar fixo por «o crescimento do emprego excede a média dos últimos 12 meses». Agora precisas das observações anteriores tal como eram conhecidas naquele momento de decisão, incluindo as revisões já publicadas até então.
Usar para sempre a primeira divulgação de cada mês define uma variável diferente. Pode ser uma escolha válida se pretenderes explicitamente analisar o histórico das divulgações iniciais. Mas não reconstrói o histórico económico visível numa manhã específica, porque o conjunto de informação disponível nessa manhã pode já incluir revisões de meses anteriores.
Se calculas as variações mensais do emprego a partir dos níveis de emprego, reconstrói a série de níveis com base na versão relevante antes de calcular as diferenças. Misturar um nível acabado de divulgar com o nível do mês anterior de uma versão mais antiga pode gerar uma variação que nunca constou de qualquer retrato publicado.
Por isso, tens de especificar o que significa a tua variável: divulgações iniciais, a imagem económica mais recente disponível ou as próprias revisões. «Crescimento do emprego» deixa demasiadas questões por decidir.
Corrige uma divulgação antes de voltares a executar 10 anos de dados
Podes começar pelo ALFRED, que disponibiliza históricos de versões para muitas séries económicas. Confirma a cobertura da série e do período exatos de que precisas. Uma data de versão, por si só, não comprova a disponibilidade intradiária; combina-a com a hora de divulgação documentada antes de a usares num sinal para o próprio dia.
Para a primeira auditoria, escolhe uma divulgação e reconstrói-a manualmente:
- Encontra a divulgação arquivada e regista o carimbo temporal da publicação, o mês de referência e o valor inicial.
- Reconstrói o retrato de dados que a tua estratégia teria recebido antes da entrada.
- Calcula o sinal manualmente e compara-o com o da tua simulação.
- Adiciona uma revisão posterior ao arquivo de dados e confirma que a decisão anterior não se altera.
Esta última verificação é especialmente útil numa pipeline de investigação automatizada. Fornece ao teu agente de investigação o limite temporal do retrato e os identificadores das versões selecionadas, juntamente com os valores das variáveis. Precisas de provas suficientes para relacionar uma negociação com uma divulgação específica, mesmo depois de a base de dados subjacente ter crescido.
Quando essa decisão isolada for reproduzida, volta a executar todo o histórico e compara as divergências entre sinais antes de comparar os retornos. Conta as entradas criadas, eliminadas ou deslocadas pela correção. Vais aprender mais com essas decisões alteradas do que com um único Sharpe antes e depois.
A tua negociação de fevereiro tem de se sustentar com a informação disponível em fevereiro. Deixa a revisão de abril em abril.
← Todos os artigos


