Fase 1 — Fundamentação · Documento operacional · v1.0
Dicionário de Dados e Estrutura do Banco Científico AT.RFG2P
Padroniza, armazena, audita e disponibiliza os dados necessários aos 10 estudos científicos da linha ATB3. Depende do Protocolo Científico ATB3 — AT.RFG2P v1.0.
1.Finalidade do documento
Este documento transforma o Protocolo Científico ATB3 — AT.RFG2P v1.0 em uma estrutura operacional de dados. O objetivo é criar uma base que permita responder, de maneira rastreável, perguntas como: qual ativo foi analisado, em qual data, qual era o preço disponível no momento da projeção, quais foram os níveis 1P a 9P, qual tolerância foi utilizada, o nível foi atingido, houve toque/rejeição/rompimento, quanto tempo demorou, qual era a volatilidade e o regime de mercado, qual versão do método gerou o resultado e se o resultado pertence à amostra de desenvolvimento ou à validação fora da amostra.
A base deverá permitir que um terceiro reconstrua o experimento sem depender de interpretação subjetiva.
2.Princípio central da base
A unidade fundamental do banco será a combinação ativo + data + nível + experimento. Exemplo: PETR4 + 22/09/2025 + 3P + EXP-001. Uma observação não é apenas "PETR4 acertou" — ela é uma observação completa, rastreável e auditável.
3.Arquitetura geral do banco
A estrutura recomendada é dividida em 8 camadas, para evitar misturar dado bruto → cálculo → resultado → estatística:
- Identificação
- Dados de mercado
- AT.RFG2P
- Eventos / resultados
- Contexto de mercado
- Metadados
- Auditoria
- Estatística
4.Identificador único da observação
Cada registro deverá possuir um observation_id no formato ATB3-DATA-ATIVO-NÍVEL-EXPERIMENTO. Exemplo: ATB3-20250922-PETR4-3P-EXP001. Esse identificador deverá ser único.
5.Tabela principal — observações AT.RFG2P
Esta é a principal tabela científica.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| observation_id | Texto | Sim | ID único |
| experiment_id | Texto | Sim | Identificação do experimento |
| protocol_version | Texto | Sim | Versão do protocolo |
| method_version | Texto | Sim | Versão do AT.RFG2P |
| trade_date | Data | Sim | Data do pregão |
| ticker | Texto | Sim | Código do ativo |
| asset_name | Texto | Sim | Nome da empresa |
| sector | Texto | Sim | Setor |
| level | Texto | Sim | 1P a 9P |
| level_number | Inteiro | Sim | Número do nível |
| projection_timestamp | Data/hora | Sim | Momento da projeção |
| reference_price | Decimal | Sim | Preço de referência |
| projected_level | Decimal | Sim | Nível AT.RFG2P |
| tolerance | Decimal | Sim | Tolerância utilizada |
| window_start / window_end | Data/hora | Sim | Início e fim da observação |
| success | Binário | Sim | 1 = sucesso; 0 = não sucesso |
| result_status | Texto | Sim | Classificação do resultado |
6.Dados de mercado
6.1 Preços
| Campo | Descrição |
|---|---|
| open | Abertura |
| high | Máxima |
| low | Mínima |
| close | Fechamento |
| adjusted_close | Fechamento ajustado, quando disponível |
6.2 Volume
| Campo | Descrição |
|---|---|
| volume | Volume negociado |
| financial_volume | Volume financeiro, quando disponível |
6.3 Dados adicionais
Quando utilizados: VWAP, número de negócios, spread, volatilidade intradiária, retorno, gap e amplitude.
7.Estrutura dos níveis 1P–9P
A base final deverá permitir consultar os níveis em formato de tabela horizontal (ativo × data × 1P…9P), mas para análise científica a estrutura principal deverá ser vertical — uma linha por nível, ex.: PETR4 | 22/09/25 | 1P, PETR4 | 22/09/25 | 2P ... Isso facilita análises estatísticas.
8.Eventos do nível
| Evento | Definição |
|---|---|
| touch | O preço entrou na região de tolerância |
| rejection | O preço atingiu o nível e posteriormente se afastou segundo a regra definida |
| breakout | O preço atravessou o nível segundo a regra definida |
| no_touch | O preço não alcançou a região dentro da janela |
| insufficient_data | Não houve dados suficientes para classificar |
| excluded | Observação excluída por regra previamente definida |
9.Campos de evento
| Campo | Descrição |
|---|---|
| touch_flag / touch_timestamp / touch_price | Ocorrência, momento e preço do primeiro toque |
| distance_to_level / distance_pct | Distância até o nível, absoluta e percentual |
| rejection_flag / rejection_timestamp | Ocorrência e momento da rejeição |
| breakout_flag / breakout_timestamp | Ocorrência e momento do rompimento |
| first_event / time_to_event | Primeiro evento observado e tempo até ele |
10.Distância do preço ao nível
Não basta registrar acertou/errou — também é preciso armazenar a distância entre o preço observado (P) e o nível projetado (L), em valor absoluto e em percentual. Isso permite análises muito mais sofisticadas.
11.Tolerância
A tolerância é armazenada individualmente em tolerance_value (ex.: 0,00 / 0,01 / 0,05 / 0,10) e em tolerance_rule (REGRA_A / B / C / D). Isso permite comparar diferentes especificações sem apagar o resultado original.
12.Janela temporal
Cada experimento deverá possuir window_start e window_end — essencial para definir quando um nível poderia ser considerado atingido.
13.Registro de informação disponível
information_cutoff_timestamp
Registra o último momento em que informações puderam ser utilizadas para gerar a projeção. Serve para auditoria do look-ahead bias.14.Versão do método
Cada cálculo deverá registrar method_version (ex.: AT.RFG2P-v1.0). Resultados de versões diferentes não deverão ser misturados silenciosamente.
15.Versão do protocolo
Também será registrado protocol_version (ex.: ATB3-PROTOCOL-v1.0), para saber exatamente sob qual regra cada resultado foi produzido.
16.Classificação in-sample / out-of-sample
Campo sample_type, com valores IN_SAMPLE, OUT_OF_SAMPLE, VALIDATION ou ROBUSTNESS.
17.Regime de mercado
Campo market_regime: BULL, BEAR, SIDEWAYS, HIGH_VOLATILITY, LOW_VOLATILITY, CRISIS ou UNKNOWN. Essa classificação deverá possuir metodologia própria — não é permitido classificar um período como "bull" ou "bear" apenas porque o resultado do AT.RFG2P foi melhor ou pior.
18.Volatilidade
A base deverá armazenar as medidas de volatilidade utilizadas: retorno, volatilidade histórica e, quando aplicável, ATR, volatilidade realizada, desvio-padrão e volatilidade intradiária. Cada métrica com seu próprio campo.
19.Gap
Campo gap_pct, calculado a partir da abertura vs. fechamento anterior. O tratamento de gaps deverá ser definido previamente em cada experimento.
20.Dados de fonte
| Campo | Descrição |
|---|---|
| data_source | Fonte |
| source_version | Versão/fonte específica |
| download_timestamp | Data/hora de obtenção |
| data_frequency | Diário/intradiário |
| adjustment_method | Método de ajuste |
21.Dados de auditoria
Cada registro deverá possuir created_at, updated_at, created_by, calculation_id e, quando tecnicamente possível, data_hash — para impedir que resultados sejam alterados sem rastreabilidade.
22.Tabela de ativos
| Campo | Descrição |
|---|---|
| ticker | Código |
| company_name | Empresa |
| sector / subsector / segment | Classificação |
| listing_date | Data de listagem |
| status | Situação |
| liquidity_class | Classe de liquidez |
23.Tabela de experimentos
Cada artigo deverá ter seus experimentos registrados na tabela experiments.
| Campo | Exemplo |
|---|---|
| experiment_id | EXP001 |
| article_id | ART001 |
| experiment_name | Validação principal |
| objective | Validar níveis |
| sample_type | OUT_OF_SAMPLE |
| tolerance | ±0,10 |
| window | 1 pregão |
| null_hypothesis | p=0,50 |
| alpha | 0,05 |
| status | CONCLUÍDO |
24.Tabela de artigos
| ID | Artigo |
|---|---|
| ART001 | Validação estatística |
| ART002 | AT.RFG2P × análise técnica |
| ART003 | AT.RFG2P × passeio aleatório |
| ART004 | Eficiência dos níveis |
| ART005 | Aplicação em ações B3 |
| ART006 | Robustez setorial |
| ART007 | Fora da amostra |
| ART008 | Gestão de risco |
| ART009 | Backtest longo |
| ART010 | Evidência consolidada |
25.Tabela de resultados estatísticos
A estatística agregada não substitui os dados individuais — ela é derivada deles.
| Campo | Descrição |
|---|---|
| experiment_id | Experimento |
| n / successes / failures | Observações, sucessos e erros |
| success_rate | Taxa |
| wilson_lower / wilson_upper | Limites do IC de Wilson |
| z_statistic / p_value | Estatística z e p-valor |
| effect_size | Tamanho do efeito |
| permutation_p | p-valor permutacional |
26.Tabela de testes de robustez
robustness_tests — exemplos: ROB-001 (tolerância 0,00) até ROB-004 (tolerância 0,10), ROB-005 (exclusão de baixa liquidez), ROB-006/007 (setor financeiro/energia), ROB-008/009 (mercado de alta/baixa), ROB-010 (out-of-sample).
27.Estrutura completa do banco
Arquitetura final: ATB3_DATABASE com as tabelas assets, market_data, experiments, observations, events, market_regimes, method_versions, protocol_versions, articles, statistical_results, robustness_tests e audit_log.
28.Relacionamento entre as tabelas
Artigos → Experimentos → Observações → (Ativos, Dados de Mercado, Eventos, Versão AT.RFG2P, Versão do Protocolo) → Resultados → Robustez.
29.Exemplo de uma observação
| Campo | Valor |
|---|---|
| observation_id | ATB3-20250922-PETR4-3P-EXP001 |
| ticker / data / nível | PETR4 / 22/09/2025 / 3P |
| projeção | 08:00 |
| tolerância | 0,10 |
| toque / rejeição / rompimento | 1 / 1 / 0 |
| sucesso | 1 |
| sample_type | OUT_OF_SAMPLE |
| method_version / protocol_version | AT.RFG2P-v1.0 / ATB3-PROTOCOL-v1.0 |
30.Regra de ouro: dado bruto ≠ dado calculado
A base deverá separar claramente quatro camadas — nunca substituir o dado original pelo resultado calculado:
| Camada | Exemplo |
|---|---|
| Dados brutos | Open, High, Low, Close, Volume |
| Dados calculados | 1P, 2P, 3P, ..., 9P |
| Resultados | touch=1, rejection=1, success=1 |
| Estatísticas | 61,11%, IC95%, p-value, z |
31.Controle de alterações
| Campo | Exemplo |
|---|---|
| change_id | CHG001 |
| date | 2026-08-16 |
| old_version / new_version | v1.0 / v1.1 |
| reason | Correção metodológica |
| impact | Alto |
| approved_by | Responsável |
| retroactive | Não |
32.Regras de integridade
O banco deverá rejeitar: registro sem ativo, sem data ou sem nível; nível diferente de 1P–9P; observação duplicada; resultado sem projeção; resultado calculado antes da projeção; observação OOS utilizada para ajuste.
33.Controle especial de look-ahead
34.Controle de dados ausentes
Nunca transformar automaticamente dado ausente em zero. Usar códigos específicos: NA (não disponível), ND (não determinado), EX (excluído). Isso evita distorções estatísticas.
35.Banco de dados mestre
Recomenda-se manter três versões, seguindo o fluxo Fonte → RAW → CLEAN → RESEARCH → Experimento → Artigo. Nunca editar manualmente o RAW.
| Versão | Descrição |
|---|---|
| ATB3_RAW | Dados originais |
| ATB3_CLEAN | Dados tratados |
| ATB3_RESEARCH | Dados preparados para experimentos |
36.Padrão de nomenclatura
| Tipo | Padrão |
|---|---|
| Dados | ATB3_RAW_YYYYMMDD.csv |
| Dados tratados | ATB3_CLEAN_YYYYMMDD.csv |
| Pesquisa | ATB3_RESEARCH_EXP001_v1.0.csv |
| Resultados | ATB3_RESULTS_EXP001_v1.0.csv |
| Código | ATB3_CODE_EXP001_v1.0.py |
| Relatório | ATB3_REPORT_EXP001_v1.0.pdf |
37.Tamanho mínimo da base
Para o primeiro estudo, referência de 50 ações × 30 pregões = 1.500 observações de ativo/data. Como existem nove níveis, isso resulta em até 13.500 observações potenciais de nível — substancialmente mais informativo do que trabalhar com algumas dezenas de operações. O número final efetivamente utilizado deverá ser determinado após aplicação dos critérios de elegibilidade e qualidade dos dados.
38.Estrutura para o Artigo 1
O banco deverá permitir gerar automaticamente uma tabela com ativos, pregões, observações ativo/data, níveis, observações de níveis, sucessos, erros, taxa de sucesso, IC 95%, z, p-valor e permutação — preenchida somente após a execução efetiva do experimento.
39.Estrutura para os Artigos 2–10
A mesma base mestra permite derivar os experimentos dos Artigos 2 a 10 (benchmark, modelo aleatório, comparação 1P–9P, comparação entre ações e setores, out-of-sample, gestão de risco, histórico de longo prazo e consolidação) — não é necessário criar dez bancos diferentes.
40.Governança da base
- Imutabilidade do histórico — dados brutos não são sobrescritos.
- Versionamento — toda alteração relevante possui versão.
- Rastreabilidade — todo resultado pode voltar ao dado original.
- Reprodutibilidade — outro pesquisador deve conseguir reconstruir o cálculo.
41.Checklist de implementação v1.0
Antes de iniciar o Artigo 1: criar bancos RAW/CLEAN/RESEARCH; definir universo, período, fonte oficial e frequência; formalizar matematicamente o AT.RFG2P, os níveis 1P–9P, tolerância, toque, rejeição, rompimento, acerto e erro; definir horário de corte; implementar controle de look-ahead; definir in-sample/out-of-sample; criar IDs de experimentos, controle de versões e log de auditoria; validar consistência da base; executar teste piloto; congelar protocolo; gerar base definitiva do Artigo 1.
42.Decisão metodológica importante
Até este documento, a leitura era principalmente AT.RFG2P → resultado → taxa de acerto. A partir daqui, a arquitetura passa a ser:
Isso é muito mais adequado para uma linha de pesquisa científica.