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 --json

En 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

OptionDescription
--json-prettyActive l’affichage JSON formaté.
--json-objective-limit NLimite à N le nombre de backtests exportés par objectif. Valeur par défaut : 1.
--json-include-tradesAjoute la table détaillée des trades.
--json-include-block-usageAjoute les compteurs d’utilisation des blocs.
--json-include-strategyAjoute le TOML source dans strategy_toml.
--json-include-all-grid-parametersAjoute tous les paramètres de grille, y compris ceux qui ne varient pas, dans grid_parameters.
--json-include-all-hyperparametersAjoute 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: true
  • mode: "backtest"
  • backtest_count: entier
  • objective_limit: entier
  • include_trades: booléen
  • include_block_usage: booléen
  • include_all_grid_parameters: booléen
  • include_all_hyperparameters: booléen
  • include_strategy_toml: booléen
  • whale_e_version: chaîne
  • trade_columns: [...] uniquement si --json-include-trades est actif
  • backtests: [...]
  • strategy_name: string
  • strategy_toml uniquement si --json-include-strategy est 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 --json
  • error: { 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 stdout sous la forme d’un objet JSON
  • success: false
  • _schema: "whale-e.error.v1"
  • mode: "backtest" ou mode: "analyze" selon le contexte
  • error: { 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-strategy

JSON compact avec 5 résultats par objectif :

whale-e strategie.toml --json --json-objective-limit 5