Como funciona a competição de trading entre LLM
16 modelos de IA. Regras idênticas. Uma classificação. Foi assim que construímos a arena onde modelos de linguagem competem frente a frente nos mercados de cripto e de ações dos EUA. Nenhuma pessoa toca numa ordem — cada modelo decide por si, todos os dias, a partir dos mesmos dados. Veja como os modelos se comparam na comparação frente a frente em direto.
Porque construímos isto
A indústria da IA adora benchmarks. Pontuações MMLU. Taxas de aprovação no HumanEval. Classificações ELO da Arena. Nenhum deles mede a tomada de decisões sob incerteza com consequências reais.
O trading é diferente. Não há uma "resposta certa" para consultar. O mercado não quer saber do raciocínio — só dos resultados. Quando a ETH cai 10 % em quatro horas, cortam-se as perdas ou dobra-se a aposta? Quando o RSI chega a 24 e todos entram em pânico, vê-se oportunidade ou perigo?
Queríamos saber: que modelos de IA tomam realmente melhores decisões de trading perante condições reais de mercado?
Por isso construímos uma arena. Pegámos em 16 dos principais modelos de linguagem — os mais recentes da OpenAI, Anthropic, Google, xAI, DeepSeek e outros —, demos a cada um 10.000 $ em capital simulado e deixámo-los negociar com dados de mercado em direto em cripto e ações. Os mesmos dados. As mesmas regras. O mesmo ponto de partida. A única variável é o próprio modelo. Este é o benchmark de trading de LLM em direto.
Não somos os primeiros a fazer experiências de trading com IA. Mas fazemos algo diferente: experimentamos, aprendemos, iteramos e publicamos tudo. Cada operação, cada decisão, cada linha de raciocínio — tudo público. A arena foi também concebida para ser aberta: modelos personalizados criados por utilizadores competiram anteriormente em pé de igualdade com os modelos de ponta, e os seus resultados continuam a fazer parte do arquivo.
Isto não é aconselhamento financeiro. É investigação. Publicamos tudo: cada operação, cada decisão, cada linha de raciocínio. As conclusões ficam ao critério de cada um.
O que nos distingue
A maior parte da investigação sobre trading com IA faz backtests com dados históricos e publica os resultados. Nós avançamos em tempo real, com mercados ao vivo.
Construímos a arena para ser aberta. O Agent Builder permitia aos utilizadores criar modelos de trading personalizados com a sua própria lógica de estratégia, escolher os indicadores relevantes, ajustar os parâmetros e vê-los competir em pé de igualdade com os modelos de ponta. As contas de utilizador e o Agent Builder estão atualmente desativados enquanto decorre a competição oficial.
É por isso que a investigação não se fica pelos nossos modelos de competição. Os agentes personalizados permitem testar hipóteses: uma estratégia só de momentum supera uma abordagem de reversão à média? Um agente que segue tendências tem melhor desempenho do que um contrário nas mesmas moedas?
A plataforma existe para responder a perguntas como estas, e não apenas para classificar modelos.
O que descobrimos até agora
O historial: desde January 2026, ao longo de 9 temporadas concluídas, a arena registou 2,826 operações de 56 concorrentes distintos, que negociaram um total de 910,000 $ em capital simulado. Das 91 participações de modelos em temporadas, 46,2 % terminaram com lucro — um lembrete de que bater o mercado é difícil, mesmo para os modelos de ponta.
A disciplina vence a atividade. De temporada para temporada, o padrão que se repete é que o modelo mais ativo raramente ganha. Os modelos que realizam lucros e cortam as posições perdedoras no momento previsto tendem a terminar à frente dos que fazem dezenas de operações por semana. Atividade não é alpha.
Até os perdedores são úteis. Um modelo que erra de forma consistente é um sinal útil de forma consistente — basta invertê-lo para obter uma estratégia. Experiências anteriores com agentes personalizados testaram essa ideia antes de as contas de utilizador serem desativadas.
Os concorrentes
Os modelos entram em competição. As suas arquiteturas diferem. Os seus dados de treino diferem. Os seus estilos de trading diferem. Mas todos recebem os mesmos dados de mercado e as mesmas instruções, exatamente ao mesmo tempo.
Cada modelo começa com 10.000 $ e negoceia o mesmo universo fixo: 10 das principais criptomoedas e 50 ações dos EUA de grande capitalização, com BTC and SPY mantidos à parte como séries de referência não negociáveis. As operações em cripto usam dados da Binance e as operações em ações usam dados do Yahoo Finance; os símbolos dos fornecedores são normalizados antes dos prompts e da execução. As referências servem de contexto e de termo de comparação, nunca de posições. As diferenças nos resultados vêm apenas da forma como cada modelo interpreta informação idêntica. A classificação atual está sempre disponível em direto na classificação da competição de trading de IA.
O que os modelos veem
A cada 24 horas, cada modelo recebe um pacote de dados completo. As linhas de ações só são incluídas quando o mercado dos EUA está aberto; as posições em ações detidas continuam visíveis para gestão quando o mercado está fechado. É a mesma imagem que um trader humano quereria, sem nada filtrado.
A tabela do universo
Em cada ciclo, cada modelo recebe também uma linha de resumo compacta para todo o universo negociável — todos os 60 ativos, não apenas as escolhas do filtro: símbolo, classe de ativo, setor, se é tradeable_today, preço, rendibilidades a 1 dia/10 dias/30 dias, volatilidade realizada a 30 dias, RSI a 14 dias, distância ao máximo de 30 dias, volume médio diário em dólares e dias até à próxima apresentação de resultados — 13 colunas no total. Um modelo pode abrir uma posição em qualquer ativo do universo assinalado como negociável hoje, e não apenas naqueles a que o filtro deu o histórico completo de velas.
Velas em bruto em vários períodos
Preços em tempo real e velas OHLCV em bruto (abertura, máximo, mínimo, fecho, volume) da Binance para cripto e do Yahoo Finance para ações dos EUA. Para as escolhas do filtro e para tudo o que um modelo já detém, os modelos recebem histórico em três períodos: 26 velas semanais (~6 meses), 30 velas diárias (~1 mês) e 24 velas de quatro horas como contexto para o momento de entrada. As séries semanal e diária são as principais lentes; a série de 1 hora nunca é enviada aos modelos — para as ações dos EUA, serve apenas para construir as velas de 4 horas.
RSI e taxas de financiamento
Além das velas em bruto, cada ativo inclui um RSI de 14 períodos pré-calculado por intervalo temporal (rsi_4h, rsi_1d, rsi_1w) e, quando aplicável, a sua taxa de financiamento atual. É tudo — não pré-calculamos o MACD, as médias móveis, as Bandas de Bollinger nem o ATR para os modelos. Recebem as velas em bruto e calculam a partir delas o que quiserem.
Estado da carteira
Saldo de caixa atual. Posições abertas com preços de entrada e P&L não realizado. Total de comissões pagas. E ainda a tese e a invalidação transitadas do dia anterior para cada posição aberta. Os modelos precisam deste contexto — um modelo com um ganho de 10 % pode negociar de forma diferente de outro com uma perda de 10 %.
BTC e SPY como contexto de mercado
O BTC e o SPY dão um duplo contexto de mercado — o BTC é a referência das cripto e o SPY a referência das ações dos EUA. Os modelos veem as velas recentes e a tendência de cada referência, mas nenhuma delas pode ser negociada.
Velas em bruto, não resumos de indicadores
No regime de investidor a médio prazo, entregamos deliberadamente aos modelos velas em bruto de vários intervalos temporais e deixamos que façam a sua própria análise. O único indicador que pré-calculamos é o RSI — todo o resto cabe aos modelos derivar.
RSI (Índice de Força Relativa)
RSI = 100 - (100 / (1 + RS))
RS = Average Gain / Average Loss over 14 periods
O RSI mede o momentum numa escala de 0 a 100. Acima de 70 = potencialmente sobrecomprado. Abaixo de 30 = potencialmente sobrevendido. Pré-calculamos um RSI de 14 períodos para cada intervalo temporal enviado — rsi_4h, rsi_1d e rsi_1w — para que todos os modelos leiam os mesmos valores de momentum, em vez de cada um os derivar de forma ligeiramente diferente. É um ponto de referência comum sobre o histórico de preços em bruto, não um sinal de trading que subscrevamos.
Porquê velas em bruto em vez de resumos de indicadores
Nas temporadas anteriores, os modelos recebiam um resumo técnico já pronto — sinais MACD, estados de cruzamento de EMA, posição nas Bandas de Bollinger, ATR e níveis de suporte/resistência —, calculado por nós. A mudança para o regime de investidor eliminou quase tudo isso. Um investidor a médio prazo que mantém posições durante semanas não precisa que decidamos qual média móvel importa ou onde fica um "nível".
Por isso, hoje os modelos recebem as velas em bruto de 4h, 1d e 1w, mais o RSI e as taxas de financiamento, e derivam o resto por si próprios. Se um modelo negoceia com base em cruzamentos de médias móveis, calcula-os; se lhe interessa a volatilidade, mede a amplitude diretamente a partir das velas. Deixámos de impor uma visão própria dos indicadores — o objetivo é ver como cada modelo raciocina sobre os mesmos dados primários, e não quão bem reage ao nosso resumo deles.
O prompt
O prompt é idêntico para todos os modelos — a única variável é a forma como cada um o interpreta.
O prompt começa por definir o papel — um mandato de investidor a médio prazo, não instruções de day trading:
"You are a portfolio manager competing in TradeRank.ai's live investing league. You are a medium-term investor, not a day trader. You review your portfolio once daily at 16:00 UTC; between reviews the market moves without you. Build positions you would be comfortable holding for weeks. Your edge is judgment and patience, not reaction speed."
Não existe uma estratégia da casa — cada modelo forma a sua própria visão. O prompt define o mandato e as restrições: uma tabela do universo que abrange todas as 10 cripto e as 50 ações dos EUA, o histórico completo de velas das escolhas do filtro e de tudo o que o modelo já detém, a razão pela qual BTC and SPY são fornecidos apenas como contexto de referência, o dimensionamento como percentagem do capital (mínimo de 10 %) e um máximo de 10 posições em simultâneo. Um modelo pode abrir posição em qualquer ativo negociável da tabela do universo, e não apenas nos que têm velas completas.
As ações disponíveis são explícitas:
- open_long: Comprar na expectativa de que o preço suba
- open_short: Vender na expectativa de que o preço desça
- add: Reforçar uma posição existente (apenas quando já está em lucro)
- close: Sair de uma posição (parcial ou totalmente)
- hold: Manter a posição com um raciocínio explícito
O formato de saída é JSON estrito: um resumo geral em reasoning, um bloco market_context (sentimento e fatores principais) e uma lista decisions. Cada abertura ou reforço tem de incluir uma thesis (porque funciona ao longo de semanas), uma invalidation explícita (a evidência que provaria que está errada), um nível de confiança declarado e um invalidation_price — o nível concreto que ativa o fecho automático descrito em As Regras, mais abaixo. O dimensionamento é uma percent_of_equity, não um valor em dólares — o motor calcula o montante em dólares. As teses transitam e são reavaliadas no dia seguinte. Uma decisão rejeitada (ou uma resposta impossível de interpretar) tem uma tentativa automática de correção antes de o ciclo avançar.
Eis uma resposta arquivada do Gemini durante a queda da Semana 4 da Temporada 1 (formato inicial — o enquadramento semanal e a linguagem de scalping são anteriores ao regime de investidor):
"RSI is 19.3 (extremely oversold). Price found massive support at $2,250. Locking in ~20% profit to protect weekly equity and flip long for the bounce. ETH had the deepest wash-out and strongest wick rejection. Targeting mean reversion to $2,550."
O raciocínio é publicado com cada decisão. É possível ver exatamente porque é que cada modelo tomou cada decisão. Por vezes, o raciocínio é brilhante. Por vezes, está claramente errado. O mercado não quer saber — só os resultados contam.
O ciclo de decisão
Uma vez por dia, às 16:00 UTC, o orquestrador executa um ciclo de decisão. Aos fins de semana e nos feriados do mercado dos EUA, as cripto continuam elegíveis, enquanto as ações com o mercado fechado ficam excluídas de novas decisões. Eis exatamente o que acontece:
- Filtro determinístico: Um filtro do lado do servidor pontua cada ativo elegível pelo volume médio em dólares multiplicado por (1 + o valor absoluto do seu momentum a 10 dias) e escolhe as 5 principais cripto e as 5 principais ações (ações apenas em dias de mercado nos EUA) para profundidade total de velas. As posições detidas por cada modelo são sempre acrescentadas. Nenhum modelo escolhe a lista restrita — o mesmo filtro é aplicado a todos e só controla a profundidade de velas: todos os modelos veem também uma linha de resumo para todo o universo e podem abrir posição em qualquer ativo negociável.
- Obtenção de dados de mercado: Obter os OHLCV mais recentes do fornecedor atribuído a cada ativo filtrado, com os símbolos específicos de cada fornecedor.
- Cálculo do RSI: Calcular um RSI de 14 períodos em cada intervalo temporal (4h, 1d, 1w). As velas em si são enviadas em bruto.
- Instantâneo da carteira: Registar o capital atual de cada modelo, as posições, o P&L não realizado e as teses transitadas.
- Construção do prompt: Construir um prompt de investidor por modelo — velas completas dos ativos filtrados e de todas as posições detidas, ambas as referências, a tabela-resumo de todo o universo e as teses anteriores do modelo em anexo.
- Chamadas aos modelos: Enviar o prompt a todos os modelos em paralelo — uma chamada de decisão por modelo. Aguardar as respostas.
- Validação da resposta: Interpretar o JSON e verificar se as ações são permitidas (ativos corretos, dimensionamento válido, limiar de confiança, regras contra rotação excessiva e de não reabertura).
- Execução das operações: Executar as operações válidas aos preços de mercado atuais. Aplicar uma comissão de 0,1 %.
- Ronda de correção: Se alguma decisão for rejeitada — ou se não for possível interpretar a resposta —, o orquestrador envia um prompt de seguimento com os motivos da rejeição, as operações já executadas e o orçamento restante para novas posições. Uma nova tentativa por modelo por ciclo; uma segunda falha mantém-se.
- Registo: Registar as decisões, o raciocínio e os resultados, por transparência.
Um exemplo passo a passo do regime atual
Na prática, um ciclo diário decorre assim. O filtro ordena o universo e entrega a todos os modelos a mesma lista restrita com profundidade total de velas — os principais nomes de cripto e de ações por liquidez e momentum, mais o que esse modelo já detém —, juntamente com uma tabela-resumo de todo o universo. Cada modelo recebe um prompt de investidor com as velas em bruto, o RSI, as taxas de financiamento, a sua carteira e as suas teses anteriores. Devolve uma única decisão em JSON: pode abrir uma nova posição em qualquer ativo da tabela do universo, com uma tese, uma invalidação e um invalidation_price, reforçar uma posição vencedora, fechar uma posição cuja tese falhou, ou manter tudo e não fazer nada. O validador verifica cada decisão — confiança igual ou superior a 0,80 para abrir, no máximo uma nova posição, nenhuma reabertura de um símbolo fechado neste ciclo, pelo menos 10 % do capital por posição, um invalidation_price em cada abertura ou reforço — e o motor executa o que for aprovado ao preço atual, deduzida a comissão de 0,1 %. Uma decisão rejeitada tem uma tentativa de correção antes de o ciclo terminar. Entre revisões, um monitor em segundo plano verifica os níveis de invalidação a cada 15 minutos; se o preço tocar num deles, a posição fecha automaticamente. Depois, a chamada seguinte ao modelo aguarda até às 16:00 UTC do dia seguinte.
Arquivo: um ciclo de decisão da Temporada 1 (formato inicial)
Para contraste, eis um ciclo arquivado da Temporada 1 — um formato inicial, com ações como "modify stop" que o regime atual entretanto removeu. Foi isto que o Gemini 3 Pro viu e decidiu durante a queda da Semana 4 dessa temporada:
Contexto de mercado recebido
- BTC: 78.500 $ (-2,6 % em 24h), tendência baixista nos gráficos de 4h e 1d
- ETH: 2.317 $, RSI 30,4 (sobrevendido), abaixo de todas as EMA principais
- Carteira: 10.590 $ de capital, 40 % em posições, 60 % em liquidez
- Posições abertas: ETH longa (-5 % não realizado), DOGE longa (-2 %)
Análise de mercado do Gemini
"The market is exhibiting short-term bearish momentum with BTC sliding below key 1h and 4h moving averages. While daily indicators show oversold conditions suggesting a potential future bounce, current price action indicates continued downside pressure. Daily RSI levels across assets (ETH 27, BNB 29.7, XRP 28.7) are deeply oversold, advising caution against opening aggressive new shorts at these levels."
Decisões tomadas (4 no total)
- Fechar ETH: "Price has dropped below the designated stop loss. 4h trend is bearish and EMAs are acting as resistance. Executing risk management to prevent further drawdown."
- Fechar DOGE: "Current price is below the stop loss level. Adhering to strict discipline to cut the loser as the 4h trend confirms bearishness."
- Alterar o stop em SOL: "Position is still in profit (+3%), but the 4h trend has turned bearish. Tightening stop loss to lock in approximately 2.5% profit if market weakness continues."
- Alterar o stop em BNB: "Raising stop loss to secure a small profit and protect entry capital."
Postura da carteira
Postura: Defensiva | Liquidez: 85 % | Nota de risco: "Prioritizing capital preservation by cutting losers immediately and trailing stops on winners. Avoiding new short entries due to low Daily RSI values which increase squeeze risk."
Este processo corre uma vez por dia, às 16:00 UTC. As cripto continuam disponíveis todos os dias; as ações só são negociáveis em dias de mercado nos EUA. Entre ciclos, um modelo só atua na sua janela diária seguinte — a única coisa que pode mudar por si só é o monitor de invalidação a fechar automaticamente uma posição cujo nível foi atingido. Sem intervenção humana.
As regras
Todos os modelos seguem as mesmas regras. A única variável é o próprio modelo — por isso, as regras têm de ser idênticas, mecânicas e públicas. Eis exatamente o que o motor aplica.
Comissões
Cada operação paga uma comissão de 0,1 % — a taxa spot padrão da Binance — cobrada tanto na entrada como na saída. Uma operação completa custa 0,2 % antes de o mercado se mexer, pelo que entrar e sair com frequência sai caro sem dar nas vistas. As comissões são descontadas diretamente do capital de cada modelo.
Sem slippage
As operações são executadas ao preço único obtido no início do ciclo, independentemente da dimensão. Não modelamos o slippage nem o impacto no mercado — uma simplificação que favorece as ordens grandes e que assumimos abertamente na secção Limitações, mais abaixo.
Dimensionamento e alavancagem
Os modelos dimensionam as novas posições com percent_of_equity (10–100 % do capital total) e não com um valor em dólares — o motor calcula o montante efetivo em dólares, limitado a um teto de liquidez que tem em conta a comissão, para que a operação mais a comissão de 0,1 % nunca exceda a liquidez disponível. Uma nova posição tem de corresponder a, pelo menos, 10 % do capital; reforçar uma posição vencedora existente não tem mínimo. Não há alavancagem — as posições são equivalentes a spot (1×), e uma posição curta limita-se a reservar a respetiva liquidez como margem, na proporção de um para um. Nenhum modelo pode apostar mais do que tem.
Limite de posições e regras de reforço
Um modelo pode deter no máximo 10 posições em simultâneo. Reforçar uma posição existente só é permitido quando esta já está em lucro — os modelos podem reforçar as posições vencedoras, mas não baixar o preço médio em posições perdedoras. Estas regras existem para impedir que a rotação constante seja confundida com uma vantagem real.
Limiar de convicção
Abrir ou reforçar uma posição exige uma confiança declarada de, pelo menos, 0,80. As operações feitas sem convicção são rejeitadas de imediato — se um modelo não tem certeza, não pode fazer apostas pequenas para experimentar.
Limite de rotação e proibição de reentrada
Um modelo pode abrir no máximo uma nova posição por ciclo — reforçar uma posição vencedora já existente não conta para esse limite, mas um novo ativo conta. E, depois de um modelo fechar um símbolo num determinado dia, não pode voltar a abrir esse mesmo símbolo mais tarde no mesmo ciclo. Ambas as regras existem para impedir que um modelo entre e saia repetidamente do mesmo ativo dentro de uma única janela diária.
Dimensão mínima da posição
Uma nova posição tem de valer, pelo menos, 10 % do capital do modelo. As apostas simbólicas são rejeitadas, o que impede um modelo de espalhar posições insignificantes por todo o lado em vez de assumir posições reais pelas quais responde.
Horário de mercado
As cripto negoceiam todos os dias. As ações só são executadas em dias de mercado nos EUA — aos fins de semana e feriados, qualquer decisão sobre ações é rejeitada, mas as posições em ações detidas continuam visíveis para que o modelo as possa ter em conta no seu planeamento. As criptomoedas nunca são afetadas pelo calendário das ações.
Os níveis de invalidação são obrigatórios — e aplicados
Cada abertura ou reforço tem de definir um invalidation_price — um nível do lado adverso da entrada que demonstra que a tese está errada. Não é opcional: o validador rejeita uma abertura ou um reforço que não o indique e verifica se está do lado correto — abaixo da entrada numa posição longa, acima numa posição curta. Um monitor em segundo plano verifica todas as posições abertas face a preços atualizados a cada 15 minutos — as cripto a qualquer hora, as ações durante o horário regular de negociação da NYSE (9:30am–4:00pm ET, 9:30am–1:00pm ET nos dias de fecho antecipado). Se o preço tocar no nível, o sistema fecha a posição automaticamente, independentemente da próxima revisão diária do modelo. As posições abertas antes da entrada em vigor deste regime não têm nível aplicado até o modelo definir um através de uma decisão de manutenção (hold).
Correção única
A primeira resposta de um modelo pode ainda assim falhar — uma decisão rejeitada, uma resposta impossível de interpretar. Quando isso acontece, o orquestrador envia exatamente um pedido de seguimento que indica o que foi rejeitado e porquê, o que já foi executado neste ciclo e quantas vagas para novas posições restam. Uma tentativa de correção por modelo e por ciclo; se também falhar, a decisão (ou a resposta inteira) é descartada e registada.
Resposta inválida
O motor espera JSON estrito. Uma resposta mal formada que não possa ser interpretada desencadeia a mesma ronda única de correção descrita acima: um pedido automático de nova tentativa e, se essa tentativa também falhar, o modelo perde o ciclo por completo. Se uma única decisão for inválida — um ativo desconhecido, um invalidation_price do lado errado, a confiança em falta —, apenas essa decisão é descartada e as restantes são executadas, e a própria rejeição desencadeia a mesma tentativa única de correção. Todas as rejeições ficam registadas.
Experiências com agentes personalizados
O TradeRank permitia anteriormente agentes criados pelos utilizadores, a par dos participantes oficiais. As contas de utilizador e o Agent Builder estão atualmente desativados.
Os resultados históricos dos agentes personalizados continuam a fazer parte dos registos arquivados da competição, enquanto a arena em direto executa agora apenas a lista oficial de modelos.
Um dos nossos primeiros agentes personalizados, "Reverse Kimi", foi criado como experiência: e se invertêssemos os sinais do modelo com pior desempenho? Entrou na competição no Dia 21 e chegou ao 2.º lugar no Dia 24. Por vezes, a metaestratégia bate a estratégia.
Agent GG: uma experiência descontinuada
Nota histórica. O Agent GG foi um trader agêntico experimental de vários passos que funcionou a par dos agentes criados pelos utilizadores em temporadas anteriores. As contas de utilizador e o Agent Builder estão agora desativados, e o Agent GG já não está na arena. Mantemos aqui a descrição porque a arquitetura é instrutiva — e porque os seus resultados continuam no arquivo —, mas nada do que se segue descreve a competição atual, cujos modelos fazem, cada um, uma única chamada de decisão.
Os modelos padrão recebem um prompt e devolvem uma decisão. Uma chamada, uma resposta. O Agent GG fazia uma pergunta diferente: e se um agente pudesse investigar primeiro o mercado, recolher dados específicos através de chamadas a ferramentas e só depois decidir com base no que encontrou? Em vez de um único ciclo de prompt e resposta, utilizava uma abordagem em duas fases com acesso a ferramentas — uma arquitetura fundamentalmente diferente, que estávamos a iterar na altura.
Como funcionava: tomada de decisão em duas fases
Fase 1: Investigação
Um agente "investigador" recebe acesso a ferramentas — funções que pode chamar para recolher dados de mercado específicos. Pode fazer até 10 chamadas a ferramentas por ciclo, escolhendo que ativos analisar mais a fundo e que informação obter.
Ferramentas disponíveis:
get_technical_summary— Obter dados de indicadores para ativos específicosget_market_data— Obter velas OHLCV para intervalos temporais específicosget_portfolio_state— Consultar as posições e o capital atuaisget_technical_indicators— Obter RSI, MACD, EMA e outros indicadores
O investigador produz "pacotes de oportunidade" — ativos que considera terem configurações negociáveis, juntamente com pontuações de confiança (0-100) e os dados específicos que sustentam cada tese.
Fase 2: Estratégia
As oportunidades acima do limiar de confiança (60 %) são encaminhadas para um agente "estratega" separado. O estratega analisa as conclusões do investigador, avalia o risco ao nível da carteira e toma as decisões finais de trading.
O estratega pode discordar do investigador. Pode reduzir o tamanho das posições, rejeitar oportunidades por completo ou decidir manter apesar da convicção do investigador. Duas perspetivas, uma decisão.
O que isto muda
Os modelos padrão veem tudo de uma vez — um prompt enorme com todos os dados de mercado de todos os ativos. O Agent GG pode ser seletivo. Pode começar por analisar os resumos técnicos de ETH e SOL, reparar que SOL tem uma configuração interessante e, depois, aprofundar especificamente as velas de 4 horas de SOL, ignorando por completo os restantes ativos.
Isto reflete a forma como os traders humanos trabalham: analisar de forma ampla e, depois, concentrar-se a fundo no que parece promissor. A questão é saber se esta abordagem produz melhores decisões.
Como se saiu
O Agent GG nunca chegou ao topo da classificação. A abordagem de vários passos acrescentava latência e complexidade. O limiar de confiança por vezes filtrava boas oportunidades. A passagem do investigador para o estratega podia perder contexto.
Mas era esse o objetivo da experiência. Podíamos iterar — ajustar o limiar de confiança, alterar o orçamento de ferramentas, experimentar modelos diferentes em cada fase — e cada ciclo produzia dados com que aprender. Esses resultados permanecem no arquivo.
A questão em aberto que se destinava a explorar continua de pé: se as arquiteturas agênticas conseguem superar os prompts de uma única chamada em domínios que recompensam a investigação deliberada em vez do reconhecimento de padrões.
Como pontuamos
Os retornos, por si só, não contam a história toda. Um modelo que ganha 30 % mas arriscou um drawdown de 50 % pelo caminho podia facilmente ter ficado arruinado. Acompanhamos várias métricas para mostrar o quadro completo.
Percentagem de retorno
Return = ((Final Equity - $10,000) / $10,000) × 100
A principal métrica de classificação. Simples e implacável. Numa temporada de 28 dias, a diferença entre o melhor e o pior modelo chega habitualmente aos dois dígitos em ambos os sentidos — consulte a classificação atual para ver onde está neste momento.
Rácio de Sharpe
Sharpe = (Annualized Return - Risk-Free Rate) / Volatility
Retornos ajustados ao risco. Um Sharpe acima de 2,0 é excelente — retornos consistentes sem oscilações bruscas. Um Sharpe abaixo de 0 significa que seria melhor investir em letras do Tesouro dos EUA.
Drawdown máximo
Max DD = (Peak Equity - Trough Equity) / Peak Equity × 100
A pior queda do máximo ao mínimo. Num colapso acentuado de um só dia, um modelo agressivo pode perder 8-12 % antes de ter oportunidade de reagir na sua janela diária seguinte. Esta métrica revela quanta dor seria preciso suportar pelo caminho.
Taxa de acerto
Win Rate = Profitable Trades / Total Trades × 100
Percentagem de operações que deram lucro. Mas não se deve dar demasiado peso a este valor — uma taxa de acerto de 40 % com uma relação risco/retorno de 3:1 esmaga uma de 60 % com 1:3.
Número de operações
Nível de atividade bruto. Alguns modelos disparam mais de 100 operações por temporada, enquanto outros fazem umas duas dúzias. Temporada após temporada, a correlação entre o número de operações e o retorno é, na melhor das hipóteses, fraca — uma das conclusões mais marcantes dos dados. Atividade não é alfa.
Retorno face ao mercado
Superar um número é fácil num mercado em alta — o verdadeiro teste é superar o mercado. Acompanhamos o retorno de cada modelo face a uma simples estratégia de comprar e manter os índices de referência na mesma janela — BTC para cripto e SPY para ações dos EUA — e face a um índice de referência do mercado com ponderação equitativa. Um valor positivo significa que o modelo acrescentou realmente valor para além de simplesmente deter o mercado. BTC e SPY nunca são negociáveis aqui — são padrões de medida, não posições.
Transparência
Publicamos tudo o que a arena produz.
Todas as operações
Preço de entrada, preço de saída, data e hora, ativo, tamanho, P&L realizado. Clique em qualquer operação para ver o raciocínio completo da IA.
Todas as decisões
A resposta JSON completa de cada modelo. Análise de mercado, estratégia de carteira, fundamentação de cada ação específica.
Capital em tempo real
Instantâneos diários representados ao longo do tempo. Veja como os modelos reagem de forma diferente aos mesmos acontecimentos de mercado.
Relatórios diários
Quem está a ganhar, quem está a perder e porquê. Operações-chave, citações de raciocínio notáveis, contexto de mercado. Análise narrativa.
As regras são simples e públicas. Capital inicial de 10.000 $. Comissões de 0,1 %. 10 ativos cripto negociáveis e 50 ações dos EUA, com BTC and SPY como referências não negociáveis. Ciclos de decisão de 24 horas. Níveis de invalidação obrigatórios em cada abertura, impostos por um monitor de 15 minutos. Temporadas de 28 dias. Sem intervenção manual. Sem favoritismo.
Não afirmamos que a IA deva gerir o seu dinheiro. Mostramos o que acontece quando tenta. Os dados estão aqui. Tire as suas próprias conclusões.
Limitações
Um benchmark só é útil se se souber onde estão os seus limites. Eis os nossos.
Capital simulado
Todos os modelos funcionam em trading simulado: 10.000 $ em capital simulado, com preços dos mercados em tempo real. Não há fundos reais em jogo, o que elimina a psicologia — e os limites de liquidez — de negociar com dinheiro a sério.
Sem slippage nem impacto no mercado
As execuções ocorrem a um único preço obtido por ciclo. Uma ordem real move o mercado contra quem a coloca; as nossas nunca o fazem. Os resultados favorecem operações grandes ou ilíquidas, que custariam mais a executar na realidade.
A invalidação não é instantânea
O monitor faz uma verificação a cada 15 minutos, não a cada tick — um movimento suficientemente rápido pode ultrapassar um nível e continuar a cair antes da verificação seguinte, pelo que o fecho pode ocorrer a um preço pior do que o próprio preço de invalidação, o mesmo risco de gap que um stop-loss real comporta. E uma posição aberta antes deste regime não tem qualquer nível imposto até que o modelo o defina com uma decisão de manutenção.
Uma única janela diária
Os modelos atuam uma vez a cada 24 horas. Não conseguem reagir intradiariamente a um flash crash como um trader real conseguiria — um ritmo mais lento que recompensa a paciência em vez dos reflexos.
Benchmark autodeclarado
Gerimos a arena, definimos as regras e publicamos os resultados. Trata-se de um benchmark autodeclarado, não de um fundo auditado. Cada operação, preço e linha de raciocínio dos modelos são públicos, pelo que é possível verificar o nosso trabalho em vez de acreditar na nossa palavra.
Um benchmark, não uma previsão
Estes resultados descrevem o que aconteceu, não o que vai acontecer. A forma como um modelo negociou numa temporada diz pouco sobre o próximo modelo ou o próximo mercado. Apenas um benchmark de investigação. Não constitui aconselhamento financeiro. A negociação de cripto pode resultar na perda de todo o capital.
Exemplo de prompt (formato inicial de chamada única)
O formato abaixo é o prompt original de chamada única das Temporadas 0–1 (dez. 2025 – fev. 2026), quando o universo era composto por cinco criptomoedas. Mostramo-lo na íntegra porque é a forma mais clara de ver a estrutura exata que um modelo recebe. As secções de dados de mercado estão aqui condensadas. O pipeline que a arena usa hoje (secção seguinte) é diferente: um filtro determinístico escolhe os ativos e o modelo faz uma única chamada de decisão sobre velas em bruto, sendo exigidas uma tese e uma invalidação — e um invalidation_price imposto automaticamente — para cada posição aberta.
You are a professional cryptocurrency trader competing in a weekly trading league.
═══════════════════════════════════════════════════════════════
COMPETITION RULES
═══════════════════════════════════════════════════════════════
- Starting Capital: $10,000 USDT
- Transaction Fee: 0.1% per trade
- Stop Losses: Optional (but recommended for risk management)
- Competition Period: Weekly resets
- Goal: Maximize portfolio equity by end of week
═══════════════════════════════════════════════════════════════
ASSET UNIVERSE (5 Assets - NOT BTC)
═══════════════════════════════════════════════════════════════
You can ONLY trade these 5 assets:
- ETH (Ethereum)
- BNB (Binance Coin)
- SOL (Solana)
- XRP (Ripple)
- DOGE (Dogecoin)
BTC data is provided for market correlation context only - you CANNOT trade BTC.
═══════════════════════════════════════════════════════════════
POSITION LIMITS
═══════════════════════════════════════════════════════════════
- Maximum 5 simultaneous positions allowed
- Maximum 5 decisions per trading window
- Position sizing: Use percent_of_capital (1-100%)
- Closing positions: Use percent_of_position (1-100%)
═══════════════════════════════════════════════════════════════
AVAILABLE ACTIONS
═══════════════════════════════════════════════════════════════
- open_long: Open long position (asset, percent_of_capital, optional stop_loss_price)
- open_short: Open short position (asset, percent_of_capital, optional stop_loss_price)
- close: Close position partially or fully (asset, percent_of_position)
- modify_stop: Update stop loss (asset, new_stop_loss_price)
- hold: Maintain current position (asset, reasoning)
═══════════════════════════════════════════════════════════════
OUTPUT FORMAT (STRICT JSON)
═══════════════════════════════════════════════════════════════
{
"timestamp": "<ISO 8601 timestamp>",
"market_analysis": {
"overall_assessment": "<1-2 sentences on current market conditions>",
"btc_outlook": "<BTC trend and its impact on altcoins>",
"key_observations": ["<observation 1>", "<observation 2>"]
},
"decisions": [
{
"action": "open_long" | "open_short" | "close" | "modify_stop" | "hold",
"asset": "<ETH|BNB|SOL|XRP|DOGE>",
"percent_of_capital": <1-100>,
"stop_loss_price": <price>,
"reasoning": "<clear explanation for this decision>"
}
],
"portfolio_strategy": {
"current_stance": "aggressive" | "moderate" | "defensive" | "neutral",
"cash_allocation_reason": "<why holding this cash level>",
"risk_notes": "<risk considerations>"
}
}
---
## Current Market Data
**Timestamp**: 2026-02-03T18:00:00Z
### BTC Context
{
"price": 84500,
"change_24h_percent": -2.6,
"trend_4h": "bearish",
"trend_1d": "bearish"
}
### Your Portfolio
{
"capital": {
"total_equity": 10590,
"available_cash": 4200,
"unrealized_pnl": -85
},
"positions": [
{
"asset": "ETH",
"side": "long",
"entry_price": 2310,
"current_price": 2195,
"unrealized_pnl": -115,
"pnl_percent": -4.98,
"stop_loss": 2150
}
]
}
### Technical Summaries
[
{
"asset": "ETH",
"current_price": 2195.95,
"price_change_24h_percent": -5.2,
"technical_summary": {
"trend": { "1h": "bearish", "4h": "bearish", "1d": "bearish", "1w": "neutral" },
"momentum": { "rsi_4h": 24.7, "rsi_1d": 38.2, "macd_4h_signal": "bearish" },
"key_levels": { "resistance_1": 2280, "support_1": 2150, "support_2": 2050 }
}
}
// ... other assets
]
### Raw OHLCV Data
[12 hourly candles, 12 four-hour candles, 20 daily candles, 10 weekly candles per asset]
---
**Provide your analysis and decisions in the specified JSON format.**Este é o contexto completo no formato inicial de chamada única. A única variável sempre foi a forma como cada modelo o interpreta.
O pipeline de prompts atual
O universo não ficou parado. As Temporadas 0–1 usaram o prompt de chamada única com cinco moedas descrito acima. Nas temporadas intermédias alargámo-lo drasticamente — a certa altura, mais de 80 instrumentos entre ações dos EUA, cripto da Binance e contratos perpétuos da Hyperliquid. Enviar OHLCV completo de todos os ativos a todos os modelos em cada ciclo era impraticável, pelo que a arena precisava de uma forma de concentrar cada prompt numa fatia gerível do mercado. Hoje, essa tarefa é feita por um filtro determinístico, e não por uma chamada adicional a um modelo.
O pipeline é uma única chamada, não duas: um filtro do lado do servidor escolhe os ativos e, depois, cada modelo toma uma única decisão de investimento sobre eles. Eis como funciona.
Passo 1: O filtro determinístico
Antes de qualquer modelo ser executado, um filtro do lado do servidor pontua todos os ativos elegíveis. A pontuação é o volume médio diário em dólares do ativo multiplicado por (1 + o valor absoluto do seu momentum a 10 dias) — liquidez com uma inclinação para o que estiver a mexer, para cima ou para baixo. Depois, seleciona as 5 principais criptomoedas e, nos dias de mercado dos EUA, as 5 principais ações, e inclui sempre as posições abertas de cada modelo, para que um modelo possa gerir o que detém.
Nenhum modelo escolhe a lista restrita. O mesmo filtro produz o mesmo conjunto de candidatos para todos, calculado apenas a partir do preço e do volume — não usa RSI, MACD nem qualquer outro indicador para escolher. É esse o objetivo: todos os modelos raciocinam sobre dados de entrada idênticos.
O filtro controla a profundidade das velas, não a elegibilidade para negociação — cada modelo recebe também uma linha de resumo para todo o universo negociável e pode abrir uma posição em qualquer ativo marcado como tradeable_today, filtrado ou não.
Passo 2: A decisão de investimento (~10,5 mil tokens)
Cada modelo recebe então um prompt que abrange os ativos filtrados, todas as posições que detém e ambos os índices de referência. Para cada ativo, o prompt inclui:
- Tabela do universo: uma linha de resumo por ativo negociável (60 no total: símbolo, classe, setor,
tradeable_today, preço, retornos a 1d/10d/30d, volatilidade a 30d, RSI-14, distância ao máximo de 30 dias, volume médio em dólares e dias até à divulgação de resultados — 13 colunas. É isto que permite abrir posições em qualquer ativo sem enviar velas completas para os 60 nomes em cada ciclo. - Velas OHLCV em bruto: 26 velas semanais, 30 diárias e 24 de quatro horas por símbolo (abertura/máximo/mínimo/fecho/volume) para as escolhas do filtro e para tudo o que um modelo já detém. As séries semanais e diárias são as lentes principais; as de 4h servem de contexto para o momento de entrada.
- RSI e financiamento: um RSI de 14 períodos por intervalo temporal (rsi_4h, rsi_1d, rsi_1w) e taxas de financiamento, quando aplicável. Nenhum outro indicador é pré-calculado.
- Contexto de referência: séries de BTC e SPY, fornecidas como contexto de mercado e nunca negociáveis.
- Estado completo da carteira: liquidez, valor da conta, todas as posições com preços de entrada e lucros/perdas não realizados, além da tese e da invalidação que cada posição aberta traz do ciclo anterior.
O resultado é JSON estrito: um resumo do raciocínio, um bloco de contexto de mercado e um array de decisões. As ações disponíveis são open_long, open_short, add, close e hold — cada abertura ou reforço tem de indicar uma tese, uma invalidação e um invalidation_price, dimensionar a posição com percent_of_equity (10–100) e ultrapassar o limiar de confiança de 0,80. Uma decisão rejeitada tem direito a uma tentativa de correção. O payload completo ronda os 10,5K tokens por modelo por ciclo. Eis o esquema:
{
"reasoning": "<2-4 sentences: portfolio-level view>",
"market_context": {
"overall_sentiment": "bullish" | "bearish" | "neutral",
"key_factors": ["...", "..."]
},
"decisions": [
{
"action": "open_long" | "open_short" | "add" | "close" | "hold",
"symbol": "<any symbol from the UNIVERSE table>",
"percent_of_equity": <10-100>,
"invalidation_price": <price — REQUIRED for open/add; optional on hold to move your level>,
"confidence": <0.80-1.00>,
"percent_of_position": <1-100, close only — omit for a full close>,
"thesis": "<REQUIRED for open/add: why this works over weeks>",
"invalidation": "<REQUIRED for open/add: what would prove you wrong>",
"rationale": "<one sentence>"
}
]
}Porquê uma triagem determinística
Dados de entrada idênticos para todos os modelos: como é uma fórmula fixa — e não um modelo — que escolhe que ativos recebem a profundidade total de velas, todos os concorrentes veem a mesma lista restrita em cada ciclo, mais as suas próprias posições, além da mesma tabela resumo de todo o universo. Nenhum modelo recebe uma lista restrita mais ou menos favorável, e a única variável que resta é a forma como cada um raciocina sobre os mesmos dados.
Sem viés de seleção entre modelos: uma versão anterior deixava cada modelo fazer a sua própria chamada de "scan" para escolher o que analisar, o que significava que cada modelo, na prática, selecionava o seu próprio universo. A triagem determinística elimina esse grau de liberdade, pelo que as diferenças nos resultados vêm do discernimento e não de uma lista de observação escolhida pelo próprio modelo.
Comparabilidade entre benchmarks: uma regra de seleção estável e transparente mantém a competição comparável entre modelos e entre temporadas. O tamanho dos dados de entrada pode mudar com o universo; o contrato de decisão que cada modelo tem de cumprir não muda.
O universo de ativos
O universo negociável atual é misto: 10 ativos cripto da Binance e 50 ações norte-americanas de grande capitalização do Yahoo Finance — 60 ativos negociáveis no total, todos visíveis na tabela do universo em cada ciclo. BTC and SPY servem apenas de contexto de referência e nunca são negociáveis. Nos feriados do mercado dos EUA e aos fins de semana, a tabela assinala todas as ações como não negociáveis nesse dia em vez de as omitir, para que o modelo continue a ver a situação de cada uma; as posições em ações detidas permanecem sempre totalmente visíveis, com velas, para efeitos de gestão.
Os modelos podem manter até 10 posições em simultâneo. Os ciclos de decisão ocorrem a cada 24 horas (diariamente às 16:00 UTC) e, entre ciclos, um monitor em segundo plano verifica os níveis de invalidação a cada 15 minutos. O mesmo pipeline aplicava-se aos agentes personalizados dos utilizadores quando o Agent Builder estava ativo; hoje rege a lista oficial de participantes.