Export JSON
L’export JSON se configure uniquement via la CLI.
Vous pouvez obtenir les résultats de backtest au format JSON en ajoutant --json à la commande.
whale-e strategie.toml --jsonEn mode JSON, Whale‑E écrit la sortie sur stdout et désactive automatiquement les logs console/fichier, l’écriture SQLite des résultats et l’export Pine Script. Ce mode ne désactive ni le cache marché ni le cache indicateur.
Options JSON
| Option | Description |
|---|---|
--json-pretty | Active l’affichage JSON formaté. |
--json-objective-limit N | Limite à N le nombre de backtests exportés par objectif. Valeur par défaut : 1. |
--json-include-trades | Ajoute la table détaillée des trades. |
--json-include-block-usage | Ajoute les compteurs d’utilisation des blocs. |
--json-include-strategy | Ajoute le TOML source dans strategy_toml. |
--json-include-all-grid-parameters | Ajoute tous les paramètres de grille, y compris ceux qui ne varient pas, dans grid_parameters. |
--json-include-all-hyperparameters | Ajoute tous les hyperparamètres, y compris ceux qui ne varient pas, dans hyperparameters. |
Toutes ces options nécessitent --json. Utilisées sans --json, elles provoquent une erreur d’arguments.
En mode --analyze --json, seule --json-pretty est autorisée. Le détail du préflight se trouve dans Analyse (dry run).
En mode --search-symbol --json, seule --json-pretty est autorisée. Le détail du payload de recherche se trouve dans Recherche de symboles.
Enveloppe JSON en cas de succès
Le mode JSON de backtest utilise l’enveloppe _schema: "whale-e.backtests.v2".
success: truemode: "backtest"backtest_count: entierobjective_limit: entierinclude_trades: booléeninclude_block_usage: booléeninclude_all_grid_parameters: booléeninclude_all_hyperparameters: booléeninclude_strategy_toml: booléenwhale_e_version: chaînetrade_columns: [...]uniquement si--json-include-tradesest actifbacktests: [...]strategy_name: stringstrategy_tomluniquement si--json-include-strategyest actif
Chaque entrée de backtests contient toujours rank, un entier 1-based qui indique le classement du backtest au sein de sa objectif, ainsi que des blocs comme context, performance, trade_analysis et risk.
Quand les trades sont activés, le schéma partagé des colonnes est exporté une seule fois dans trade_columns, et chaque backtest ne contient que trades.rows.
Le bloc performance inclut notamment total_pnl et total_pnl_percent.
Le bloc risk inclut notamment les compteurs margin_call, margin_call_long et margin_call_short.
Tous les timestamps absolus du payload sont exprimés en Unix UTC millisecondes, sans suffixe _ms dans les noms de champs.
Exemple (tronqué) :
{
"success": true,
"_schema": "whale-e.backtests.v2",
"mode": "backtest",
"strategy_name": "ema-crossover",
"backtest_count": 1,
"backtests": [
{
"rank": 1,
"context": { "combination_code": "G3C123" },
"performance": { "total_pnl": { "value": 123.45, "type": "quote_amount", "side": "all" } },
"risk": { "margin_call": { "value": 0, "type": "count", "side": "all" } }
}
],
"strategy_toml": "[backtest]\n..."
}Enveloppes JSON en cas d’erreur
Erreurs CLI génériques :
success: false_schema: "whale-e.error.v1"mode: "backtest"pour un backtest CLI,mode: "analyze"pour--analyze --json,mode: "search_symbol"pour--search-symbol --jsonerror: { type: string, message: string }
Exemple :
{
"success": false,
"_schema": "whale-e.error.v1",
"mode": "backtest",
"error": { "type": "invalid_arguments", "message": "--json cannot be combined with --export-pinescript" }
}Erreurs de parsing TOML :
- renvoyées sur
stdoutsous la forme d’un objet JSON success: false_schema: "whale-e.error.v1"mode: "backtest"oumode: "analyze"selon le contexteerror: { type: "toml_parse_error", message: string, details: string[], strategy_file: string }
Exemple :
{
"success": false,
"_schema": "whale-e.error.v1",
"mode": "backtest",
"error": {
"type": "toml_parse_error",
"message": "Invalid key at line 12",
"details": ["..."],
"strategy_file": "strategy.toml"
}
}Exemples
JSON formaté avec trades et TOML source :
whale-e strategie.toml --json --json-pretty --json-include-trades --json-include-strategyJSON compact avec 5 résultats par objectif :
whale-e strategie.toml --json --json-objective-limit 5