CitizOS · Trading · Doctrine
Benchmark · transparence radicale · doctrine V11

Si on ne bat pas le hasard, ce n'est pas un edge.

Tout système de trading doit prouver sa valeur contre des baselines simples. Si l'algo le plus naïf surperforme, c'est que le système sophistiqué ne sert à rien. Voici les 5 baselines de référence utilisées par le Decision OS · leurs principes, leurs équations, leurs résultats actuels.

Méthodologie

La comparaison est faite sur la même fenêtre temporelle pour toutes les stratégies. Slippage 0,1 % appliqué à chaque trade. Frais Binance 0,2 % par cycle (entrée + sortie). Pas de levier. Pas de short pour les stratégies long-only. Données BTCUSDT pour les baselines (paire la plus liquide).

La période actuelle est très courte (14 heures de données shadow). Les résultats vont devenir significatifs à mesure que la phase shadow s'allonge. Aucune conclusion définitive ne peut être tirée à ce stade. Cette page existe pour documenter publiquement le suivi.

5 baselines de référence
Baseline 01 · La référence passive

Buy & Hold BTC

On achète du BTC au début de la période, on attend, on vend à la fin. Aucune décision intermédiaire. C'est la stratégie la plus simple imaginable · et statistiquement très difficile à battre sur le long terme dans un marché en tendance.

"Le marché est en moyenne efficient. Ne pas le contrarier."
# Buy & Hold simplifié
entry = klines[0].open
exit = klines[last].close
pnl_pct = (exit - entry) / entry * 100 - slippage - frais
Baseline 02 · La discipline mécanique

DCA simple BTC (Dollar Cost Averaging)

Achat équipondéré à intervalles fixes (chaque heure dans notre cas). Aucune tentative de timing. Réduit l'impact d'un mauvais point d'entrée unique. C'est la stratégie recommandée par défaut aux investisseurs particuliers · simple, robuste, peu sensible aux émotions.

"Si tu ne sais pas timer le marché, achète régulièrement."
# DCA · répartition équipondérée
capital_par_step = 100 / n_steps
for kline in klines:
    units += capital_par_step / kline.open
value_final = units * klines[last].close
Baseline 03 · La suite de tendance

Momentum basique (MA50)

On entre en position long quand le prix dépasse sa moyenne mobile 50 périodes. On sort quand le prix repasse en dessous. C'est la stratégie de momentum la plus classique · utilisée dans des milliers de livres et de cours de trading. Performance théoriquement positive dans les marchés directionnels, mauvaise en range.

"La tendance est ton amie · jusqu'au moment où elle ne l'est plus."
# Momentum MA50 simplifié
if not in_position and price > ma50:
    entry = price
elif in_position and price <= ma50:
    pnl_pct = (price - entry) / entry * 100
Baseline 04 · L'oscillateur classique

RSI 30/70

On achète quand le RSI passe sous 30 (zone "survendue"). On vend quand il dépasse 70 (zone "surachetée"). C'est probablement la stratégie technique la plus enseignée au monde. En pratique · elle génère beaucoup de faux signaux dans les marchés directionnels, et marche bien dans les ranges étroits.

"Acheter quand les autres ont peur. Vendre quand ils sont euphoriques."
# RSI baseline
if not in_position and rsi < 30:
    entry = price
elif in_position and rsi > 70:
    pnl_pct = (price - entry) / entry * 100
Baseline 05 · Le test ultime

Random baseline (50/50)

Trades pris aléatoirement. 50 % long, 50 % short, durée aléatoire entre 1 et 24 heures. Cette baseline n'est pas conçue pour gagner · elle est conçue pour mesurer le bruit. Si une stratégie sophistiquée ne bat pas la baseline random, c'est qu'elle n'a aucun edge réel. Elle est seulement chanceuse.

"Si on ne bat pas le hasard · ce n'est pas un edge · c'est de la chance."
# Random baseline
for _ in range(n_trades):
    idx = random.randint(0, len(klines) - 5)
    exit_offset = random.randint(1, 24)
    pnl = compute_pnl(idx, exit_offset, random_direction)
Résultats actuels · 14 heures de données
Stratégie PnL final Sharpe Max DD N trades Winrate
Buy & Hold BTC -0,44 % 0,03 -1,79 % 1 0 %
DCA BTC -0,19 % 0,03 -1,79 % 15 0 %
Momentum MA50 0
RSI 30/70 0,00 % 0,00 % 0
Random baseline 20
TOS Decision Engine -2 510 % -11,65 -100 % 265 6 %
Verdict actuel

TOS bat 0/3 baselines (14 heures de données).

Sur cette fenêtre très courte, le système actuel ne surperforme pas les baselines simples. La lecture mérite des nuances ·

Premièrement, le calcul TOS dans cette table inclut tous les trades que l'agent classique a générés (avec filtre régime non-toxique seulement). Il ne représente pas encore la décision filtrée par les modules récents (Confidence Score, NO_TRADE Intelligent, Market Entropy). Quand ces modules seront intégrés dans le benchmark, on s'attend à une amélioration substantielle.

Deuxièmement, le Shadow Comparator a déjà démontré que l'IA refuse 240 trades sur 265 (90,6 % perdants). Si on calculait TOS uniquement sur les 25 trades qui auraient passé le filtre IA complet, le résultat serait différent. Mais ce calcul "filtré" sera implémenté dans une prochaine itération du benchmark.

Troisièmement, 14 heures de données ne sont pas significatives. La doctrine V11 exige 30 jours minimum avant toute conclusion. C'est exactement pour ça que la phase shadow dure 30-60 jours.

Le critère doctrine V11

La règle est sans ambiguïté · si TOS ne surperforme pas au moins 3 baselines sur 5 après 30 jours de données live, l'architecture sera révisée en profondeur. Pas ajustée à la marge · révisée. Pas masquée · publiée.

C'est ce critère qui sépare un système rigoureux d'un système marketing. Beaucoup de produits de trading promettent des résultats qu'ils ne peuvent pas démontrer. Ici, le système se contraint publiquement à un test qu'il pourrait perdre. C'est la condition de la crédibilité.

« Aucune conclusion ne peut être tirée d'une fenêtre de 14 heures.
Ce qui peut l'être · l'engagement à la mesurer. »