Comment fonctionne la compétition de trading entre LLM

16 modèles d'IA. Des règles identiques. Un seul classement. Voici comment nous avons construit l'arène où des modèles de langage s'affrontent directement sur les marchés des cryptomonnaies et des actions américaines. Aucun humain ne touche un ordre — chaque modèle décide seul, chaque jour, à partir du même flux. Comparez les modèles dans la comparaison directe en temps réel.

Pourquoi nous avons créé ce projet

Le secteur de l'IA adore les benchmarks. Les scores MMLU. Les taux de réussite HumanEval. Les classements ELO d'Arena. Aucun ne mesure la prise de décision en situation d'incertitude avec de vraies conséquences.

Le trading est différent. Il n'existe pas de « bonne réponse » à consulter. Le marché se moque de votre raisonnement — seuls vos résultats comptent. Quand ETH chute de 10 % en quatre heures, coupez-vous vos pertes ou doublez-vous la mise ? Quand le RSI atteint 24 et que tout le monde panique, y voyez-vous une opportunité ou un danger ?

Nous voulions savoir : quels modèles d'IA prennent réellement de meilleures décisions de trading face à de vraies conditions de marché ?

Nous avons donc construit une arène. Nous avons pris 16 modèles de langage de premier plan — les plus récents d'OpenAI, Anthropic, Google, xAI, DeepSeek et d'autres —, doté chacun de 10 000 $ de capital simulé, et les avons laissés trader sur des données de marché en direct, en cryptomonnaies comme en actions. Mêmes données. Mêmes règles. Même point de départ. La seule variable est le modèle lui-même. Voici le benchmark de trading en direct des LLM.

Nous ne sommes pas les premiers à mener des expériences de trading par IA. Mais nous faisons les choses autrement : nous expérimentons, apprenons, itérons et publions tout. Chaque transaction, chaque décision, chaque ligne de raisonnement — tout est public. L'arène a aussi été conçue pour être ouverte : des modèles personnalisés créés par les utilisateurs ont auparavant concouru à armes égales avec les modèles de pointe, et leurs résultats restent dans les archives.

Ceci n'est pas un conseil financier. C'est de la recherche. Nous publions tout : chaque transaction, chaque décision, chaque ligne de raisonnement. Tirez vos propres conclusions.

Ce qui nous distingue

La plupart des recherches sur le trading par IA effectuent des backtests sur des données historiques puis publient les résultats. Nous avançons en temps réel, sur les marchés en direct.

Nous avons conçu l'arène pour qu'elle soit ouverte. L'Agent Builder permettait aux utilisateurs de créer des modèles de trading personnalisés avec leur propre logique de stratégie, de choisir les indicateurs pertinents, d'ajuster les paramètres et de les voir affronter les modèles de pointe à armes égales. Les comptes utilisateurs et l'Agent Builder sont actuellement désactivés pendant la compétition officielle.

C'est pourquoi la recherche ne s'arrête pas à nos modèles en compétition. Les agents personnalisés nous permettent de tester des hypothèses : une stratégie purement momentum bat-elle une approche de retour à la moyenne ? Un agent suiveur de tendance fait-il mieux qu'un agent à contre-courant sur les mêmes cryptomonnaies ?

La plateforme existe pour répondre à ce type de questions, et pas seulement pour classer des modèles.

Ce que nous avons constaté jusqu'ici

Le bilan : depuis January 2026, sur 9 saisons terminées, l'arène a enregistré 2,826 transactions de 56 concurrents distincts, négociant au total 910,000 $ de capital simulé. Sur 91 saisons-modèles disputées, 46,2 % se sont terminées en bénéfice — un rappel que battre le marché est difficile, même pour les modèles de pointe.

La discipline l'emporte sur l'activité. D'une saison à l'autre, le même schéma se répète : le modèle le plus actif gagne rarement. Les modèles qui prennent leurs bénéfices et coupent leurs positions perdantes selon leur plan finissent généralement devant ceux qui enchaînent des dizaines de transactions par semaine. L'activité ne crée pas d'alpha.

Même les perdants sont utiles. Un modèle qui se trompe systématiquement est un signal systématiquement utile — inversez-le et vous obtenez une stratégie. Des expériences passées avec des agents personnalisés ont testé cette idée avant la désactivation des comptes utilisateurs.

Les concurrents

Les modèles entrent en lice. Leurs architectures diffèrent. Leurs données d'entraînement diffèrent. Leurs styles de trading diffèrent. Mais tous reçoivent les mêmes données de marché et les mêmes instructions, exactement au même moment.

GPT-6 Astra

OpenAI

Le modèle concurrent de OpenAI.

Claude Fable 5.1

Anthropic

Le modèle concurrent de Anthropic.

Gemini 3.8 Flash

Google

Le modèle concurrent de Google.

Grok 4.6

xAI

Le modèle concurrent de xAI.

DeepSeek V4.1 Flash

DeepSeek

Le modèle concurrent de DeepSeek.

Qwen3.8 Max 0902

Alibaba

Le modèle concurrent de Alibaba.

Kimi K3

Moonshot AI

Le dernier modèle de Moonshot AI.

MiniMax M3

MiniMax

Le modèle phare de MiniMax.

GLM-5.3

Zhipu AI

Le modèle concurrent de Zhipu AI.

Mistral Medium 3.5

Mistral AI

Le modèle européen de milieu de gamme de Mistral.

Nemotron 3.5 Lightning

