Dev log: première stratégie PoC

Point de départ

Objectif produit:

  • exprimer une stratégie de trading dans un langage clair
  • transformer une idée en fichier explicite
  • valider ce fichier avant exécution
  • rejouer ce fichier sur des données historiques
  • garder une trace lisible de chaque action
  • préparer le même socle pour l’exécution réelle plus tard

Ce dev log reste sur la première brique:

  • langage minimal
  • validation minimale
  • état minimal
  • modèle d’exécution minimal
  • première stratégie PoC

Ce qu’il faut construire

Pour tester une stratégie, il faut plus qu’un bouton de test historique.

Il faut un petit langage.

Langage

  • format JSON
  • champs obligatoires
  • marché visé
  • unité de temps
  • portefeuille simulé
  • hypothèses d’exécution
  • règles de stratégie
  • actions autorisées

Grammaire

  • structure stable
  • types connus
  • valeurs numériques contrôlées
  • noms de champs fixes
  • actions limitées
  • aucune exécution de code arbitraire
  • aucun appel externe dans une stratégie

Validation

  • version de stratégie connue
  • type de document connu
  • marché pris en charge
  • unité de temps prise en charge
  • portefeuille valide
  • action valide
  • montant positif
  • actif connu
  • prix lisible
  • erreur claire si le fichier ne passe pas

État

  • liquidités simulées
  • solde BTC simulé
  • prix courant
  • valeur du portefeuille
  • ordres créés
  • état avant action
  • état après action

Exécution

  • lecture des bougies historiques
  • ordre chronologique
  • une évaluation par bougie
  • achat simulé
  • prix tiré de la bougie courante
  • débit des liquidités
  • crédit du BTC
  • écriture d’un ordre
  • écriture d’une ligne de trace

Première stratégie

Version la plus simple possible:

  • achat unique
  • montant fixe
  • aucune condition
  • aucun IF
  • aucun THEN
  • aucun ELSE
  • aucun graphe de décision
  • aucune raison de transaction
  • aucun indicateur
  • aucun calendrier de versement
  • aucune comparaison

But du PoC:

  • vérifier que le fichier est lisible
  • vérifier que la validation passe
  • vérifier qu’un ordre simulé peut être créé
  • vérifier que le portefeuille change correctement
  • vérifier que la sortie peut être inspectée

JSON généré

{
  "version": 1,
  "type": "strategy",
  "name": "Premier achat BTC",
  "compact_description": "Achat unique de BTC avec capital simulé.",
  "description": "Stratégie PoC minimale: un achat unique de BTC, sans condition ni branche.",
  "market": "BTC",
  "timeframe": "1d",
  "portfolio": {
    "quote_asset": "USDC",
    "starting_cash": 1000
  },
  "execution": {
    "price": "candle_close",
    "fee_bps": 0,
    "slippage_bps": 0
  },
  "rules": [
    {
      "id": "first_lump_sum_buy",
      "action": {
        "type": "buy",
        "asset": "BTC",
        "price": "price()",
        "sizing": {
          "type": "quote_amount",
          "amount": 1000,
          "max_total_spend": 1000
        }
      }
    }
  ],
  "constraints": {
    "start_time": null,
    "end_time": null,
    "stop_when_budget_spent": true
  }
}

Ce que le moteur doit produire

À partir de ce fichier:

  • 1 stratégie chargée
  • 1 portefeuille initial
  • 1 action buy
  • 1 montant demandé
  • 1 prix d’exécution
  • 1 quantité de BTC calculée
  • 1 débit de liquidités
  • 1 crédit BTC
  • 1 ordre simulé
  • 1 ligne de trace
  • 1 valeur finale du portefeuille

Sortie minimale:

  • capital initial
  • liquidités restantes
  • BTC détenu
  • valeur BTC
  • valeur totale
  • nombre d’ordres
  • montant exécuté
  • statut de l’ordre

Cas à vérifier

Validation du fichier:

  • version présent
  • type égal à strategy
  • market égal à BTC
  • timeframe égal à 1d
  • starting_cash positif
  • action buy autorisée
  • actif BTC autorisé
  • prix price() autorisé
  • montant d’achat positif

Exécution simulée:

  • achat limité aux liquidités disponibles
  • liquidités jamais négatives
  • BTC jamais négatif
  • prix de clôture utilisé
  • quantité BTC cohérente
  • ordre enregistré
  • trace enregistrée

Résultat:

  • valeur finale égale aux liquidités plus BTC valorisé
  • répétition avec les mêmes données
  • même résultat à chaque relecture
  • aucune mutation externe
  • aucun ordre réel

Plus tard

Autres journaux de dev, pas celui-ci:

  • raisons de transaction
  • IF / THEN / ELSE
  • branches imbriquées
  • arbre de décision
  • graphe de stratégie
  • indicateurs
  • lectures de séries externes
  • calendriers de versement
  • contributions régulières
  • comparaisons entre stratégies
  • catalogue de stratégies
  • marché de stratégies
  • exécution réelle
  • clés API
  • conversion IA depuis le langage naturel

Limite de cette brique

  • aucune intelligence
  • aucune optimisation
  • aucune recommandation
  • aucun signal de marché
  • aucun résultat à vendre
  • aucun comportement en direct

Juste une chose:

  • un fichier de stratégie
  • un moteur qui le lit
  • un achat simulé
  • une trace vérifiable
← Retour HQ