IA Quantitativa · Paper Trading Autônomo

Autotrader

Um experimento quantitativo autônomo que usa o Kronos-base como motor de previsão, transforma previsões de candles em sinais comparáveis, aplica regras determinísticas de carteira e registra cada decisão em público.

Como o modelo, a estratégia e a automação trabalham juntos

Autotrader

Autotrader não é o Kronos renomeado. Kronos é o modelo de previsão financeira. O Autotrader é a camada construída ao redor dele: aquisição de dados, execução do modelo, comparação entre ativos, construção da carteira, regras de risco, paper execution, persistência, atualização segura do upstream e visualização do histórico.

OHLCV + amount Kronos-base · 102,3M Portfolio engine GitHub Actions Paper execution
45+bolsas globais usadas no pré-treinamento do Kronos, segundo o projeto original
102,3Mparâmetros no Kronos-base usado pelo Autotrader
400candles diários de contexto usados por ativo
5pregões previstos à frente em cada rodada
Kronos por dentro

O que o Kronos faz antes de existir qualquer “compra”

O Kronos foi criado como um foundation model para sequências de candles financeiros. Ele não recebe “AAPL” e responde “compre”; recebe uma sequência numérica de mercado e gera uma continuação provável dessa sequência.

Pipeline real usado pelo Kronos
01 · INPUTCandles contínuosOpen, High, Low, Close, Volume e Amount formam uma sequência multidimensional de mercado.
02 · NORMALIZEEscala por sérieO predictor calcula média e desvio por coluna, normaliza os valores e aplica clipping para reduzir extremos.
03 · TOKENIZETokenizer financeiroUm encoder Transformer comprime a sequência contínua antes da quantização.
04 · BSQTokens hierárquicosBinary Spherical Quantization converte o estado contínuo em dois níveis discretos: s1 e s2.
05 · TRANSFORMERDecoder autoregressivoO Kronos-base modela a sequência de tokens com atenção causal e informação temporal.
06 · SAMPLEPróximos tokenss1 é amostrado primeiro; s2 é previsto condicionado ao contexto e ao s1 escolhido.
07 · DECODEVolta para preçosOs tokens são decodificados e a normalização é invertida para recuperar OHLCV/amount previstos.
O ponto importante: o modelo aprende e gera uma “linguagem” discreta de candles. A decisão de carteira vem depois, fora do Kronos.
Tokenização

Como uma sequência numérica vira algo que um Transformer consegue prever

O diferencial central do Kronos é não tratar cada preço como um token textual. Ele aprende um tokenizer próprio para K-lines e produz uma representação discreta hierárquica.

Continuous K-line → hierarchical tokens → autoregressive forecast

Candle contínuo

Cada passo carrega múltiplas dimensões correlacionadas: preço de abertura, máxima, mínima, fechamento, volume e valor negociado.

OHLCestrutura de preço
V + Amountatividade negociada
→

KronosTokenizer

O código original combina blocos Transformer de encoder/decoder com Binary Spherical Quantization. A representação quantizada é dividida em subtokens hierárquicos.

s1token “pre” / nível principal
s2token “post” condicionado
→

Kronos-base

HierarchicalEmbedding funde s1+s2, embeddings temporais entram no contexto e blocos Transformer causais geram a sequência futura de forma autoregressiva.

RoPEposição/atenção
DualHeads1 e s2
No código do Kronos, a segunda cabeça de saída é dependency-aware: o token s2 é condicionado pelo contexto do Transformer e pelo s1 amostrado.

Normalização

Para cada série, o KronosPredictor calcula média e desvio de OHLCV/amount, transforma os valores em z-scores e faz clipping em ±5 antes da inferência.

Tempo

Além dos candles, o modelo recebe minute, hour, weekday, day e month como sinais temporais. No nosso caso diário, os componentes relevantes ainda ajudam a localizar cada passo no calendário.

Amostragem probabilística

O Autotrader usa temperatura 1.0, top-p 0.9 e 3 trajetórias por ativo. As três sequências geradas são decodificadas e então médias pelo pipeline do Kronos.

Família de modelos

Por que esta versão usa Kronos-base

O repositório original publica modelos com capacidades diferentes. O Autotrader fixa o base porque o runner do GitHub consegue executá-lo em CPU e ele é a maior versão aberta da família principal.

Model zoo do projeto Kronos
ModeloTokenizerContextoParâmetrosAbertoUso aqui
Kronos-miniTokenizer-2k20484,1MSimNão
Kronos-smallTokenizer-base51224,7MSimNão
Kronos-baseTokenizer-base512102,3MSimAtivo
Kronos-largeTokenizer-base512499,2MNãoNão disponível
lookback = 400abaixo do limite 512 do base
pred_len = 5cinco pregões futuros
sample_count = 3três trajetórias médias
T = 1.0temperatura de sampling
top_p = 0.9nucleus sampling
device = CPUrunner Linux do Actions
Autotrader por dentro

Onde termina o Kronos e começa a lógica deste projeto

Kronos gera uma previsão por ativo. A partir daí o Autotrader calcula um score simples e comparável e só então decide quais ativos entram na carteira simulada.