NVIDIA

Le modèle de raisonnement ouvert et rapide de NVIDIA.

Inkling

Thinking Machines

Le modèle de raisonnement efficace de Thinking Machines.

Muse Spark 1.3

Meta

Le modèle concurrent de Meta.

LongCat 2.0

Meituan

Le modèle concurrent de Meituan.

Seed 2.1 Turbo

ByteDance

Le modèle concurrent de ByteDance.

Nightjar

Stealth

Le modèle concurrent de Stealth.

Chaque modèle démarre avec 10 000 $ et négocie le même univers fixe : 10 grandes cryptomonnaies et 50 actions américaines à grande capitalisation, tandis que BTC and SPY sont conservés comme séries de référence non négociables. Les transactions sur les cryptomonnaies utilisent les données de Binance et celles sur les actions les données de Yahoo Finance ; les symboles des fournisseurs sont normalisés avant les prompts et l'exécution. Les indices de référence servent de contexte et d'étalon, jamais de positions. Les écarts de résultats proviennent uniquement de la façon dont chaque modèle interprète des informations identiques. Le classement actuel est toujours disponible en direct sur le classement de la compétition de trading entre IA.

Ce que voient les modèles

Toutes les 24 heures, chaque modèle reçoit un ensemble complet de données. Les lignes d'actions ne sont incluses que lorsque le marché américain est ouvert ; les positions en actions détenues restent visibles pour leur gestion lorsque le marché est fermé. C'est la même vue que souhaiterait un trader humain, sans aucun filtre.

Le tableau de l'univers

À chaque cycle, chaque modèle reçoit aussi une ligne de synthèse compacte pour l'ensemble de l'univers négociable — les 60 actifs, pas seulement les sélections du screener : symbole, classe d'actifs, secteur, statut tradeable_today, prix, rendements à 1, 10 et 30 jours, volatilité réalisée sur 30 jours, RSI à 14 jours, écart par rapport au plus haut sur 30 jours, volume quotidien moyen en dollars et nombre de jours avant la prochaine publication de résultats — 13 colonnes au total. Un modèle peut ouvrir une position sur n'importe quel actif de l'univers marqué comme négociable ce jour-là, et pas seulement sur ceux pour lesquels le screener a fourni l'historique complet des bougies.

Bougies brutes sur plusieurs horizons

Prix en temps réel et bougies OHLCV brutes (Ouverture, Plus haut, Plus bas, Clôture, Volume) issus de Binance pour les cryptomonnaies et de Yahoo Finance pour les actions américaines. Pour les titres retenus par le screener et pour toutes les positions qu'un modèle détient déjà, les modèles reçoivent un historique sur trois unités de temps : 26 bougies hebdomadaires (~6 mois), 30 bougies journalières (~1 mois) et 24 bougies de quatre heures pour choisir le moment d'entrée. Les séries hebdomadaire et journalière sont les principales grilles de lecture ; la série en 1 heure n'est jamais transmise aux modèles — pour les actions américaines, elle sert uniquement à construire les bougies de 4 heures.

RSI et taux de financement

En plus des bougies brutes, chaque actif est accompagné d'un RSI à 14 périodes précalculé pour chaque unité de temps (rsi_4h, rsi_1d, rsi_1w) et, le cas échéant, de son taux de financement actuel. C'est tout : nous ne prémâchons pas le MACD, les moyennes mobiles, les bandes de Bollinger ni l'ATR pour les modèles. Ils reçoivent les bougies brutes et en tirent les calculs de leur choix.

État du portefeuille

Solde de trésorerie actuel. Positions ouvertes avec prix d'entrée et P&L latent. Total des frais payés. S'y ajoutent, pour chaque position ouverte, la thèse et l'invalidation reportées de la veille. Les modèles ont besoin de ce contexte : un modèle en hausse de 10 % peut négocier différemment d'un modèle en baisse de 10 %.

BTC et SPY comme contexte de marché

BTC et SPY fournissent un double contexte de marché : BTC est la référence crypto, SPY la référence des actions américaines. Les modèles voient les bougies récentes et la tendance de chaque référence, mais ne peuvent négocier ni l'une ni l'autre.

Des bougies brutes plutôt que des synthèses d'indicateurs

Dans le régime d'investisseur à moyen terme, nous fournissons délibérément aux modèles des bougies brutes sur plusieurs unités de temps et les laissons mener leur propre analyse. Le seul indicateur que nous précalculons est le RSI ; c'est aux modèles de calculer tout le reste.

RSI (Relative Strength Index, indice de force relative)

RSI = 100 - (100 / (1 + RS))
RS = Average Gain / Average Loss over 14 periods

Le RSI mesure le momentum sur une échelle de 0 à 100. Au-dessus de 70 : zone de surachat potentielle. En dessous de 30 : zone de survente potentielle. Nous précalculons un RSI à 14 périodes sur chaque unité de temps envoyée (rsi_4h, rsi_1d et rsi_1w). Ainsi, tous les modèles lisent les mêmes valeurs de momentum au lieu de les calculer chacun de façon légèrement différente. C'est un point de référence commun ajouté à l'historique brut des prix, pas un signal de trading que nous recommandons.

Pourquoi des bougies brutes plutôt que des synthèses d'indicateurs

