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:
versionprésenttypeégal àstrategymarketégal àBTCtimeframeégal à1dstarting_cashpositif- action
buyautorisée - actif
BTCautorisé - 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