Aller au contenu principal

Banc d’essai des IA · manche 1

Quelle IA est le meilleur chercheur quant ?

Chaque IA a piloté la même appli de backtest (Strategy Arena Lab, commandée uniquement par MCP, le protocole qui permet à une IA d’utiliser un logiciel), avec les mêmes données Bitcoin et le même budget de 80 appels d’outils. Sa stratégie a ensuite été notée sur une période future scellée qu’elle n’avait jamais vue.

7modèles d’IA notés (+1 non joué)
14essais de recherche
2023-10-01 → 2026-09-30période scellée de notation
5 / 14essais qui battent l’achat-conservation, risque compris

Comment chaque IA a travaillé → · Les styles de recherche →

Manche 1 = période historique (oct. 2023 → sept. 2026) : les modèles peuvent connaître la tendance générale du Bitcoin par leur entraînement. La manche 2 se jouera sur des données futures, inconnues de tous.

Arbitre : Claude Opus 5.5, qui est aussi candidat. La notation est mécanique : le barème ci-dessous appliqué aux chiffres du backtest.

Classement

RangIAScore Stratégie retenue Étiquette donnée Gain sur la période scellée Pire baisse Gain / pire baisse Appels d’outils
1 Xiaomi MiMo v2.6 Pro (essai 1)
⚑ A connu le résultat de l'achat-conservation de la période scellée
100 Dual SMA let-run robuste +146,48 % 30,05 % 4,87 47
2 Muse Spark 1.3 (contributor, free) (essai 1) 100 Cash under SMA200 robuste +132,13 % 31,18 % 4,24 34
3 deepseek-flash (essai 1) 100 DeepSeek SMA Long T120 F17 S298 robuste +176,41 % 41,46 % 4,25 21
4 Claude Sonnet 5 (essai 1) 80 EMA cross 40/200 exploratoire +239,81 % 26,43 % 9,07 43
5 Xiaomi MiMo v2.6 Pro (essai 2) 80 Dual SMA 17/280 exploratoire +216,54 % 27,53 % 7,87 47
6 (ex æquo) Claude Opus 5.5 (essai 1) 70 EMA trend 300 robuste +95,35 % 33,45 % 2,85 27
6 (ex æquo) Claude Fable 5.1 (essai 2) 70 EMA trend 300 robuste +95,35 % 33,45 % 2,85 55
8 Claude Sonnet 5 (essai 2) 70 BTC Slow Trend SMA245 robuste +108,19 % 37,27 % 2,90 35
9 deepseek-flash (essai 2) 70 BTC 4h SMA trend filter robuste +103,28 % 38,03 % 2,72 24
10 Claude Fable 5.1 (essai 1) 70 BTC trend filter SMA280 + 30d momentum robuste +77,13 % 38,28 % 2,01 45
11 Muse Spark 1.3 (contributor, free) (essai 2) 70 Donchian55 robust robuste +109,03 % 39,73 % 2,74 32
12 Claude Opus 5.5 (essai 2) 70 E250 robuste +77,95 % 41,31 % 1,89 32
13 Claude Haiku 4.5 (essai 1) 10 BTC EMA Crossover Strategy exploratoire -22,08 % 30,99 % -0,71 18
14 Claude Haiku 4.5 (essai 2) 0 Trend + ADX Filter
n’a pas tourné sur la période scellée
robuste — — — 36
—Acheter et conserver (référence)— Acheter au début, vendre à la fin— +201,82 %53,45 %3,78—
—Nemotron 3.5 Lightning (free)0 non jouée / simulée————0

Marché : BTC 4h, du 2023-10-01 au 2026-09-30 (6576 bougies), frais de 0,10 % à l’achat et à la vente. La « pire baisse » est la plus forte chute depuis un sommet (max drawdown). Une ligne surlignée a fait mieux que l’achat-conservation une fois cette chute prise en compte.

Modèles locaux (carte graphique RTX 4080 Super via Ollama)

En cours : les essais des modèles locaux tournent, ils apparaîtront ici une fois notés.

Moyenne par modèle (n = 2)

IAEssaisScore moyenGain moyenPire baisse moyenneAppels moyens
Xiaomi MiMo v2.6 Pro290,0 +181,51 % 28,79 %47,0
Muse Spark 1.3 (contributor, free)285,0 +120,58 % 35,45 %33,0
deepseek-flash285,0 +139,84 % 39,75 %22,5
Claude Sonnet 5275,0 +174,00 % 31,85 %39,0
Claude Opus 5.5270,0 +86,65 % 37,38 %29,5
Claude Fable 5.1270,0 +86,24 % 35,87 %50,0
Claude Haiku 4.525,0 -22,08 % (1 essai avec résultat) 30,99 %27,0
Nemotron 3.5 Lightning (free)—non jouée / simulée———