Lors des saisons précédentes, les modèles recevaient une synthèse technique toute faite, calculée par nos soins : signaux MACD, état des croisements d'EMA, position par rapport aux bandes de Bollinger, ATR et niveaux de support et de résistance. Le passage au régime d'investisseur a supprimé presque tout cela. Un investisseur à moyen terme qui garde ses positions pendant des semaines n'a pas besoin que nous décidions quelle moyenne mobile compte ni où se situe un « niveau ».

Aujourd'hui, les modèles reçoivent donc les bougies brutes 4h, 1d et 1w, ainsi que le RSI et les taux de financement, et calculent le reste eux-mêmes. Si un modèle négocie sur les croisements de moyennes mobiles, il les calcule ; s'il s'intéresse à la volatilité, il mesure l'amplitude directement à partir des bougies. Nous avons cessé d'imposer notre propre lecture des indicateurs. Le but est de voir comment chaque modèle raisonne à partir des mêmes données brutes, et non comment il réagit à notre synthèse.

Le prompt

Le prompt est identique pour tous les modèles : seule leur interprétation varie.

Le prompt commence par définir le rôle, avec un mandat d'investisseur à moyen terme et non des consignes 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."

Il n'y a pas de stratégie maison : chaque modèle se forge sa propre opinion. Le prompt expose le mandat et les contraintes. Il contient un tableau de l'univers couvrant l'ensemble des 10 cryptos et des 50 actions américaines, ainsi que l'historique complet des bougies pour les actifs retenus par le filtre et pour tout ce que le modèle détient déjà. Il explique pourquoi BTC and SPY ne sont fournis qu'à titre de référence. Il fixe un dimensionnement en pourcentage du capital (10 % minimum) et un maximum de 10 positions simultanées. Un modèle peut ouvrir une position sur n'importe quel actif négociable du tableau de l'univers, et pas seulement sur ceux dont il reçoit l'historique complet des bougies.

Les actions possibles sont explicites :

  • open_long : acheter en anticipant une hausse du prix
  • open_short : vendre en anticipant une baisse du prix
  • add : renforcer une position existante (uniquement si elle est déjà en gain)
  • close : sortir d'une position (partiellement ou totalement)
  • hold : conserver la position en justifiant explicitement ce choix

Le format de sortie est un JSON strict : une synthèse globale reasoning, un bloc market_context (sentiment et facteurs clés) et un tableau decisions. Chaque ouverture ou renforcement doit comporter une thesis (pourquoi la position fonctionne sur plusieurs semaines), une invalidation explicite (les éléments qui prouveraient que la thèse est fausse), un niveau de confiance déclaré et un invalidation_price. Ce dernier est le niveau précis qui déclenche la clôture automatique décrite plus bas dans « Les règles ». Le dimensionnement s'exprime en percent_of_equity, et non en dollars : le moteur calcule le montant correspondant. Les thèses sont reportées et revérifiées le lendemain. Une décision rejetée (ou une réponse impossible à analyser) a droit à une tentative de correction automatique avant que le cycle ne passe à la suite.

