Backtester des stratégies d'options avec Claude (ou une autre IA) à partir de données gratuites (Tutoriel)
Publié : 18 sept. 2026, 23:01
Bonjour à tous,
On me pose régulièrement la question : peut-on tester une stratégie d'options (vente de puts, strangles, iron condors, covered calls…) sans payer des centaines d'euros de données historiques ? La réponse courte est oui, à condition de bien comprendre ce que les données gratuites permettent et ne permettent pas. Les IA comme Claude, ChatGPT ou Gemini sont devenues très utiles pour ce travail, parce qu'elles écrivent le code Python à votre place et, pour certaines, l'exécutent directement dans la conversation.
Voici un petit tour d'horizon des méthodes, de la plus simple à la plus rigoureuse.
Le piège de départ : Yahoo Finance n'a pas d'historique d'options
C'est la première chose à savoir. Yahoo Finance (et la librairie Python yfinance) fournit la chaîne d'options du jour : strikes, primes, volatilité implicite, open interest. Mais il ne conserve pas les chaînes passées. Impossible donc de récupérer « le prix du put SPY 400 au 15 mars 2020 ».
En revanche, Yahoo fournit gratuitement des années d'historique sur les sous-jacents (^GSPC, ^NDX, ^GDAXI, SPY, QQQ…) et sur les indices de volatilité (^VIX pour le S&P 500, ^VXN pour le Nasdaq 100). C'est la base de la première méthode.
Méthode 1 : le backtest « synthétique » (sous-jacent + VIX + Black-Scholes)
Le principe : on reconstitue le prix théorique des options à chaque date avec la formule de Black-Scholes, en utilisant le VIX comme estimation de la volatilité implicite. C'est rapide, gratuit, et suffisant pour dégrossir une idée.
Exemple de demande à formuler à l'IA :
Ses limites, à garder en tête :
Méthode 2 : se constituer sa propre base à partir de Yahoo
Puisque Yahoo donne la chaîne du jour, il suffit de la sauvegarder tous les soirs. Demandez à l'IA un script qui télécharge chaque jour la chaîne complète d'un sous-jacent (SPY, QQQ…) et l'ajoute dans un fichier CSV ou une base SQLite. On le fait tourner automatiquement via le planificateur de tâches Windows, un cron sur un petit serveur, ou GitHub Actions (gratuit).
Au bout de quelques mois, vous disposez de vraies données historiques avec skew et fourchettes réelles. C'est lent, mais c'est gratuit et ce sont vos données.
Méthode 3 : les vrais historiques d'options (gratuits ou échantillons)
Quelques sources à explorer (les conditions changent souvent, vérifiez sur chaque site) :
Méthode 4 : les indices de stratégie du CBOE comme point de comparaison
Piste souvent oubliée : le CBOE publie gratuitement l'historique de plusieurs indices qui répliquent des stratégies d'options sur le S&P 500 : BXM (covered call), PUT (vente de puts couverte par du cash), BFLY (butterfly), CNDR (iron condor), CLL (collar)…
Deux usages concrets : vérifier qu'un backtest maison donne des résultats cohérents avec l'indice équivalent (si votre vente de puts écrase largement l'indice PUT, c'est probablement que votre code a un bug), et étudier le comportement d'une stratégie sur plus de 30 ans, crises comprises, sans une seule ligne de pricing.
Quelle IA et quel environnement ?
Pour dégrossir une idée : méthode 1 en une heure avec une IA. Pour une base propre à moyen terme : méthode 2. Pour valider sérieusement : méthode 3, en commençant par les échantillons gratuits. Et dans tous les cas, comparez-vous aux indices CBOE de la méthode 4.
Si certains d'entre vous ont déjà testé ces approches, ou connaissent d'autres sources de données gratuites, notamment sur les options européennes (DAX, Euro Stoxx 50), partagez-les dans ce fil, ça intéressera tout le monde.
On me pose régulièrement la question : peut-on tester une stratégie d'options (vente de puts, strangles, iron condors, covered calls…) sans payer des centaines d'euros de données historiques ? La réponse courte est oui, à condition de bien comprendre ce que les données gratuites permettent et ne permettent pas. Les IA comme Claude, ChatGPT ou Gemini sont devenues très utiles pour ce travail, parce qu'elles écrivent le code Python à votre place et, pour certaines, l'exécutent directement dans la conversation.
Voici un petit tour d'horizon des méthodes, de la plus simple à la plus rigoureuse.
Le piège de départ : Yahoo Finance n'a pas d'historique d'options
C'est la première chose à savoir. Yahoo Finance (et la librairie Python yfinance) fournit la chaîne d'options du jour : strikes, primes, volatilité implicite, open interest. Mais il ne conserve pas les chaînes passées. Impossible donc de récupérer « le prix du put SPY 400 au 15 mars 2020 ».
En revanche, Yahoo fournit gratuitement des années d'historique sur les sous-jacents (^GSPC, ^NDX, ^GDAXI, SPY, QQQ…) et sur les indices de volatilité (^VIX pour le S&P 500, ^VXN pour le Nasdaq 100). C'est la base de la première méthode.
Méthode 1 : le backtest « synthétique » (sous-jacent + VIX + Black-Scholes)
Le principe : on reconstitue le prix théorique des options à chaque date avec la formule de Black-Scholes, en utilisant le VIX comme estimation de la volatilité implicite. C'est rapide, gratuit, et suffisant pour dégrossir une idée.
Exemple de demande à formuler à l'IA :
Le squelette du code ressemble à ceci :Écris un script Python qui télécharge via yfinance l'historique du S&P 500 (^GSPC) et du VIX depuis 2010. Simule la vente mensuelle d'un put 5 % hors de la monnaie, échéance 21 jours de bourse, prime calculée par Black-Scholes avec la volatilité = VIX × 1,15 (pour approximer le skew des puts). Calcule le P&L de chaque cycle, le taux de gain, la perte maximale, le drawdown et trace la courbe de P&L cumulé. Déduis 0,05 point de frais et de slippage par trade.
Code : Tout sélectionner
import yfinance as yf, numpy as np, pandas as pd
from scipy.stats import norm
def bs_put(S, K, T, r, sigma):
d1 = (np.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
return K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)
data = yf.download(["^GSPC", "^VIX"], start="2010-01-01", auto_adjust=True)["Close"].dropna()
spx, vix = data["^GSPC"], data["^VIX"] / 100
r, jours, otm, skew, frais = 0.03, 21, 0.05, 1.15, 0.05
resultats = []
for i in range(0, len(spx) - jours, jours):
S0 = spx.iloc[i]
K = S0 * (1 - otm)
prime = bs_put(S0, K, jours/252, r, vix.iloc[i] * skew)
ST = spx.iloc[i + jours]
pnl = prime - max(K - ST, 0) - frais
resultats.append((spx.index[i], pnl))
res = pd.DataFrame(resultats, columns=["date", "pnl"]).set_index("date")
res["cumul"] = res["pnl"].cumsum()
print(res["pnl"].describe())
print("Taux de gain :", round((res["pnl"] > 0).mean() * 100, 1), "%")
print("Pire cycle :", round(res["pnl"].min(), 1), "points")- Pas de vrai smile de volatilité : les puts très hors de la monnaie sont en réalité plus chers que ce que donne le VIX, d'où le coefficient de skew (arbitraire).
- Pas de fourchette bid/ask réelle, qui est souvent le vrai coût d'une stratégie à 4 jambes.
- Strikes continus alors qu'en réalité ils sont discrets, et pas de gestion de l'exercice anticipé des options américaines (SPY, QQQ, actions).
- Pas d'équivalent aussi propre du VIX sur le DAX dans Yahoo : il faut alors partir de la volatilité réalisée à laquelle on ajoute une prime, ce qui est encore plus approximatif.
Méthode 2 : se constituer sa propre base à partir de Yahoo
Puisque Yahoo donne la chaîne du jour, il suffit de la sauvegarder tous les soirs. Demandez à l'IA un script qui télécharge chaque jour la chaîne complète d'un sous-jacent (SPY, QQQ…) et l'ajoute dans un fichier CSV ou une base SQLite. On le fait tourner automatiquement via le planificateur de tâches Windows, un cron sur un petit serveur, ou GitHub Actions (gratuit).
Au bout de quelques mois, vous disposez de vraies données historiques avec skew et fourchettes réelles. C'est lent, mais c'est gratuit et ce sont vos données.
Méthode 3 : les vrais historiques d'options (gratuits ou échantillons)
Quelques sources à explorer (les conditions changent souvent, vérifiez sur chaque site) :
- OptionsDX : historiques EOD sur SPX, SPY, QQQ notamment, avec une partie historiquement proposée gratuitement au téléchargement.
- HistoricalOptionData.com et CBOE DataShop : fichiers payants, mais échantillons gratuits pour tester sa méthode et son code.
- QuantConnect : plateforme de backtest en Python avec données d'options US intégrées côté cloud et un niveau d'accès gratuit. Attention, la couverture des options sur indices comme SPX est plus limitée que celle des ETF.
- Deribit (options crypto BTC/ETH) : API publique gratuite, avec historique de transactions. Tardis.dev propose aussi des échantillons gratuits. Intéressant pour s'entraîner sur des carnets d'options réels.
- Votre courtier : certains (Interactive Brokers notamment) donnent accès par API à l'historique des options encore cotées, mais rarement à celui des options expirées.
Méthode 4 : les indices de stratégie du CBOE comme point de comparaison
Piste souvent oubliée : le CBOE publie gratuitement l'historique de plusieurs indices qui répliquent des stratégies d'options sur le S&P 500 : BXM (covered call), PUT (vente de puts couverte par du cash), BFLY (butterfly), CNDR (iron condor), CLL (collar)…
Deux usages concrets : vérifier qu'un backtest maison donne des résultats cohérents avec l'indice équivalent (si votre vente de puts écrase largement l'indice PUT, c'est probablement que votre code a un bug), et étudier le comportement d'une stratégie sur plus de 30 ans, crises comprises, sans une seule ligne de pricing.
Quelle IA et quel environnement ?
- Claude, ChatGPT : dans l'interface web, ils peuvent exécuter du Python et analyser un CSV que vous chargez. Idéal pour démarrer. Attention, certains environnements n'ont pas accès à Internet : il faut alors télécharger les données vous-même et les leur fournir.
- Claude Code, ou tout assistant de code en local : pour un projet plus sérieux, avec vos fichiers, votre base de données et des backtests longs.
- Librairies utiles à citer dans vos demandes : yfinance, pandas, scipy, py_vollib (grecques et volatilité implicite), QuantLib (pricing plus avancé), optopsy.
- Faire confiance au résultat sans relire le code. Une IA peut introduire un biais d'anticipation (utiliser le cours de clôture pour décider d'une entrée faite à l'ouverture, par exemple). Demandez-lui explicitement de vérifier l'absence de look-ahead bias.
- Oublier les frais, le slippage et la fourchette. Sur des stratégies de vente de primes, ils mangent une bonne partie de l'espérance.
- Regarder uniquement le taux de gain. Une vente de puts affiche souvent 85 à 90 % de trades gagnants et peut perdre en un mois plusieurs années de primes (2008, 2020). Regardez la pire perte, le drawdown et le rapport gain moyen / perte moyenne.
- Sur-optimiser. Tester 200 combinaisons de delta et d'échéance puis garder la meilleure, c'est du curve-fitting. Gardez une période de test « hors échantillon ».
- Demander à une IA sans exécution de code de « donner les résultats » : elle risque d'inventer des chiffres plausibles. Exigez que le code soit exécuté, ou exécutez-le vous-même.
Pour dégrossir une idée : méthode 1 en une heure avec une IA. Pour une base propre à moyen terme : méthode 2. Pour valider sérieusement : méthode 3, en commençant par les échantillons gratuits. Et dans tous les cas, comparez-vous aux indices CBOE de la méthode 4.
Si certains d'entre vous ont déjà testé ces approches, ou connaissent d'autres sources de données gratuites, notamment sur les options européennes (DAX, Euro Stoxx 50), partagez-les dans ce fil, ça intéressera tout le monde.