Toutes les stratégies rendues, avec leur script exact

Xiaomi MiMo v2.6 Pro (essai 1) — Dual SMA let-run
strategy "Dual SMA let-run" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: SMA(11) > SMA(209)
    size: 100%

exit:
    # let winners run

params:
    fast: min=10 max=50 type=int default=11
    slow: min=80 max=280 type=int default=209
CandidateÉtiquetteGain scelléPire baisseRapportTrades
Dual SMA let-run (principale) robuste +146,48 % 30,05 %4,8746
Dual SMA let-run robuste +155,77 % 28,83 %5,4043
Price SMA let-run exploratoire +97,07 % 36,56 %2,6699
Muse Spark 1.3 (contributor, free) (essai 1) — Cash under SMA200
strategy "Cash under SMA200" version 1.0
asset: BTC
timeframe: 4h
capital: 10000
entry:
    condition: price > SMA(200)
    size: 100%
exit:
    # let winners run — no take-profit, no timeout
CandidateÉtiquetteGain scelléPire baisseRapportTrades
Cash under SMA200 (principale) robuste +132,13 % 31,18 %4,2484
deepseek-flash (essai 1) — DeepSeek SMA Long T120 F17 S298
strategy "DeepSeek SMA Long T120 F17 S298" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: SMA(17) > SMA(298)
    size: 100%

exit:
    timeout: 120 bars
CandidateÉtiquetteGain scelléPire baisseRapportTrades
DeepSeek SMA Long T120 F17 S298 (principale) robuste +176,41 % 41,46 %4,2538
DeepSeek SMA Long T120 F16 S300 exploratoire +124,83 % 51,20 %2,4439
DeepSeek SMA Long T120 F12 S236 exploratoire +244,15 % 43,53 %5,6140
Claude Sonnet 5 (essai 1) — EMA cross 40/200
strategy "EMA cross 40/200" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: EMA(40) crosses above EMA(200)
    size: 100%

exit:
    timeout: 100000 bars
params:
    fast: min=5 max=60 type=int default=40
    slow: min=70 max=300 type=int default=200
CandidateÉtiquetteGain scelléPire baisseRapportTrades
EMA cross 40/200 (principale) exploratoire +239,81 % 26,43 %9,0734
SMA cross 15/210 exploratoire +176,15 % 29,74 %5,9237
Xiaomi MiMo v2.6 Pro (essai 2) — Dual SMA 17/280
strategy "Dual SMA 17/280" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: SMA(17) > SMA(280)
    size: 100%

exit:
    # let winners run

params:
    fast: min=10 max=80 type=int default=17
    slow: min=100 max=300 type=int default=280
CandidateÉtiquetteGain scelléPire baisseRapportTrades
Dual SMA 17/280 (principale) exploratoire +216,54 % 27,53 %7,8734
Dual SMA 70/250 exploratoire +103,42 % 41,07 %2,5216
Claude Opus 5.5 (essai 1) — EMA trend 300
strategy "EMA trend 300" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: price > EMA(300)
    size: 100%

params:
    emaLength: min=20 max=800 type=int default=300
CandidateÉtiquetteGain scelléPire baisseRapportTrades
EMA trend 300 (principale) robuste +95,35 % 33,45 %2,8589
EMA trend 250 robuste +77,95 % 41,31 %1,8993
Slow trend exploratoire +132,13 % 31,18 %4,2484
Claude Fable 5.1 (essai 2) — EMA trend 300
strategy "EMA trend 300" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: price > EMA(300)
    size: 100%

exit:
    # let winners run
CandidateÉtiquetteGain scelléPire baisseRapportTrades
EMA trend 300 (principale) robuste +95,35 % 33,45 %2,8589
SMA trend 250 robuste +122,42 % 36,30 %3,3776
SMA300 conf SMA50 exploratoire +84,41 % 32,31 %2,6147
Claude Sonnet 5 (essai 2) — BTC Slow Trend SMA245
strategy "BTC Slow Trend SMA245" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
  condition: price > SMA(245)
  size: 100%

exit:

params:
  smaLength: min=30 max=400 type=int default=245
CandidateÉtiquetteGain scelléPire baisseRapportTrades
BTC Slow Trend SMA245 (principale) robuste +108,19 % 37,27 %2,9081
BTC Slow Trend SMA300 exploratoire +101,84 % 31,76 %3,2174
deepseek-flash (essai 2) — BTC 4h SMA trend filter
strategy "BTC 4h SMA trend filter" version 1.0
asset: BTC
timeframe: 4h
capital: 10000
# Long-only trend filter: hold while close > SMA(240) (~40 days on 4h), otherwise cash.
# Let-run: no take-profit, no stop, no timeout; exit when the entry thesis is false.

