Comprendre le put-call ratio et son analyse
Calculez le ratio puts/calls sur le marché américain. Analysez les données par échéance, indices ou actions sur dix ans pour vos stratégies.
Le put-call ratio correspond au volume quotidien des puts divisé par le volume des calls : il indique le nombre de contrats vendus par position baissière pour chaque contrat acheté par position haussière. Une valeur supérieure à 1,0 signifie que le volume des puts est supérieur à celui des calls ; une valeur nettement inférieure à 1,0 indique une dominance des calls. La plupart des analyses se limitent à la définition et à une règle empirique. Cette page calcule la donnée réelle — pour chaque contrat d'option américain listé — quotidiennement. Les résultats sont ensuite segmentés selon les standards professionnels : indices versus actions, par échéance, et par comparaison avec les dix dernières années.
Comment est calculé le put-call ratio ?
Additionnez le volume de contrats sur les puts et le volume de contrats sur les calls pour une séance, puis divisez le premier par le second. Un put prend de la valeur quand le sous-jacent baisse ; un call prend de la valeur quand il monte. Le ratio permet donc d'évaluer l'exposition au risque de baisse par rapport à l'exposition à la hausse.
Le calcul est volontairement simple. Si un titre échange 40 000 contrats put et 60 000 contrats call sur une séance : 40 000 ÷ 60 000 = 0,67, soit deux puts pour trois calls. Si le volume des calls reste à 60 000 mais que celui des puts passe à 90 000, le ratio devient 1,5. La formule est aussi simple que cela ; la difficulté réside dans l'interprétation et non dans la division.
Le terme « volume » cache deux nuances :
- Le volume, et non l'open interest. Le ratio standard compte les contrats échangés durant la journée. Une variante utilise l open interest — le nombre de contrats en cours — qui évolue beaucoup plus lentement. Vérifiez toujours quel indicateur est affiché sur un graphique.
- Chaque transaction comporte deux contreparties. L'achat d'un put pour ouvrir une position, la vente d'un put pour clôturer une couverture ou l'écriture d'un put pour générer un revenu comptent tous de la même manière dans le volume. Le ratio mesure l'activité, pas l'intention.
Quel est l'état du put-call ratio global du marché ?
Calculé quotidiennement pour chaque action américaine, ETF et option sur indice cotée, du 1er juin jusqu'à la dernière séance complète de notre série :
Le SQL exact derrière chaque chiffre
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
concat(monthName(day), ' ', toString(toDayOfMonth(day))) AS day_label,
round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
/ sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 3) AS put_call_ratio,
round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-11 04:00:00'
GROUP BY day
ORDER BY dayLa série a débuté la période à 0.589 le June 1, s'est terminée à 0.686 le July 10, et n'a jamais franchi le seuil de 1,0 entre-temps — les calls ont été plus échangés que les puts sur l'ensemble des 28 sessions. C'est la première leçon pratique : 1,0 n'est pas le point neutre que suppose un débutant. L'information réside dans le mouvement du ratio à l'intérieur de sa propre plage de variation. Voici cette plage pour le mois de juin complet :
Le SQL exact derrière chaque chiffre
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
/ sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS ratio
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
GROUP BY day
)
SELECT round(quantileDeterministic(0.5)(ratio, cityHash64(toString(day))), 3) AS june_median,
round(max(ratio), 3) AS june_high,
concat(monthName(argMax(day, ratio)), ' ', toString(toDayOfMonth(argMax(day, ratio)))) AS june_high_day,
round(min(ratio), 3) AS june_low,
concat(monthName(argMin(day, ratio)), ' ', toString(toDayOfMonth(argMin(day, ratio)))) AS june_low_day
FROM dailyLa médiane de juin s'est établie à 0.793, dans une bande allant de 0.589 (le June 1) jusqu'à 0.923 (le June 25). Voici maintenant la séance marquante du mois — le selloff du 5 juin, documenté dans le récapitulatif de juin 2026. Les options ont enregistré 103.1 millions de contrats, soit la séance la plus active de la période, et le ratio est passé de 0.679 à 0.866 par rapport à la veille. Le selloff et la séance de volume record dominée par les puts étaient une seule et même séance : le ratio a enregistré la hausse du positionnement vendeur au moment même où elle se produisait.
Deux notes pratiques. Le niveau dérive selon la composition des produits échangés durant la semaine ; ainsi, de légères variations quotidiennes à l'intérieur de la bande n'ont que peu de sens isolément. De plus, le volume total est un contexte essentiel — un même ratio sur un doublement du nombre de contrats est un signal bien plus fort, c'est pourquoi le tableau affiche le nombre de contrats aux côtés du ratio.
CBOE, ISEE et les autres benchmarks put-call
Si votre courtier ou un graphique d'actualité financière cite « le » ratio put-call, il s'agit presque certainement de l'une des quelques séries publiées — et elles mesurent des populations différentes :
- $CPC — le ratio put/call total du CBOE : toutes les options négociées sur les bourses du CBOE, les puts divisés par les calls.
- $CPCE — le ratio uniquement sur actions : options sur des actions individuelles. Les options sur ETF avec règlement physique comme le SPY sont classées dans la catégorie actions, bien que les traders les utilisent comme des produits indiciels.
- $CPCI — le ratio uniquement sur indices : options sur indices avec règlement en espèces (SPX, NDX, RUT, VIX et autres).
- ISEE — l'indice de sentiment ISE, calculé à l'inverse : les calls divisés par les puts, multipliés par 100, basés uniquement sur les achats longs des clients à l'ouverture. Un ISEE élevé indique une dominance de calls ; un $CPC élevé indique une dominance de puts. Si vous confondez les deux, l'interprétation est inversée.
La propre segmentation actions/indices du CBOE place les options sur ETF comme le SPY dans la catégorie actions. Le tableau ci-dessous définit la limite différemment, en isolant les ETF de marché large des actions individuelles : les deux ne se ressemblent pas. Pour chaque contrat d'échéance juin 2026, réparti en trois populations :
Le SQL exact derrière chaque chiffre
WITH substring(ticker, 3, length(ticker) - 17) AS root
SELECT multiIf(root IN ('SPX', 'SPXW', 'XSP', 'NDX', 'NDXP', 'RUT', 'RUTW', 'VIX', 'VIXW', 'DJX', 'OEX', 'XEO'), 'Index options (SPX, VIX, NDX)',
root IN ('SPY', 'QQQ', 'IWM', 'DIA'), 'Broad-market ETFs (SPY, QQQ, IWM, DIA)',
'Single stocks and other ETFs') AS population,
round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
/ sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 3) AS put_call_ratio,
round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100 * sum(toFloat64(volume)) / sum(sum(toFloat64(volume))) OVER (), 1) AS pct_of_volume
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
GROUP BY population
ORDER BY put_call_ratio DESCLes deux populations liées aux indices affichent une dominance de puts — les ETF de marché large à 1.175 et les options sur indices avec règlement en espèces à 1.096, chacun au-dessus de 1,0 — tandis que les actions individuelles et le reste affichent 0.588, soit à peine plus d'un put pour deux calls. Le mécanisme est structurel : les produits indiciels sont les véhicules standards pour la couverture de portefeuille, et la couverture s'effectue avec des puts ; les actions individuelles attirent les achats de calls spéculatifs. La part du volume est également importante — les actions individuelles et les autres ETF représentaient 59.9% des contrats de juin ; un ratio « total » est donc principalement un ratio actions déguisé en ratio indice.
Le ratio dépend de l'actif analysé
Affinez l'analyse d'un niveau supplémentaire. La même mesure, pour juin 2026, appliquée aux cinq valeurs les plus actives :
Le SQL exact derrière chaque chiffre
SELECT multiIf(ticker LIKE 'O:SPY2%', 'SPY',
ticker LIKE 'O:QQQ2%', 'QQQ',
ticker LIKE 'O:NVDA2%', 'NVDA',
ticker LIKE 'O:TSLA2%', 'TSLA',
'AAPL') AS underlying,
round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
/ sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 2) AS put_call_ratio,
round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
AND (ticker LIKE 'O:SPY2%' OR ticker LIKE 'O:QQQ2%' OR ticker LIKE 'O:NVDA2%'
OR ticker LIKE 'O:TSLA2%' OR ticker LIKE 'O:AAPL2%')
GROUP BY underlying
ORDER BY put_call_ratio DESCSPY présente le ratio le plus élevé en termes de puts parmi les cinq avec 1.16 ; NVDA s'établit à seulement 0.56. Comparer le ratio d'un ticker avec celui d'un autre n'a que peu de sens — la comparaison pertinente consiste à comparer un ticker par rapport à son propre historique.
Le put-call ratio varie-t-il selon l'échéance ?
Le volume quotidien n'est pas un ensemble homogène : certains contrats expirent dans quelques heures, d'autres dans plusieurs années. En classant le volume de juin par jours jusqu'à l'échéance (DTE) — voir la signification du DTE — on distingue les couvertures des tickets de loterie :
Le SQL exact derrière chaque chiffre
WITH toDate(toTimeZone(window_start, 'America/New_York')) AS trade_day,
toDate(concat('20', substring(ticker, length(ticker) - 14, 2), '-',
substring(ticker, length(ticker) - 12, 2), '-',
substring(ticker, length(ticker) - 10, 2))) AS expiry,
dateDiff('day', trade_day, expiry) AS dte
SELECT multiIf(dte <= 0, '0DTE (expires today)', dte <= 7, '1-7 days', dte <= 30, '8-30 days',
dte <= 90, '31-90 days', '91+ days') AS expiry_bucket,
round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
/ sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 3) AS put_call_ratio,
round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
round(100 * sum(toFloat64(volume)) / sum(sum(toFloat64(volume))) OVER (), 1) AS pct_of_volume
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
GROUP BY expiry_bucket
ORDER BY min(dte)Le ratio diminue à chaque étape du calendrier. Les contrats expirant le jour même — options 0DTE — ont affiché 0.957, la catégorie la plus exposée aux puts parmi les cinq, et représentait à elle seule 34.3% du volume total de juin. À un ou sept jours de l'échéance, le ratio chute à 0.756 ; entre 8 et 30 jours, il est de 0.717 ; entre 31 et 90 jours, il est de 0.634 ; et dans la catégorie des plus de 91 jours, correspondant aux LEAPS en fin de courbe, il atteint son point le plus bas à 0.564 — la zone la plus exposée aux calls du marché.
Ce tableau remet en question l'interprétation habituelle. Un ratio global est une moyenne de plusieurs échéances dont la composition varie chaque semaine : une expiration le vendredi importante déplace le poids vers le court terme et modifie le chiffre principal, sans que cela ne reflète un changement réel de l'appétit pour le risque. Il faut comparer des éléments comparables.
Quel est le caractère extrême d'une lecture, historiquement ?
Une période de six semaines est insuffisante pour déterminer si une lecture est rare. Pour cela, il faut des années. Voici donc la famille d'options la plus ancienne et la plus échangée du marché, le SPY, avec la médiane, le minimum et le maximum de son put-call ratio quotidien pour chaque année complète de notre base de données :
Le SQL exact derrière chaque chiffre
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
/ sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS ratio
FROM global_markets.options_minute_aggs
WHERE ticker LIKE 'O:SPY%'
GROUP BY day
HAVING sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') > 0
)
SELECT toYear(day) AS year,
count() AS sessions,
round(quantileDeterministic(0.5)(ratio, cityHash64(toString(day))), 3) AS median_ratio,
round(min(ratio), 3) AS low,
round(max(ratio), 3) AS high
FROM daily
WHERE toYear(day) >= 2015
GROUP BY year
ORDER BY yearTrois conclusions s'en dégagent. Premièrement, la médiane quotidienne du ratio du SPY a terminé au-dessus de 1,0 chaque année du tableau : la prédominance des puts dans la couverture d'indice n'est pas une tendance pour 2026, c'est l'état structurel du produit. Deuxièmement, le niveau a baissé au cours de la décennie : la médiane était de 1.754 en 2015 et 1.168 en 2025, parallèlement à la croissance du trading de calls à court terme. Troisièmement, les amplitudes annuelles sont larges — 2026 s'étend de 0.848 à 1.751 sur 130 sessions. C'est la réponse objective à la question « la lecture d'aujourd'hui est-elle extrême ? » : comparez-la à la distribution propre du produit, et jamais à la valeur 1,0.
Comment analyser le put-call ratio d'une action
Les panneaux ci-dessus sont des modèles et non des rapports fixes. Pour calculer le ratio d'un titre que vous détenez :
- Choisissez la population. Utilisez les options d'un seul ticker et non "le marché" — la mixité des données rend les chiffres agrégés illisibles.
- Additionnez le volume de puts et de calls de la journée pour chaque strike et chaque expiration du ticker, puis divisez le résultat. Dans le symbole de l'option, la neuvième lettre en partant de la fin est
PouC— ce caractère unique définit toute la classification. - Établissez un historique avant d'interpréter le niveau. Un ratio de 0,9 sur une seule journée n'a aucune signification sans la médiane et la plage de variation propres au ticker — comme le fait le panneau SPY année par année.
- Analysez le volume en parallèle. Un pic sur un volume ordinaire est un bruit de marché ; le même pic sur le tape le plus actif des six dernières semaines correspond à la séance du 5 juin présentée ci-dessus.
- Définissez votre périmètre d'expiration. Toutes les expirations, ou seulement les échéances courtes ? Les deux approches sont valables ; les mélanger sur plusieurs jours ne l'est pas.
L'interprétation des traders — et ses limites réelles
Ces interprétations ne sont pas des lois : une hausse du ratio est lue comme une augmentation de la demande de hedging, tandis qu'un pic extrême est interprété par les contrariens comme une capitulation — la foule a fini par acheter son assurance. La séance du 5 juin illustre clairement ce mécanisme : le ratio a bondi pendant la vente, et non avant. Sur cette période, il a agi comme un thermomètre coïncident, et non comme un indicateur prédictif. Testez chaque règle empirique par rapport à la série réelle — et n'oubliez pas que le volume des 0DTE modifie constamment la notion de "normalité".
FAQ
Quel est un put-call ratio normal ?
Cela dépend entièrement de la population étudiée. Pour l'ensemble des options cotées aux États-Unis en juin 2026, la médiane quotidienne du marché était de 0.793, avec une plage allant de 0.589 à 0.923 — sans jamais dépasser 1,0. Les options sur ETF de marché large affichaient 1.175 sur la même période, tandis que les actions individuelles et autres ETF affichaient 0.588. Un niveau « normal » pour le SPY n'est pas normal pour une action seule.
Un put-call ratio élevé est-il bullish ou bearish ?
Les deux interprétations existent et aucune n'est une règle absolue. À première vue, un volume élevé de puts indique un positionnement à la baisse ; les contrariens interprètent les pics extrêmes comme le signe que la foule vendeuse est déjà pleinement positionnée. Dans les données de juin 2026, le pic est survenu le jour même de la vente massive — il s'agit d'une coïncidence et non d'un signal prédictif.
Le put-call ratio est-il identique au VIX ou à la volatilité implicite ?
Non, et c'est l'erreur la plus fréquente. Le put-call ratio est calculé à partir du volume — le nombre de contrats échangés. Le VIX et la volatilité implicite proviennent des prix des options : le coût de ces contrats, exprimé en volatilité annualisée. L'implied-volatility skew compare le prix des puts de protection contre la baisse au prix des calls de couverture à la hausse. Un volume élevé de puts peut s'échanger à des prix calmes, tandis qu'un faible volume peut s'échanger à des prix de panique — les deux indicateurs peuvent diverger, et tous deux peuvent être corrects.
Que signifient $CPC, $CPCE et $CPCI ?
Ce sont les put-call ratios publiés par le CBOE : $CPC pour le volume total, $CPCE pour les options sur actions (le SPY et les autres ETF sont inclus dans cette catégorie) et $CPCI pour les options sur indices à règlement en espèces. Cette distinction est importante. Notre propre version tripartite, qui sépare les ETF de marché large des options sur indices et des actions individuelles (contrairement à la classification binaire du CBOE), mesurait en juin 2026 1.175 pour les ETF de marché large et 1.096 pour les options sur indices, tous deux au-dessus de 1,0, contre 0.588 pour les actions individuelles et autres ETF. L'ISEE de l'ISE est un indice distinct et inversé : il mesure les calls par rapport aux puts, uniquement sur les achats clients à l'ouverture.
Le put-call ratio utilise-t-il le volume ou l'open interest ?
Le ratio standard utilise le volume échangé durant la journée. Il existe une variante basée sur l'open interest qui évolue beaucoup plus lentement ; les deux peuvent indiquer des directions opposées au cours d'une même journée — volume vs open interest explique cette distinction.
Chaque valeur présentée ici est le résultat d'une requête sur l'intégralité du flux des options — vous pouvez consulter le code SQL de chaque panneau, ou calculer le ratio pour votre propre watchlist sur le terminal Strasmore.