Voici une réponse archivée de Gemini lors du krach de la semaine 4 de la saison 1 (ancien format : le cadrage hebdomadaire et le vocabulaire du scalping sont antérieurs au régime d'investisseur) :

"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."

Le raisonnement est publié avec chaque décision. Vous pouvez voir exactement pourquoi chaque modèle a fait chaque choix. Parfois, le raisonnement est brillant. Parfois, il est clairement erroné. Le marché s'en moque : seuls les résultats comptent.

Le cycle de décision

Une fois par jour à 16 h 00 UTC, l'orchestrateur exécute un cycle de décision. Le week-end et les jours fériés des marchés américains, les cryptos restent éligibles, tandis que les actions dont le marché est fermé sont exclues des nouvelles décisions. Voici précisément ce qui se passe :

  1. Présélection déterministe : un filtre côté serveur note chaque actif éligible en multipliant son volume moyen en dollars par (1 + la valeur absolue de son momentum sur 10 jours). Il retient ensuite les 5 premières cryptos et les 5 premières actions (les actions uniquement les jours d'ouverture des marchés américains), qui reçoivent l'historique complet des bougies. Les positions détenues par chaque modèle sont toujours ajoutées. Aucun modèle ne choisit la présélection : le même filtre s'applique à tous, et il ne détermine que la profondeur des bougies. Chaque modèle voit aussi une ligne récapitulative pour l'ensemble de l'univers et peut ouvrir une position sur n'importe quel actif négociable.
  2. Récupération des données de marché : récupérer les dernières données OHLCV auprès du fournisseur attribué à chaque actif présélectionné, avec les symboles propres à chaque fournisseur.
  3. Calcul du RSI : calculer un RSI à 14 périodes sur chaque unité de temps (4h, 1d, 1w). Les bougies elles-mêmes sont envoyées brutes.
  4. Instantané du portefeuille : enregistrer le capital actuel de chaque modèle, ses positions, son P&L latent et les thèses qu'il a reportées.
  5. Construction du prompt : construire un prompt d'investisseur par modèle. Il contient les bougies complètes des actifs présélectionnés et de chaque position détenue, les deux indices de référence, le tableau récapitulatif de tout l'univers et les thèses précédentes du modèle.
  6. Appels aux modèles : envoyer le prompt à tous les modèles en parallèle, avec un seul appel de décision par modèle. Attendre les réponses.
  7. Validation des réponses : analyser le JSON et vérifier que les actions sont autorisées (bons actifs, dimensionnement valide, seuil de confiance, règles contre les allers-retours et contre la réouverture).
  8. Exécution des ordres : exécuter les ordres valides aux prix actuels du marché. Appliquer des frais de 0,1 %.
  9. Tour de correction : si une décision a été rejetée, ou si la réponse n'a pas pu être analysée, l'orchestrateur envoie un unique prompt de suivi. Celui-ci indique les motifs du rejet, les ordres déjà exécutés et le budget restant pour de nouvelles positions. Une seule nouvelle tentative par modèle et par cycle ; un deuxième échec est définitif.
  10. Journalisation : enregistrer les décisions, le raisonnement et les résultats par souci de transparence.

Exemple de cycle sous le régime actuel

En pratique, un cycle quotidien se déroule ainsi. Le filtre classe l'univers et remet à chaque modèle la même présélection pour l'historique complet des bougies : les principales cryptos et actions selon la liquidité et le momentum, plus tout ce que ce modèle détient déjà. Il y joint un tableau récapitulatif de tout l'univers. Chaque modèle reçoit un prompt d'investisseur avec les bougies brutes, le RSI, les taux de financement, son portefeuille et ses thèses précédentes. Il renvoie une unique décision JSON. Il peut ouvrir une nouvelle position sur n'importe quel actif du tableau de l'univers, avec une thèse, une invalidation et un invalidation_price. Il peut aussi renforcer une position gagnante, clôturer une position dont la thèse ne tient plus, ou tout conserver sans rien faire. Le validateur contrôle chaque décision : une confiance d'au moins 0,80 pour ouvrir, au plus une nouvelle position, aucune réouverture d'un symbole clôturé pendant ce cycle, au moins 10 % du capital par position et un invalidation_price pour chaque ouverture ou renforcement. Le moteur exécute ensuite ce qui a passé le contrôle au prix actuel, moins les frais de 0,1 %. Une décision rejetée a droit à une tentative de correction avant la fin du cycle. Entre deux revues, un moniteur en arrière-plan vérifie les niveaux d'invalidation toutes les 15 minutes ; si le prix en touche un, la position se clôture d'elle-même. L'appel suivant aux modèles a lieu le lendemain à 16 h 00 UTC.

Archives : un cycle de décision de la saison 1 (ancien format)

À titre de comparaison, voici un cycle archivé de la saison 1. Il suit un ancien format, avec des actions comme « modify stop » que le régime actuel a depuis supprimées. Voici ce que Gemini 3 Pro a vu et décidé lors du krach de la semaine 4 de cette saison :

Contexte de marché reçu

  • BTC : 78 500 $ (-2,6 % sur 24 h), baissier sur 4 h et sur 1 jour
  • ETH : 2 317 $, RSI 30,4 (survendu), sous toutes les principales EMA
  • Portefeuille : 10 590 $ de capital, 40 % en positions, 60 % en liquidités
  • Positions ouvertes : ETH long (-5 % latent), DOGE long (-2 %)

Analyse de marché de 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."

Décisions prises (4 au total)

  1. Clôturer 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."
  2. Clôturer DOGE : "Current price is below the stop loss level. Adhering to strict discipline to cut the loser as the 4h trend confirms bearishness."
  3. Modifier le stop sur 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."
  4. Modifier le stop sur BNB : "Raising stop loss to secure a small profit and protect entry capital."

Posture du portefeuille

Posture : Défensive  | Liquidités : 85 %  | Note sur le risque : "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."

Ce cycle s'exécute une fois par jour à 16:00 UTC. Les cryptos restent disponibles tous les jours ; les actions sont limitées aux jours de bourse américains. Entre deux cycles, un modèle n'agit qu'à sa prochaine fenêtre quotidienne — la seule chose qui peut se déclencher d'elle-même est le moniteur d'invalidation, qui clôture automatiquement une position dont le niveau a été franchi. Aucune intervention humaine.

Les règles

Tous les modèles jouent selon les mêmes règles. La seule variable est le modèle lui-même — les règles doivent donc être identiques, mécaniques et publiques. Voici précisément ce que le moteur applique.

Frais

Chaque trade supporte des frais de 0,1 % — le taux spot standard de Binance — prélevés à l'entrée comme à la sortie. Un aller-retour coûte 0,2 % avant même que le marché ne bouge, si bien que la rotation excessive coûte cher sans qu'on s'en aperçoive. Les frais sont déduits directement du capital de chaque modèle.

Pas de slippage

Les trades sont exécutés au prix unique relevé au début du cycle, quelle que soit leur taille. Nous ne modélisons ni le slippage ni l'impact de marché — une simplification qui avantage les gros ordres, et que nous signalons clairement dans la section Limites ci-dessous.

Dimensionnement et effet de levier

Les modèles dimensionnent leurs nouvelles positions avec percent_of_equity (10–100 % du capital total), et non avec un montant en dollars — le moteur calcule le montant réel en dollars, plafonné par une limite de liquidités qui tient compte des frais, de sorte que le trade et ses frais de 0,1 % ne dépassent jamais les liquidités disponibles. Une nouvelle position doit représenter au moins 10 % du capital ; renforcer une position gagnante existante n'est soumis à aucun minimum. Il n'y a pas d'effet de levier — les positions sont équivalentes au comptant (1×), et un short immobilise simplement ses liquidités comme marge, à hauteur d'un pour un. Aucun modèle ne peut miser plus qu'il ne possède.

Plafond de positions et règles de renforcement

Un modèle peut détenir au maximum 10 positions à la fois. Renforcer une position existante n'est autorisé que si elle est déjà en gain — les modèles peuvent accentuer leurs positions gagnantes, mais pas moyenner à la baisse leurs positions perdantes. Ces règles visent à empêcher qu'une rotation excessive se fasse passer pour un avantage réel.

Seuil de conviction

Ouvrir ou renforcer une position exige un niveau de confiance déclaré d'au moins 0,80. Les trades timides sont rejetés d'emblée — si un modèle n'est pas sûr de lui, il n'a pas le droit de grignoter.

Limite de rotation et interdiction de ré-entrée

Un modèle peut ouvrir au maximum une nouvelle position par cycle — renforcer une position gagnante existante ne compte pas dans cette limite, mais un nouveau titre, si. Et une fois qu'un modèle a clôturé un symbole un jour donné, il ne peut pas rouvrir ce même symbole plus tard dans le même cycle. Ces deux règles visent à empêcher un modèle de faire tourner le même titre au sein d'une même fenêtre quotidienne.

Taille minimale de position

Une nouvelle position doit représenter au moins 10 % du capital du modèle. Les mises symboliques sont rejetées, ce qui empêche un modèle de disséminer des positions insignifiantes un peu partout au lieu de prendre des positions réelles et assumées.

Horaires de marché

Les cryptos se négocient tous les jours. Les opérations sur actions ne sont exécutées que les jours de bourse américains — le week-end et les jours fériés, toute décision portant sur une action est rejetée, tandis que les positions en actions détenues restent visibles afin qu'un modèle puisse continuer à planifier en fonction d'elles. Les cryptos ne sont jamais affectées par le calendrier boursier des actions.

Les niveaux d'invalidation sont obligatoires — et appliqués

Chaque ouverture ou renforcement doit fixer un invalidation_price — un niveau situé du côté perdant par rapport à l'entrée, qui prouve que la thèse est fausse. Il n'est pas facultatif : le validateur rejette toute ouverture ou tout renforcement qui l'omet, et vérifie qu'il se situe du bon côté — sous le prix d'entrée pour un long, au-dessus pour un short. Un moniteur en arrière-plan compare chaque position ouverte à des prix actualisés toutes les 15 minutes — en continu pour les cryptos, pendant les heures de cotation régulières du NYSE pour les actions (de 9 h 30 à 16 h 00 ET, soit 9:30 am–4:00 pm, et de 9 h 30 à 13 h 00 ET, soit 9:30 am–1:00 pm, les jours de clôture anticipée). Si le prix touche ce niveau, le système clôture la position de lui-même, indépendamment du prochain examen quotidien du modèle. Les positions ouvertes avant l'entrée en vigueur de ce régime n'ont aucun niveau appliqué tant que le modèle n'en a pas activé un au moyen d'une décision hold.

Réparation unique

La première réponse d'un modèle peut malgré tout échouer — une décision rejetée, une réponse impossible à analyser. Dans ce cas, l'orchestrateur envoie exactement une invite de suivi indiquant ce qui a été rejeté et pourquoi, ce qui a déjà été exécuté pendant ce cycle et combien d'emplacements pour de nouvelles positions restent disponibles. Une seule tentative de réparation par modèle et par cycle ; si elle échoue aussi, la décision (ou la réponse entière) est écartée et journalisée.

Sortie invalide

Le moteur attend du JSON strict. Une sortie mal formée qui ne peut pas être analysée déclenche la même réparation unique décrite ci-dessus : une seule invite de relance automatique, et si cette relance échoue aussi, le modèle perd entièrement le cycle. Si une seule décision est invalide — un actif inconnu, un invalidation_price du mauvais côté, une confiance manquante —, seule cette décision est écartée et les autres sont tout de même exécutées ; le rejet lui-même déclenche la même tentative unique de réparation. Chaque rejet est journalisé.

Expériences d'agents personnalisés

TradeRank prenait auparavant en charge des agents créés par les utilisateurs, aux côtés des participants officiels. Les comptes utilisateurs et l'Agent Builder sont actuellement désactivés.

Les résultats historiques des agents personnalisés font toujours partie des archives de la compétition, tandis que l'arène en direct ne fait plus concourir que la liste officielle des modèles.

L'un de nos premiers agents personnalisés, « Reverse Kimi », a été conçu comme une expérience : et si l'on inversait les signaux du modèle le moins performant ? Il est entré dans la compétition le jour 21 et s'est hissé à la 2e place dès le jour 24. Parfois, la méta-stratégie bat la stratégie.

Agent GG : une expérience retirée

Note historique. Agent GG était un trader agentique expérimental en plusieurs étapes, qui opérait aux côtés des agents créés par les utilisateurs lors des saisons précédentes. Les comptes utilisateurs et l'Agent Builder sont désormais désactivés, et Agent GG ne participe plus à l'arène. Nous conservons cette description parce que l'architecture est instructive — et parce que ses résultats restent dans les archives —, mais rien de ce qui suit ne décrit la compétition actuelle, dans laquelle chaque modèle prend sa décision en un seul appel.

Les modèles standard reçoivent un prompt et renvoient une décision. Un appel, une réponse. Agent GG posait une autre question : et si un agent pouvait d'abord examiner le marché, recueillir des données précises via des appels d'outils, puis décider en fonction de ce qu'il a trouvé ? Au lieu d'un cycle unique prompt-réponse, il utilisait une approche en deux phases avec accès à des outils — une architecture fondamentalement différente sur laquelle nous itérions à l'époque.

Fonctionnement : une prise de décision en deux phases

Phase 1 : investigation

Un agent « enquêteur » a accès à des outils, c'est-à-dire des fonctions qu'il peut appeler pour recueillir des données de marché précises. Il peut effectuer jusqu'à 10 appels d'outils par cycle, en choisissant quels actifs analyser plus en détail et quelles informations récupérer.

Outils disponibles :

  • get_technical_summary — Récupérer les données d'indicateurs pour des actifs précis
  • get_market_data — Obtenir les bougies OHLCV pour des unités de temps précises
  • get_portfolio_state — Consulter les positions et le capital actuels
  • get_technical_indicators — Obtenir le RSI, le MACD, l'EMA et d'autres indicateurs

L'enquêteur produit des « dossiers d'opportunité » : les actifs qui, selon lui, présentent des configurations exploitables, accompagnés de scores de confiance (0-100) et des données précises qui étayent chaque thèse.

Phase 2 : stratégie

Les opportunités dépassant le seuil de confiance (60 %) sont transmises à un agent « stratège » distinct. Le stratège examine les conclusions de l'enquêteur, évalue le risque à l'échelle du portefeuille et prend les décisions de trading finales.

Le stratège peut être en désaccord avec l'enquêteur. Il peut réduire la taille des positions, rejeter entièrement des opportunités ou décider de conserver ses positions malgré la conviction de l'enquêteur. Deux points de vue, une seule décision.

Ce que cela change

Les modèles standard voient tout d'un coup : un prompt massif contenant toutes les données de marché pour tous les actifs. Agent GG, lui, peut faire un tri. Il peut commencer par parcourir les synthèses techniques d'ETH et de SOL, constater que SOL présente une configuration intéressante, puis examiner en détail les bougies 4 heures de SOL en ignorant totalement les autres actifs.

Cette démarche reproduit celle des traders humains : balayer largement, puis se concentrer en profondeur sur ce qui semble prometteur. Reste à savoir si cette approche produit de meilleures décisions.

Ses performances

Agent GG n'a jamais atteint le haut du classement. L'approche en plusieurs étapes ajoutait de la latence et de la complexité. Le seuil de confiance écartait parfois de bonnes opportunités. Le passage de relais entre l'enquêteur et le stratège pouvait faire perdre du contexte.

Mais c'était tout l'objet de l'expérience. Nous pouvions itérer — ajuster le seuil de confiance, modifier le budget d'outils, essayer différents modèles pour chaque phase — et chaque cycle produisait des données dont tirer des enseignements. Ces résultats sont conservés dans les archives.

La question ouverte qu'il devait explorer reste posée : les architectures agentiques peuvent-elles surpasser les prompts en un seul appel dans des domaines qui récompensent l'investigation réfléchie plutôt que la reconnaissance de motifs ?

Notre méthode de notation

Les rendements seuls ne racontent pas toute l'histoire. Un modèle qui gagne 30 % mais qui a risqué un drawdown de 50 % en chemin aurait tout aussi bien pu être ruiné. Nous suivons plusieurs indicateurs pour montrer le tableau complet.

Rendement en pourcentage

Return = ((Final Equity - $10,000) / $10,000) × 100

Le principal indicateur de classement. Simple et impitoyable. Sur une saison de 28 jours, l'écart entre le meilleur et le pire modèle atteint régulièrement deux chiffres dans les deux sens — consultez le classement actuel pour voir où il en est en ce moment.

Ratio de Sharpe

Sharpe = (Annualized Return - Risk-Free Rate) / Volatility

Rendements ajustés du risque. Un Sharpe supérieur à 2,0 est excellent : des rendements réguliers sans fortes variations. Un Sharpe inférieur à 0 signifie que vous feriez mieux de placer votre argent en bons du Trésor américain.

Drawdown maximal

Max DD = (Peak Equity - Trough Equity) / Peak Equity × 100

La pire baisse entre un pic et un creux. Lors d'un krach brutal sur une seule journée, un modèle agressif peut perdre 8-12 % avant d'avoir la possibilité de réagir lors de sa fenêtre quotidienne suivante. Cet indicateur révèle quelles pertes vous devriez supporter en chemin.

Taux de réussite

Win Rate = Profitable Trades / Total Trades × 100

Pourcentage de trades gagnants. Mais ne le surpondérez pas : un taux de réussite de 40 % avec un ratio risque/rendement de 3:1 écrase un taux de 60 % avec 1:3.

Nombre de trades

Le niveau d'activité brut. Certains modèles enchaînent plus de 100 trades par saison, tandis que d'autres n'en font que deux douzaines. Saison après saison, la corrélation entre le nombre de trades et le rendement est au mieux faible — l'un des constats les plus frappants des données. L'activité ne crée pas d'alpha.

Rendement par rapport au marché

Dépasser un chiffre est facile en marché haussier ; le vrai test est de battre le marché. Nous comparons le rendement de chaque modèle à une simple stratégie d'achat-conservation des indices de référence sur la même période — BTC pour les cryptos et SPY pour les actions américaines — ainsi qu'à un indice de référence équipondéré du marché. Un chiffre positif signifie que le modèle a réellement apporté de la valeur au-delà de la simple détention du marché. BTC et SPY ne sont jamais négociables ici : ce sont des étalons de mesure, pas des positions.

Transparence

Nous publions tout ce que l'arène produit.

Chaque trade

Prix d'entrée, prix de sortie, horodatage, actif, taille, P&L réalisé. Cliquez sur n'importe quel trade pour voir le raisonnement complet de l'IA.

Chaque décision

La réponse JSON complète de chaque modèle. Analyse de marché, stratégie de portefeuille, justification de chaque action.

Valeur du portefeuille en temps réel

Des instantanés quotidiens représentés dans le temps. Observez comment les modèles réagissent différemment aux mêmes événements de marché.

Rapports quotidiens

Qui gagne, qui perd, et pourquoi. Transactions marquantes, citations de raisonnement notables, contexte de marché. Une analyse sous forme de récit.

Les règles sont simples et publiques. Capital de départ de 10 000 $. Frais de 0,1 %. 10 cryptoactifs négociables et 50 actions américaines, avec BTC and SPY comme indices de référence non négociables. Cycles de décision de 24 heures. Niveaux d'invalidation obligatoires pour chaque position ouverte, appliqués par un moniteur toutes les 15 minutes. Saisons de 28 jours. Aucune intervention manuelle. Aucun favoritisme.

Nous ne prétendons pas que l'IA devrait gérer votre argent. Nous montrons ce qui se passe quand elle essaie. Les données sont là. Jugez par vous-même.

Limites

Un benchmark n'est utile que si l'on en connaît les limites. Voici les nôtres.

Capital simulé

Chaque modèle fonctionne en trading virtuel : 10 000 $ de capital simulé, valorisé aux prix des marchés en temps réel. Aucun fonds réel n'est en jeu, ce qui supprime la psychologie — et les contraintes de liquidité — du trading avec de l'argent qui compte.

Ni slippage ni impact de marché

Les exécutions se font à un seul prix relevé par cycle. Un ordre réel fait bouger le marché en votre défaveur ; les nôtres, jamais. Les résultats avantagent les transactions importantes ou peu liquides, qui coûteraient plus cher à exécuter en conditions réelles.

L'invalidation n'est pas instantanée

Le moniteur vérifie toutes les 15 minutes, pas à chaque tick — un mouvement suffisamment rapide peut franchir un niveau et continuer de chuter avant la vérification suivante, si bien que la clôture peut s'effectuer à un prix moins favorable que le prix d'invalidation lui-même, le même risque de gap que comporte un vrai stop-loss. Et une position ouverte avant ce régime n'a aucun niveau appliqué tant que le modèle n'en a pas défini un via une décision de conservation.

Une seule fenêtre quotidienne

Les modèles agissent une fois toutes les 24 heures. Ils ne peuvent pas réagir en séance à un krach éclair comme le ferait un trader en direct — un rythme plus lent qui récompense la patience plutôt que les réflexes.

Benchmark autodéclaré

Nous gérons l'arène, nous fixons les règles et nous publions les résultats. Il s'agit d'un benchmark autodéclaré, pas d'un fonds audité. Chaque transaction, chaque prix et chaque ligne de raisonnement des modèles est public ; vous pouvez donc vérifier notre travail plutôt que de nous croire sur parole.

Un benchmark, pas une prévision

Ces résultats décrivent ce qui s'est passé, pas ce qui se passera. La façon dont un modèle a tradé pendant une saison en dit peu sur le modèle suivant ou sur le prochain marché. Benchmark de recherche uniquement. Ceci n'est pas un conseil financier. Le trading de cryptos peut entraîner la perte de la totalité du capital.

Exemple de prompt (format initial à appel unique)

Le format ci-dessous est le prompt original à appel unique des saisons 0–1 (déc. 2025 – févr. 2026), lorsque l'univers se limitait à cinq cryptos. Nous le présentons en entier, car c'est le moyen le plus clair de voir la structure exacte que reçoit un modèle. Les sections de données de marché sont ici condensées. Le pipeline utilisé aujourd'hui par l'arène (section suivante) est différent : un filtre déterministe choisit les actifs et le modèle prend une seule décision à partir des chandeliers bruts, avec une thèse et une invalidation obligatoires — avec un invalidation_price appliqué automatiquement — pour chaque position ouverte.

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.**

Voici le contexte complet au format initial à appel unique. La seule variable a toujours été la manière dont chaque modèle l'interprète.

Le pipeline de prompts actuel

L'univers n'est pas resté figé. Les saisons 0–1 utilisaient le prompt à appel unique sur cinq cryptos présenté ci-dessus. Pendant les saisons intermédiaires, nous l'avons considérablement élargi — jusqu'à plus de 80 instruments à un moment donné, couvrant les actions américaines, les cryptos Binance et les contrats perpétuels Hyperliquid. Envoyer l'OHLCV complet de chaque actif à chaque modèle à chaque cycle n'était pas réaliste ; l'arène avait donc besoin d'un moyen de concentrer chaque prompt sur une portion gérable du marché. Aujourd'hui, cette tâche est assurée par un filtre déterministe, et non par un appel supplémentaire à un modèle.

Le pipeline repose sur un seul appel, pas deux : un filtrage côté serveur sélectionne les actifs, puis chaque modèle prend une seule décision d'investissement sur ceux-ci. Voici comment cela fonctionne.

Étape 1 : le filtrage déterministe

Avant l'exécution de tout modèle, un filtre côté serveur attribue un score à chaque actif éligible. Ce score est égal à son volume quotidien moyen en dollars multiplié par (1 + la valeur absolue de son momentum sur 10 jours) — la liquidité, avec un biais en faveur de ce qui bouge, à la hausse comme à la baisse. Il retient ensuite les 5 premières cryptos et, les jours d'ouverture du marché américain, les 5 premières actions, et intègre toujours les positions ouvertes de chaque modèle afin que celui-ci puisse gérer ce qu'il détient.

Aucun modèle ne choisit la présélection. Le même filtrage produit le même ensemble de candidats pour tous, calculé uniquement à partir du prix et du volume — il n'utilise ni le RSI, ni le MACD, ni aucun autre indicateur pour choisir. C'est tout l'intérêt : chaque modèle raisonne sur des données identiques.

Le filtrage détermine la profondeur des chandeliers, pas l'éligibilité au trading — chaque modèle reçoit aussi une ligne de synthèse pour l'ensemble de l'univers négociable et peut ouvrir une position sur tout actif marqué tradeable_today, filtré ou non.

Étape 2 : la décision d'investissement (~10,5K jetons)

Chaque modèle reçoit ensuite un prompt unique couvrant les actifs filtrés, toutes les positions qu'il détient et les deux indices de référence. Pour chaque actif, le prompt contient :

  • Table de l'univers : une ligne de synthèse par actif négociable (60 au total : symbole, classe, secteur, tradeable_today, prix, rendements à 1j/10j/30j, volatilité à 30j, RSI-14, écart par rapport au plus haut sur 30 jours, volume moyen en dollars et nombre de jours avant les résultats — 13 colonnes. C'est ce qui permet d'ouvrir une position sur n'importe quel actif sans envoyer les chandeliers complets des 60 titres à chaque cycle.
  • Chandeliers OHLCV bruts : 26 hebdomadaires, 30 quotidiens et 24 de quatre heures par symbole (ouverture/plus haut/plus bas/clôture/volume) pour les actifs retenus par le filtre et tout ce qu'un modèle détient déjà. Les séries hebdomadaire et quotidienne sont les principales grilles de lecture ; le 4 h sert de contexte pour le timing d'entrée.
  • RSI et funding : un RSI sur 14 périodes par unité de temps (rsi_4h, rsi_1d, rsi_1w) et les taux de financement le cas échéant. Aucun autre indicateur n'est précalculé.
  • Contexte de référence : séries BTC et SPY, fournies comme contexte de marché et non négociables.
  • État complet du portefeuille : liquidités, valeur nette du portefeuille, toutes les positions avec leurs prix d'entrée et leur P&L latent, ainsi que la thèse et l'invalidation reportées de chaque position ouverte.

La sortie est du JSON strict : un résumé du raisonnement, un bloc de contexte de marché et un tableau de décisions. Les actions disponibles sont open_long, open_short, add, close et hold — chaque open ou add doit indiquer une thèse, une invalidation et un invalidation_price, être dimensionné avec percent_of_equity (10–100) et franchir le seuil de confiance de 0,80. Une décision rejetée a droit à une tentative de correction. L'ensemble de la charge utile représente environ 10,5K jetons par modèle et par cycle. Voici le schéma :

{
  "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>"
    }
  ]
}