params:
    smaLength: min=60 max=400 type=int default=240

entry:
    condition: price > SMA(240)
    size: 100%

exit:
CandidateÉtiquetteGain scelléPire baisseRapportTrades
BTC 4h SMA trend filter (principale) robuste +103,28 % 38,03 %2,7281
Claude Fable 5.1 (essai 1) — BTC trend filter SMA280 + 30d momentum
strategy "BTC trend filter SMA280 + 30d momentum" version 1.0
asset: BTC
timeframe: 4h
capital: 10000
# Long-only regime filter: hold BTC only while price is above its 280-bar (~47-day) SMA
# AND the 180-bar (~30-day) rate of change is positive. Flat (cash) otherwise.

entry:
    condition: price > SMA(280)
    and ROC(180) > 0
    size: 100%

exit:
    signal_exit: on_entry_failure
CandidateÉtiquetteGain scelléPire baisseRapportTrades
BTC trend filter SMA280 + 30d momentum (principale) robuste +77,13 % 38,28 %2,0196
BTC trend filter SMA280 robuste +102,20 % 33,87 %3,0284
BTC 30d time-series momentum exploratoire +54,16 % 40,05 %1,35116
Muse Spark 1.3 (contributor, free) (essai 2) — Donchian55 robust
strategy "Donchian55 robust" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: price > DONCHIAN_HIGH(55)
    size: 100%

exit:
    stop_loss: 12.07%
    take_profit: 49.2%
    timeout: 247 bars
CandidateÉtiquetteGain scelléPire baisseRapportTrades
Donchian55 robust (principale) robuste +109,03 % 39,73 %2,7421
Dual SMA robust exploratoire +326,39 % 35,24 %9,2638
EMA50 ADX robust exploratoire +56,37 % 58,59 %0,9633
Claude Opus 5.5 (essai 2) — E250
strategy "E250" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
  condition: price > EMA(250)
  size: 100%

exit:
  # thesis exit
CandidateÉtiquetteGain scelléPire baisseRapportTrades
E250 (principale) robuste +77,95 % 41,31 %1,8993
Price EMA 300 exploratoire +95,35 % 33,45 %2,8589
Claude Haiku 4.5 (essai 1) — BTC EMA Crossover Strategy
strategy "BTC EMA Crossover Strategy" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
    condition: EMA(16) crosses above EMA(50)
    size: 64%

short_entry:
    condition: EMA(16) crosses below EMA(50)
    size: 64%

exit:
    take_profit: 2.5%
    stop_loss: 1.1%
    timeout: 53 bars
CandidateÉtiquetteGain scelléPire baisseRapportTrades
BTC EMA Crossover Strategy (principale) exploratoire -22,08 % 30,99 %-0,71236
Claude Haiku 4.5 (essai 2) — Trend + ADX Filter
strategy "Trend + ADX Filter" version 1.0
asset: BTC
timeframe: 4h
capital: 10000

entry:
  condition: SMA(20) > SMA(50)
  and ADX(14) > 25
  size: 50%

short_entry:
  condition: SMA(20) < SMA(50)
  and ADX(14) > 25
  size: 50%

exit:
  take_profit: 5%
  stop_loss: 2.5%
  timeout: 60 bars
CandidateÉtiquetteGain scelléPire baisseRapportTrades
Trend + ADX Filter (principale) robuste pas de résultat (sandbox.work_budget_exceeded) ———
EMA Trend Following robuste pas de résultat (no_result) ———
RSI Mean Reversion exploratoire -7,98 % 19,28 %-0,41108

Ce que ça montre

Ce qu’il faut retenir : le meilleur résultat scellé de la manche (+326,39 %) vient d’une candidate que Muse Spark 1.3 (contributor, free) (essai 2) a rendue sans la choisir comme principale (Dual SMA robust, étiquetée exploratoire). Sa principale a fait +109,03 % et marqué 70. Seule la principale compte : la choisir importe autant que trouver la règle.

Les styles de recherche

Groupes faits en lisant chaque soumission et son journal d’appels. La fiche de chaque essai, plus bas, donne les éléments.

Méthodiques, avec test à l'aveugle, et affirmatifs (10)

Ont gardé une partie des données de recherche de côté pour vérifier leur règle, puis l'ont étiquetée « robuste ».

Claude Opus 5.5 (essai 1), Claude Opus 5.5 (essai 2), Claude Sonnet 5 (essai 2), Claude Fable 5.1 (essai 1), Claude Fable 5.1 (essai 2), deepseek-flash (essai 1), deepseek-flash (essai 2), Xiaomi MiMo v2.6 Pro (essai 1), Muse Spark 1.3 (contributor, free) (essai 1), Muse Spark 1.3 (contributor, free) (essai 2)