Grafo operacional completo
Grafo operacional do Autotrader Mercado20 símbolos Data layer400 candles + validação Kronos-base102,3M · 5 sessões3 amostras médias Score(closê / close) - 1 Rankingfiltro + top sinais Risk rules18% · 5 posições · 10% caixa Paper executorfills + slippage Estado persistentestate.json + latest.json Dashboardgráficos + trades
A seta mais importante é a separação Kronos → score → risk rules. O modelo não escolhe diretamente o tamanho de uma posição e não pode ultrapassar os limites da carteira.
score(ativo) = (fechamento_previsto_no_5º_pregão / fechamento_atual) - 1 entrada = score ≥ 1% universo = 20 ativos seleção = até os 5 maiores scores elegíveis peso máximo = 18% por ativo caixa mínimo = 10% slippage simulado = 10 bps
Dados ao vivo

O experimento atual dentro da própria página

Esta seção lê os arquivos públicos gerados pelo último workflow. Não é uma captura estática: novos pontos, sinais e operações aparecem conforme o robô executa.

—valor atual da carteira
—retorno acumulado
—caixa atual
—posições abertas

Curva temporal da carteira

NAV persistido após cada execução
—

Alocação atual

Kronos-base

Previsões de retorno

verde = fechamento previsto acima do atual · vermelho = abaixo
AçãoAtivoQuantidadePreço simuladoNotionalHorário
Carregando operações…

Com apenas uma execução ainda existe apenas um ponto na curva temporal. O gráfico cresce sozinho conforme o histórico de NAV acumula novas rodadas.

Construção da carteira

Previsão forte não significa liberdade total para o modelo

A camada de carteira foi deliberadamente mantida simples e auditável para que seja possível saber exatamente por que uma posição apareceu.

Do universo ao portfólio
UniversoSPY, QQQ, IWM e grandes ações líquidas dos EUA.
Histórico400 candles diários válidos por ativo.
ForecastFechamento previsto no 5º pregão pelo Kronos-base.
ScoreVariação percentual entre close atual e close previsto.
FiltroIgnora sinais abaixo de +1% para novas posições.
Top NSeleciona no máximo cinco ativos elegíveis.
RiscoLimita cada ativo a 18% e reserva caixa.
ExecuçãoSimula compra/venda com 10 bps de slippage.
GitHub Actions

Como ele consegue rodar sozinho sem um servidor permanente

O runner existe somente durante a execução. Pesos, PyTorch e código são carregados, o cálculo acontece e o runner desaparece. O estado mínimo necessário continua no Git.

Runtime efêmero + estado persistente

Job de inferência · read-only

CheckoutCódigo do Autotrader
Kronos fixadoCommit definido em UPSTREAM_REF
Modelo fixadoRevisões do Hugging Face
CPU inferencePyTorch CPU-only + cache
→

Job de persistência · write

Artifactstate.json + latest.json
CommitNova carteira e histórico
DashboardLê os dados publicados
Próxima rodadaContinua do estado anterior
Código do Kronos roda em uma etapa sem permissão de escrita. A única etapa com contents: write recebe os JSONs já gerados e persiste o estado.
Atualização automática

O Kronos pode evoluir sem fazer pull cego para cima da estratégia

Uma segunda automação verifica upstream semanalmente. Mudança nova só entra em produção depois de passar por regressão, nossos testes e uma inferência real de compatibilidade.

Gate de atualização
01Resolver refsCompara commits do Kronos e revisões dos modelos.
02CandidateBaixa a versão nova em ambiente temporário.
03RegressãoExecuta os testes oficiais do upstream.
04Autotrader testsValida carteira, caixa, drawdown e persistência.
05Smoke inferenceCarrega tokenizer + base e gera previsão real.
06FalhouNenhuma referência é alterada.
07PassouAtualiza UPSTREAM_REF, MODEL_REF e TOKENIZER_REF.
08AtivoA próxima rodada passa a usar a revisão validada.
Limitações

O que este sistema ainda não tenta fingir que resolveu

O próprio projeto Kronos diferencia previsão bruta de uma estratégia quantitativa de produção. O Autotrader adiciona portfolio/risk logic, mas continua sendo um experimento de paper trading.

Previsão ≠ alpha garantidoAcertar uma trajetória média não garante retorno líquido positivo depois de custos, regime e correlação entre posições.
Sem neutralização de fatoresA estratégia atual não neutraliza beta, size, value ou exposições setoriais como um portfólio quantitativo institucional poderia fazer.
Universo fixoO scanner atualmente analisa 20 símbolos definidos no código; ainda não seleciona dinamicamente todo o mercado.
Frequência diáriaÉ uma estratégia de horizonte em dias, não high-frequency trading. GitHub Actions não é infraestrutura de baixa latência.
Paper tradingNão há credencial de corretora nem dinheiro real conectado nesta fase.
Histórico ainda curtoO experimento acabou de começar. Retorno e drawdown só ganham significado depois de uma sequência longa de execuções.
Créditos técnicos

O que pertence ao Kronos e o que pertence ao Autotrader

A licença MIT permite esta composição, mas a origem do motor de previsão permanece explicitamente atribuída.

Kronos · ShiYu e colaboradores

Tokenizer financeiro, BSQ, modelo foundation autoregressivo, predictor, pesos pré-treinados e arquitetura de forecasting. Projeto original treinado em dados de mais de 45 bolsas globais.

Autotrader · PkLavc

Scanner de ativos, score, seleção da carteira, limites de risco, paper executor, persistência, workflows, atualização governada, métricas e dashboard.

Separação intencional

O upstream pode evoluir sem reescrever a lógica de investimento. A estratégia pode evoluir sem modificar o código interno do modelo.

Kronos original · paper do Kronos · código do Autotrader

Abrir dashboard ao vivo Ver código no GitHub