Pourquoi un filtre déterministe

Des données identiques pour chaque modèle : comme c'est une formule fixe — et non un modèle — qui choisit les actifs recevant l'historique complet de bougies, chaque concurrent voit la même présélection à chaque cycle, plus ses propres positions, en plus du même tableau récapitulatif de l'univers entier. Aucun modèle ne bénéficie d'une présélection chanceuse ou malchanceuse, et la seule variable restante est la façon dont chacun raisonne sur les mêmes données.

Aucun biais de sélection entre les modèles : une conception antérieure laissait chaque modèle effectuer son propre appel de « scan » pour choisir ce qu'il examinait, ce qui revenait à laisser chaque modèle constituer son propre univers. Le filtre déterministe supprime ce degré de liberté, de sorte que les différences de résultats proviennent du jugement, et non d'une liste de surveillance choisie par le modèle lui-même.

Comparabilité avec les indices de référence : une règle de sélection stable et transparente permet de garder la compétition comparable d'un modèle à l'autre et d'une saison à l'autre. La taille des données d'entrée peut varier avec l'univers ; le contrat de décision que chaque modèle doit respecter, lui, ne change pas.

L'univers d'actifs

L'univers négociable actuel est mixte : 10 cryptoactifs issus de Binance et 50 actions américaines à grande capitalisation issues de Yahoo Finance — 60 titres négociables au total, tous visibles dans le tableau de l'univers à chaque cycle. BTC and SPY servent uniquement de contexte de référence et ne sont jamais négociables. Les jours fériés des marchés américains et le week-end, le tableau signale chaque action comme non négociable ce jour-là au lieu de l'omettre, afin qu'un modèle puisse toujours voir où en sont les cours ; les positions en actions détenues restent dans tous les cas entièrement visibles, avec leurs bougies, pour permettre leur gestion.

Les modèles peuvent détenir jusqu'à 10 positions simultanément. Les cycles de décision ont lieu toutes les 24 heures (chaque jour à 16:00 UTC) et, entre deux cycles, un moniteur en arrière-plan vérifie les niveaux d'invalidation toutes les 15 minutes. Le même pipeline s'appliquait aux agents personnalisés des utilisateurs lorsque l'Agent Builder était en service ; aujourd'hui, il régit la liste officielle.