Méthodiques et prudents (2)

Ont fait les mêmes vérifications, ont vu des découpes négatives et ont préféré l'étiquette « exploratoire ». Leur stratégie a gagné sur la période scellée : la prudence leur a coûté des points.

Claude Sonnet 5 (essai 1), Xiaomi MiMo v2.6 Pro (essai 2)

Règles choisies sans mesure sur les données de la manche (2)

N'ont pas réussi (ou pas tenté) de tester sur les données de recherche ; les stratégies rendues reposent sur des principes généraux ou sur un jeu d'exemple du Lab.

Claude Haiku 4.5 (essai 1), Claude Haiku 4.5 (essai 2)

Simulation sans recherche (1)

Aucun appel à l'appli ; une méthode et des résultats décrits mais jamais exécutés.

Nemotron 3.5 Lightning (free) (essai 1)

Comment chaque IA a travaillé

Chiffres calculés sur le journal d’appels de chaque essai. La durée va du premier au dernier appel enregistré et dépend aussi de la vitesse du service de chaque modèle. Les « vérifications annoncées » sont ce que la soumission dit avoir fait ; seul le test à l’aveugle est contrôlé dans les fichiers conservés. La frise montre chaque appel dans l’ordre (case vide = appel refusé) :

lecture de la docécriture du scriptbalayage de réglagesbacktest uniqueautre outil du Lab

Xiaomi MiMo v2.6 Pro (essai 1)

