Méthodologie de backtest
Comment Drogo simule la performance historique des stratégies, quelles hypothèses sont intégrées et quels biais nous contrôlons explicitement.
Dernière révision:
Sources de données et résolution
Les backtests Drogo utilisent les mêmes données historiques en barres que celles qui alimentent les graphiques en direct : OHLCV de fin de journée provenant de Polygon pour les actions et ETF américains, avec des résolutions intraday (1m, 5m, 15m, 60m) disponibles pour les mêmes instruments. Les paires crypto utilisent les données spot Binance. Les paires Forex utilisent Polygon FX. Toutes les données sont servies via l'endpoint /history de l'API de données Drogo et mises en cache au plus près du edge pour garantir la cohérence en lecture sur une même exécution de backtest.
Chaque instrument est référencé par sa cotation primaire — les opérations sur titres (splits, dividendes spéciaux en cash, changements de ticker) sont appliquées à la série historique, de sorte qu'une position de 100 actions AAPL achetée en 2014 apparaisse comme 700 actions aux prix d'aujourd'hui, avec le prix de revient ajusté en conséquence. Les spin-offs sont traités comme un produit cash équivalent à la date du spin-off lorsque Polygon publie le ratio ; sinon la position est clôturée au close de la veille du spin-off et une note est émise dans le journal de l'exécution.
Modèle d'ordres et slippage
Par défaut, Drogo simule des ordres au marché qui s'exécutent à l'open de la barre suivante après que le signal s'est déclenché en clôture de barre. Cela évite le biais de look-ahead : une stratégie qui se déclenche à 15:30 en unité de temps journalière ne peut pas trader au close de 16:00 du même jour.
Le slippage est modélisé comme une fraction fixe du range de la barre, par défaut 5 bps pour les actions américaines liquides, 10 bps pour les actions moins liquides (ADV < 20 M USD), 15 bps pour les majors crypto et 30 bps pour les altcoins crypto. Le slippage est appliqué symétriquement à l'entrée et à la sortie, donc le coût aller-retour vaut le double du coût unilatéral. L'utilisateur peut surcharger ces valeurs par exécution.
Les ordres limit et stop sont simulés contre le high/low de la barre : un buy-stop à 101 USD ne s'exécute que si le high de la barre concernée est ≥ 101 USD, le prix de fill étant max(stop, open). Les stop-loss en position longue se déclenchent si low ≤ stop, avec fill à min(stop, open) pour modéliser honnêtement les pertes en gap baissier.
Exemple chiffré : signal AAPL déclenché le 2024-01-10 au close à 185,92 USD. Le palier de slippage par défaut est 5 bps. La barre suivante ouvre à 186,40 USD. Fill simulé = 186,40 × (1 + 0,0005) = 186,49 USD. À la sortie cinq jours plus tard à l'open 192,10 USD, fill simulé = 192,10 × (1 − 0,0005) = 192,00 USD. Coût aller-retour de slippage = (186,49 − 186,40) + (192,10 − 192,00) = 0,19 USD par action ≈ 10 bps aller-retour. P&L reporté = 192,00 − 186,49 = 5,51 USD par action, hors frais SEC/FINRA sur la jambe de vente.
Commissions et financement
Actions américaines : 0 USD de commission (aligné sur les courtiers retail modernes). La SEC fee de 0,00229 % à la vente et la FINRA TAF de 0,000119 USD/action à la vente sont appliquées sauf désactivation par l'utilisateur. Crypto : 10 bps maker / 10 bps taker par défaut (Binance VIP-0). Forex : 0 USD de commission, le spread étant intégré au modèle de slippage.
Marge et financement des shorts : le moteur facture le financement overnight des positions courtes au taux SOFR + 50 bps annualisés, prorata-temporis quotidien. Les positions longues ne portent pas de financement par défaut (compte cash). L'utilisateur peut basculer sur un modèle de compte sur marge qui facture SOFR + 200 bps sur le cash emprunté au-delà de 100 % d'utilisation des fonds propres.
Contrôles des biais de survie et de look-ahead
L'univers historique de Drogo inclut les tickers radiés et faillis chaque fois que le fournisseur de données les fournit ; ainsi, une stratégie backtestée sur "actions du S&P 500 entre 2015 et 2024" tourne réellement contre la composition historique de l'indice chaque année, et non contre la composition d'aujourd'hui. Les événements de reconstitution d'indice viennent des fichiers historiques d'indices Polygon quand ils sont disponibles ; sinon nous utilisons un CSV curé que nous mettons à jour chaque trimestre.
Les dates d'earnings, de dividendes et autres événements corporate sont prises au timestamp d'annonce, pas au timestamp du rapport. Une stratégie calée sur "acheter 2 jours avant earnings" ne connaît donc la date d'earnings qu'après son annonce publique, pas après coup.
Aucune donnée de fundamentals plus récente que 75 jours après la fin du trimestre n'est utilisée, car les révisions des états GAAP sont fréquentes dans les 75 jours qui suivent le dépôt. Le réglage est conservateur ; l'utilisateur peut le réduire.
Statistiques rapportées
Chaque exécution de backtest renvoie : rendement total, CAGR, max drawdown, Sharpe (rf = T-bill 1Y, rendements quotidiens), Sortino (semi-écart à la baisse), Calmar (CAGR / |max DD|), win rate, profit factor (gain brut / perte brute), gagnant / perdant moyen, espérance par trade, durée moyenne de détention, exposition (% du temps en marché) et la courbe d'equity complète.
Sharpe et Sortino sont annualisés par √252 pour les stratégies journalières et par √(365×24×60) pour les stratégies crypto en 1m. Nous ne calculons pas de "Sharpe mensuel" par défaut, car cela gonfle la métrique pour les stratégies à haute fréquence ; activez-le explicitement si vous en avez besoin.
Le drawdown est calculé sur la courbe d'equity en incluant le P&L latent, pas seulement le réalisé. Cela correspond à ce qu'un titulaire de compte verrait au quotidien.
Ce que les backtests ne peuvent pas vous dire
Les backtests supposent que la stratégie codée est celle que vous auriez exécutée en temps réel, sans dérogation comportementale. En pratique, la plupart des traders retail dévient de leur stratégie après 3–4 pertes consécutives. Le max drawdown reporté est une borne inférieure de ce qu'un humain vivrait.
Les backtests ne peuvent pas modéliser des événements de liquidité qui n'ont pas eu lieu : une stratégie qui tradait toujours 10 000 USD d'AAPL aurait bougé le marché si elle était passée à 100 M USD. Nous ne réduisons pas automatiquement la taille des positions selon le volume moyen quotidien ; cela relève de l'utilisateur.
Les backtests ne sont pas des conseils en investissement et n'établissent pas que la stratégie fonctionnera à l'avenir. Drogo ne réalise pas d'examens de risque au niveau du portefeuille et n'agit pas en qualité de fiduciaire.
Journal des modifications
- — Initial publication.
- — Added survivorship-bias and look-ahead-bias control sections; clarified default slippage tiers.
Références
Drogo Research — Éditorial quantitatif
Reviewed for factual accuracy; methodology linked below.