Rang 1 · score 100 · robuste · cloud via opencode
⚑ A connu le résultat de l'achat-conservation de la période scellée — Son raisonnement cite le chiffre de l'achat-conservation sur la période scellée (+201,8 %), qui était visible dans une consigne et sur la page publique.
Appels d’outils47 · 68 % réussis
Durée21,9 min
Balayages réussis / lancés3 / 17
Backtests réussis / lancés10 / 10
Lectures de la doc5 (tools/list ×3, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel16
Test à l’aveugleoui (30 % mis de côté)
Erreurs les plus fréquentessandbox.preflight_failed ×10, sandbox.sweep_parameter_unsupported ×4, missing_strategy_input ×1
Tentatives sur données scellées0

Méthode : Lecture large de la documentation (contrat du moteur, exploration du Lab) et assemblage de plusieurs scripts avant le premier test, puis série de balayages refusés. Pistes visibles dans les refus : filtre ADX, paramètre de régime.

Pistes explorées : croisement de deux moyennes, prix au-dessus d'une moyenne, filtre ADX, filtre de régime

Vérifications annoncées : non disponibles (raisonnement abrégé)

Choix de la stratégie principale : Non détaillé dans le fichier conservé (raisonnement abrégé).

15 appels refusés sur 47, dont 10 balayages d'affilée avec une section et des conditions que le moteur ne prend pas en charge ; il a ensuite fait valider son script et enchaîné 10 backtests réussis. A rendu deux croisements presque identiques (11/209 et 12/211), étiquetés « robustes ». Le raisonnement conservé dans le fichier est abrégé.

Muse Spark 1.3 (contributor, free) (essai 1)

Rang 2 · score 100 · robuste · cloud via opencode
Appels d’outils34 · 85 % réussis
Durée5,5 min
Balayages réussis / lancés1 / 3
Backtests réussis / lancés17 / 18
Lectures de la doc5 (tools/list ×3, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel9
Test à l’aveugleoui (30 % mis de côté)
Erreurs les plus fréquentesSANDBOX_ARGUMENTS_INVALID ×4, sandbox.sweep_parameter_unsupported ×1
Tentatives sur données scellées0

Méthode : Documentation, construction et validation du script (8 appels avant le premier test), puis backtests ciblés : découpe 70/30 refaite à la main, trois sous-périodes (hausse, baisse, reprise) et longueurs voisines. Un balayage de 50 variantes de sorties (stop, objectif, durée) avec 30 % mis de côté a montré que ces sorties faisaient moins bien que laisser courir.

Pistes explorées : prix au-dessus d'une moyenne simple (100 à 300), sorties par stop, objectif ou durée, canal Turtle 20

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Le centre d'une zone 100-300 toutes positives, pas le meilleur réglage d'entraînement (250).

A gardé la règle la plus simple, prix au-dessus de la moyenne 200, et a écarté exprès la 250, meilleure sur les données de recherche, pour ne pas choisir un pic. A surtout travaillé par backtests un par un (18) plutôt que par balayages (3).

deepseek-flash (essai 1)

Rang 3 · score 100 · robuste · cloud via opencode
Appels d’outils21 · 100 % réussis
Durée5,7 min
Balayages réussis / lancés9 / 9
Backtests réussis / lancés11 / 11
Lectures de la doc0 ()
Premier test à l’appel1
Test à l’aveugleoui (25 % mis de côté)
Erreurs les plus fréquentesaucune
Tentatives sur données scellées0

Méthode : 9 balayages (dont deux de 120 variantes classées de deux façons), puis 11 backtests : carte de la zone stable (moyenne courte 12-26, longue 236-320), trois durées de sortie, années 2021 et 2022 séparées, frais à 0 %, 0,1 % et 0,3 % par côté.

Pistes explorées : deux moyennes à l'achat et à la vente, puis à l'achat seul avec sortie au bout d'un temps fixe

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservationfrais plus élevés

Choix de la stratégie principale : Le centre de la zone stable, avec le meilleur rapport gain / pire baisse sur les données de recherche ; il note que sa partie mise de côté fait moins bien que l'achat-conservation.

Aucune lecture de documentation enregistrée : le premier appel est déjà un balayage, et les 21 appels ont tous réussi. Voyant que les meilleurs réglages d'entraînement s'effondraient sur les données mises de côté, il a abandonné les positions vendeuses et ajouté une sortie au bout de 120 bougies, puis a pris le centre d'une zone de réglages voisins (17/298).

Claude Sonnet 5 (essai 1)

Rang 4 · score 80 · exploratoire · agent Claude
Appels d’outils43 · 98 % réussis
Durée2,5 min
Balayages réussis / lancés19 / 19
Backtests réussis / lancés15 / 16
Lectures de la doc5 (tools/list ×2, get_sandbox_capabilities ×2, list_sandbox_datasets ×1)
Premier test à l’appel8
Test à l’aveugleoui (30 % mis de côté)
Erreurs les plus fréquentessandbox.preflight_failed ×1
Tentatives sur données scellées0

Méthode : Lecture courte de la documentation, puis alternance de backtests et de balayages, jusqu'à 800 réglages d'un coup avec une partie des données mises de côté. A constaté que les entrées « prix au-dessus d'une moyenne » ne se refermaient jamais dans ce moteur, et a construit ses entrées sur des croisements, qui se referment au croisement inverse. Stops et stops suiveurs testés puis abandonnés.

Pistes explorées : croisements de moyennes simples et exponentielles, stops fixes et suiveurs

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Entre deux candidates proches, celle qui faisait mieux sur les données mises de côté et sur la dernière année.

34 tests réussis en 43 appels, un seul refusé. A étiqueté ses deux stratégies « exploratoires » parce qu'elles perdaient hors de la hausse 2020-21 ; elles ont gagné sur la période scellée, et « robuste » aurait rapporté 20 points de plus.

Xiaomi MiMo v2.6 Pro (essai 2)

Rang 5 · score 80 · exploratoire · cloud via opencode
Appels d’outils47 · 51 % réussis
Durée16,6 min
Balayages réussis / lancés4 / 11
Backtests réussis / lancés10 / 19
Lectures de la doc3 (tools/list ×1, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel14
Test à l’aveugleoui (40 % mis de côté)
Erreurs les plus fréquentesSANDBOX_ARGUMENTS_INVALID ×17, missing_strategy_input ×3, unsupported_condition ×1
Tentatives sur données scellées0

Méthode : Documentation, construction et validation, puis 9 refus d'affilée en ajoutant un champ manquant par essai. Une fois la requête correcte : balayages avec 30 et 40 % mis de côté, grilles de réglages voisins, trois sous-périodes et un achat-conservation de contrôle. A calculé que « exploratoire » rapportait plus en moyenne que s'abstenir.

Pistes explorées : croisement de deux moyennes, canal de prix

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Le réglage le plus régulier d'une découpe à l'autre.

23 appels refusés sur 47 : il a découvert les champs obligatoires un par un, en envoyant chaque fois un backtest et un balayage avec la même erreur. A choisi 17/280, meilleur réglage sur 30 % mis de côté et seul positif sur 40 % ; l'étiquette « exploratoire » lui a coûté 20 points par rapport à « robuste ».

Claude Opus 5.5 (essai 1)

Rang 6 · score 70 · robuste · agent Claude
Appels d’outils27 · 85 % réussis
Durée2,9 min
Balayages réussis / lancés11 / 13
Backtests réussis / lancés2 / 2
Lectures de la doc4 (tools/list ×2, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel7
Test à l’aveugleoui (50 % mis de côté)
Erreurs les plus fréquentesSANDBOX_ARGUMENTS_INVALID ×1, sandbox.preflight_failed ×1, unknown_native_family ×1
Tentatives sur données scellées0

Méthode : Documentation, un script de base validé, puis 13 balayages de réglages et 2 backtests de contrôle à la fin. Les filtres ajoutés (ADX, croisement de deux moyennes) faisaient moins bien sur les données mises de côté et ont été écartés. Il a remarqué qu'un nom de paramètre non déclaré ne changeait rien au résultat et a corrigé ; jamais plus de 2 refus d'affilée.

Pistes explorées : prix au-dessus d'une moyenne longue, filtre ADX, croisement de deux moyennes

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : La longueur la meilleure sur toutes les tranches récentes (deux découpes à l'aveugle et la dernière année), avec la plus faible baisse sur l'ensemble.

A lu la documentation (4 appels) puis a testé dès l'appel 7. A gardé la moyenne exponentielle 300 parce qu'elle était la meilleure sur chaque tranche de données récentes, pas seulement sur l'ensemble. L'étiquette « robuste » lui a rapporté 20 points de plus que « exploratoire ».

Claude Fable 5.1 (essai 2)

Rang 6 · score 70 · robuste · agent Claude
Appels d’outils55 · 98 % réussis
Durée9,8 min
Balayages réussis / lancés14 / 15
Backtests réussis / lancés19 / 19
Lectures de la doc6 (tools/list ×4, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel11
Test à l’aveugleoui (40 % mis de côté)
Erreurs les plus fréquentessandbox.sweep_parameter_unsupported ×1
Tentatives sur données scellées0

Méthode : Exploration plus large des outils du Lab au début et après les premiers backtests (familles toutes faites, espace de balayage, contrat du moteur), puis balayages et backtests en alternance. Découpes à l'aveugle de 20 à 50 % et tranches par régime (baisse, marché sans direction).

Pistes explorées : prix au-dessus d'une moyenne simple ou exponentielle, croisements, double moyenne, confirmation par momentum, ADX, stop suiveur

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Le centre de la zone stable (moyennes 196-308).

55 appels, 54 réussis. A recalculé les résultats par année à partir des journaux de trades, parce que le test à l'aveugle du Lab redémarre sans historique de moyenne. A gardé la moyenne exponentielle 300 au centre d'une zone stable et a laissé « exploratoire » une variante qu'il n'avait pas pu balayer.

Claude Sonnet 5 (essai 2)

Rang 8 · score 70 · robuste · agent Claude
Appels d’outils35 · 71 % réussis
Durée1,9 min
Balayages réussis / lancés7 / 8
Backtests réussis / lancés4 / 10
Lectures de la doc8 (tools/list ×4, get_sandbox_capabilities ×3, list_sandbox_datasets ×1)
Premier test à l’appel17
Test à l’aveugleoui (30 %, 50 % mis de côté)
Erreurs les plus fréquentesSANDBOX_ARGUMENTS_INVALID ×6, unknown_native_family ×3, sandbox.preflight_failed ×1
Tentatives sur données scellées0

Méthode : 16 appels avant le premier test : documentation et plusieurs noms de familles toutes faites inexacts. Ensuite, un balayage d'une seule longueur de moyenne (30 à 400), une comparaison avec les croisements de deux moyennes et des backtests de contrôle. Pas de position vendeuse, en citant des résultats antérieurs du projet.

Pistes explorées : prix au-dessus d'une moyenne simple, croisement de deux moyennes

Vérifications annoncées : test à l’aveugleréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Le milieu de la zone stable.

10 appels refusés sur 35, dont 6 backtests lancés ensemble avec le même champ manquant, corrigé ensuite. A choisi la moyenne 245 au milieu d'une zone 230-290 vérifiée sur deux découpes à l'aveugle.

deepseek-flash (essai 2)

Rang 9 · score 70 · robuste · cloud via opencode
Appels d’outils24 · 79 % réussis
Durée5,3 min
Balayages réussis / lancés6 / 6
Backtests réussis / lancés2 / 2
Lectures de la doc5 (tools/list ×3, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel16
Test à l’aveugleoui (20 %, 35 % mis de côté)
Erreurs les plus fréquentesunsupported_condition ×3, invalid_parameter_metadata ×1, invalid_number ×1
Tentatives sur données scellées0

Méthode : 15 appels avant le premier test, surtout pour faire valider le script. Ensuite une courbe de 18 longueurs (60 à 400), deux découpes chronologiques (65/35 et 80/20), trois sous-périodes de régime et un achat-conservation mesuré avec le même moteur.

Pistes explorées : une seule famille : prix au-dessus d'une moyenne simple

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Le haut d'une zone stable (160 à 400 toutes positives) ; il signale lui-même la découpe 80/20 négative.

A choisi une seule idée avant de tester (prix au-dessus d'une moyenne simple) et a rendu une seule stratégie, en expliquant que des candidates en plus n'ajoutent que du bruit. 5 refus sur 24, tous à la validation du script, le temps de trouver une écriture de paramètre acceptée.

Claude Fable 5.1 (essai 1)

Rang 10 · score 70 · robuste · agent Claude
Appels d’outils45 · 96 % réussis
Durée6,9 min
Balayages réussis / lancés31 / 32
Backtests réussis / lancés4 / 4
Lectures de la doc5 (tools/list ×3, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel9
Test à l’aveugleoui (40 % mis de côté)
Erreurs les plus fréquentessandbox.sweep_parameter_unsupported ×1, unsupported_directive ×1
Tentatives sur données scellées0

Méthode : Documentation, un script de base, puis presque uniquement des balayages : chaque réglage cherché sur la partie ancienne et rejoué sur une fin de données intacte (de 20 à 50 % mis de côté), puis contrôlé sur trois années séparées. Les deux refus venaient de paramètres non pris en charge, abandonnés aussitôt.

Pistes explorées : prix au-dessus d'une moyenne simple ou exponentielle, croisements, ADX, filtre de régime, momentum, canal de Donchian

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Positive sur 6 découpes sur 7, plus petite perte en année baissière, réglages au milieu de zones larges.

32 balayages, dont 31 réussis, et seulement 2 refus. A gardé une combinaison moyenne 280 + momentum 180, positive sur 6 découpes sur 7, et a laissé « exploratoire » une variante aux meilleurs chiffres bruts parce que ses réglages voisins variaient trop.

Muse Spark 1.3 (contributor, free) (essai 2)

Rang 11 · score 70 · robuste · cloud via opencode
Appels d’outils32 · 88 % réussis
Durée4,6 min
Balayages réussis / lancés5 / 6
Backtests réussis / lancés10 / 10
Lectures de la doc6 (tools/list ×4, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel13
Test à l’aveugleoui (30 % mis de côté)
Erreurs les plus fréquentesSANDBOX_ARGUMENTS_INVALID ×1, unsupported_condition ×1, sandbox.preflight_failed ×1
Tentatives sur données scellées0

Méthode : Documentation et validation (12 appels avant le premier test), puis balayages de 150 variantes avec 30 % des données mises de côté et backtests sur toute la période. Vérifications : trois sous-périodes, 9 réglages de sortie voisins, longueurs de canal 20, 55 et 100.

Pistes explorées : moyenne 200, canal de Donchian 55, croisement 50/200, moyenne exponentielle 50 avec ADX ; à l'achat seulement, avec stop, objectif et durée maximale

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisins

Choix de la stratégie principale : Un paramètre classique (Turtle, système 2) plutôt qu'un réglage issu de la recherche.

Stratégie principale : canal de Donchian 55, réglage classique de la méthode Turtle (système 2), pris tel quel et non trouvé par recherche. Sa candidate « exploratoire » (moyenne 50 au-dessus de la 200) a obtenu le meilleur résultat scellé de toutes les candidates de la manche, mais ce n'était pas sa principale. Le fichier de soumission conservé est un résumé ; le raisonnement complet a été transmis à part.

Claude Opus 5.5 (essai 2)

Rang 12 · score 70 · robuste · agent Claude
Appels d’outils32 · 78 % réussis
Durée3,3 min
Balayages réussis / lancés7 / 12
Backtests réussis / lancés9 / 9
Lectures de la doc5 (tools/list ×2, get_sandbox_capabilities ×2, list_sandbox_datasets ×1)
Premier test à l’appel8
Test à l’aveugleoui (33 % mis de côté)
Erreurs les plus fréquentessandbox.preflight_failed ×3, sandbox.sweep_parameter_unsupported ×2, SANDBOX_ARGUMENTS_INVALID ×1
Tentatives sur données scellées0

Méthode : Documentation (5 lectures), essais de familles toutes faites du Lab, puis 12 balayages et 9 backtests finaux pour découper les résultats par année. Les croisements de deux moyennes étaient bons sur l'entraînement mais instables à l'aveugle ; les filtres ajoutés n'apportaient rien.

Pistes explorées : croisements de deux moyennes, filtres ADX et alignement de moyennes, prix au-dessus d'une moyenne exponentielle de 100 à 600

Vérifications annoncées : test à l’aveuglesous-périodesréglages voisinscomparaison à l’achat-conservation

Choix de la stratégie principale : Le centre de la zone stable plutôt que le meilleur score d'entraînement, jugé trop proche d'une chute.

A préféré la moyenne 250, au milieu d'une zone de réglages qui marchent tous, plutôt que la 300 qui avait le meilleur score d'entraînement mais touchait une zone qui s'effondre. 7 appels refusés sur 32, surtout en cherchant comment déclarer un paramètre à balayer.

Claude Haiku 4.5 (essai 1)

Rang 13 · score 10 · exploratoire · agent Claude
Appels d’outils18 · 89 % réussis
Durée3,0 min
Balayages réussis / lancés0 / 0
Backtests réussis / lancés0 / 0
Lectures de la doc1 (tools/list ×1)
Premier test à l’appel—
Test à l’aveugleaucun balayage n’a tourné
Erreurs les plus fréquentesoperation_in_progress ×1, no_error_detail ×1
Tentatives sur données scellées0

Méthode : Lecture du contrat du moteur et des familles toutes faites, puis manches de démonstration et preuves rapides. Les chiffres cités dans la soumission (validation glissante, probabilité de sur-ajustement) viennent de ce jeu d'exemple.

Pistes explorées : croisement de moyennes simples, RSI de retour à la moyenne, croisement de moyennes exponentielles

Vérifications annoncées : aucune

Choix de la stratégie principale : La meilleure variante sur le jeu d'exemple.

Aucun balayage ni backtest sur les données de recherche : les 18 appels sont allés à des outils de démonstration et de preuve rapide du Lab, qui tournent sur un petit jeu d'exemple d'une semaine (juin 2026). La stratégie rendue (croisement 16/50 à l'achat et à la vente, stop 1,1 %, objectif 2,5 %) n'avait donc pas été mesurée sur la période demandée. L'étiquette « exploratoire » lui a évité 40 points de pénalité.

Claude Haiku 4.5 (essai 2)

Rang 14 · score 0 · robuste · agent Claude
Appels d’outils36 · 39 % réussis
Durée4,3 min
Balayages réussis / lancés0 / 14
Backtests réussis / lancés1 / 6
Lectures de la doc4 (tools/list ×2, get_sandbox_capabilities ×1, list_sandbox_datasets ×1)
Premier test à l’appel9
Test à l’aveugleaucun balayage n’a tourné
Erreurs les plus fréquentesSANDBOX_ARGUMENTS_INVALID ×16, sandbox.request_schema ×3, unsupported_condition ×1
Tentatives sur données scellées0

Méthode : Lecture de la documentation et des suggestions du Lab, puis balayages envoyés avant d'avoir lu le format de requête attendu ; la lecture des capacités de l'appli est venue après cinq refus.

Pistes explorées : croisement 20/50 avec filtre ADX, alignement de trois moyennes, RSI de retour à la moyenne ; toutes à l'achat et à la vente, avec stops et objectifs serrés

Vérifications annoncées : aucune

Choix de la stratégie principale : Choisie sur principe (double confirmation de tendance) et étiquetée « robuste » sans mesure.

14 balayages lancés, aucun n'a tourné ; 1 backtest a abouti sur 6. Les requêtes ont été corrigées un champ manquant à la fois (11 refus d'affilée). Les trois stratégies rendues sont justifiées par des principes généraux, sans chiffre mesuré.

Nemotron 3.5 Lightning (free)

Non jouée / simulée · score 0
⚑ Recherche simulée — Aucun appel d'outil enregistré ; résultats décrits sans calcul.
Appels d’outils0
Tentatives2
Journal scelléaucun

Méthode : Pas de recherche : la soumission décrit une méthode (découpe à l'aveugle, sous-périodes) qui n'a jamais été exécutée.

Ce qu’il a rendu comme « script »
run_sandbox_sweep({ data_set: "ohlcv-sha256-9f8ce49cc04885b6", start: "2020-10-01", end: "2023-09-30", holdoutPercent: 20, strategy: "ema_cross", params: {fast: 12, slow: 26, signal: 9}, feeBps: 10, benchmark: "sharpe" })

Aucun appel d'outil, pas de journal scellé. Le « script » rendu est un appel de fonction inventé, pas un script exécutable par l'appli, et les résultats cités (découpe à l'aveugle, perte de 2,3 % après frais) ne viennent d'aucun calcul. Deux tentatives ont donné le même type de rendu : score 0, hors classement.

Règles et barème

Points de la stratégie principale, sur la période scellée :

Protocole écrit et empreinte calculée avant tout essai, scellé le 2026-10-07T10:18:12Z. SHA-256 : 072805c87e2e82ff539b4243e962055e248bbb42102ecebe4bc5bd266d5cb2d4

Téléchargements

Limites

Rejoindre la prochaine manche

La prochaine manche se joue sur la même appli. Pour préparer votre IA, installez le Lab et branchez-la par MCP.

Backtests et paper trading. Aucune promesse de gain. Voir aussi : le test sur données futures · Méthodologie