Strasmore Research
Apprendre Matt ConnorPar Matt Connor · Mis à jour le 2026-07-22 · data as of July 22, 2026 · refreshed weekly

Quelle taille pour le flux de cotations OPRA ?

Quelle est la taille du flux de cotations d'options ? Nous comptons une journée entière de mises à jour NBBO à l'échelle OPRA face au flux d'actions.

Le flux de cotations d'options est le plus important flux de données de marché aux États-Unis : chaque contrat d'option coté porte son propre meilleur cours acheteur et meilleur cours vendeur, et OPRA — l'Options Price Reporting Authority, le flux consolidé des options cotées américaines — publie chaque mise à jour de chacun d'eux. Le 2026-07-17, une seule séance ordinaire, notre entrepôt a enregistré 10.64 milliards de mises à jour de cotations d'options — soit 18.8 fois la taille de l'ensemble du flux de cotations d'actions du même jour. Cette page mesure directement ce déluge de données, avec la requête exacte derrière chaque chiffre.

Pourquoi le flux de cotations d'options est-il si volumineux ?

Une action possède un seul meilleur couple acheteur-vendeur national — un seul écart acheteur-vendeur à tenir à jour. Une chaîne d'options multiplie cela : chaque contrat coté — chaque combinaison de date d'échéance, de prix d'exercice et de type call ou put — cote son propre NBBO (national best bid and offer, le meilleur couple acheteur-vendeur national). Le 2026-07-17, SPY à lui seul maintenait 9455 contrats distincts en cotation, en ne comptant que ses échéances 2026.

La multiplication ne s'arrête pas au nombre de contrats. La valeur d'une option évolue avec son action sous-jacente, et lorsque le cours de l'action bouge, les teneurs de marché rafraîchissent les cotations sur toute la chaîne — chaque prix d'exercice, chaque échéance, en même temps, que quelqu'un négocie ces contrats ou non. Voilà la forme de l'arithmétique mesurée ci-dessous : des mises à jour de cotations en milliards par séance, et 863 mises à jour de cotations pour chaque transaction d'options exécutée.

Un jour du flux d'options, compté

Quel volume de données cela représente-t-il en pratique ? Le panneau ci-dessous compte chaque mise à jour de cotation d'options que notre entrepôt a stockée pour le 2026-07-17 — la séance complète la plus récente remontant à au moins cinq jours calendaires, une règle expliquée dans la section sur la rareté — et le confronte au flux complet de cotations d'actions de la même séance, le même face-à-face que le récapitulatif de marché du 7 juillet a mené sur son flux du lundi. Les deux décomptes couvrent la journée calendaire complète, bornée en temps universel (UTC), qui englobe toute la séance d'options américaine.

RequêteUne séance, deux flux : chaque mise à jour NBBO d'options face à chaque mise à jour NBBO d'actions
Le SQL exact derrière chaque chiffre
WITH (
    SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime(today() - 10)
      AND window_start < toDateTime(today() - 4)
) AS session_day,
(
    SELECT (count(), uniqExact(ticker))
    FROM global_markets.cache_stocks_quotes
    WHERE sip_timestamp >= toDateTime(session_day)
      AND sip_timestamp < toDateTime(session_day + 1)
) AS stock_tape,
(
    SELECT (count(), uniqExact(ticker))
    FROM global_markets.options_trades
    WHERE sip_timestamp >= toDateTime(session_day)
      AND sip_timestamp < toDateTime(session_day + 1)
) AS option_trades_t,
(
    SELECT toUInt32(max(sip_timestamp)) - toUInt32(min(sip_timestamp))
    FROM global_markets.cache_options_quotes
    WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
      AND sip_timestamp >= toDateTime(session_day)
      AND sip_timestamp < toDateTime(session_day + 1)
) AS spy_span_seconds
SELECT
    toString(session_day) AS session_date,
    round(count() / 1e9, 2) AS option_quote_updates_bn,
    round(stock_tape.1 / 1e6, 0) AS stock_quote_updates_m,
    stock_tape.2 AS stock_symbols_quoted,
    round(count() / stock_tape.1, 1) AS option_to_stock_ratio,
    round(option_trades_t.1 / 1e6, 1) AS option_trades_m,
    round(option_trades_t.2 / 1e3, 0) AS option_contracts_traded_k,
    round(count() / option_trades_t.1, 0) AS quote_updates_per_trade,
    round(count() / spy_span_seconds / 1e3, 0) AS avg_updates_per_second_k
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= toDateTime(session_day)
  AND sip_timestamp < toDateTime(session_day + 1)

L'ensemble du flux d'options a totalisé 10.64 milliards de mises à jour NBBO. Seuls 383 milliers de contrats distincts ont effectivement été NÉGOCIÉS ce jour-là — le flux de cotations revalorise une part de la chaîne bien plus grande que celle qui change réellement de mains. Le flux de cotations d'actions du même jour — chaque mise à jour de cotation consolidée pour chaque action et ETF cotés, avant-bourse et après-bourse compris — a mesuré 565 millions de mises à jour sur 12994 symboles. Le ratio est le titre : le flux de cotations d'options a atteint 18.8 fois la taille du flux de cotations d'actions.

Deux autres lectures issues du même balayage donnent au flux sa texture. En moyenne sur la plage de cotation de la séance (mesurée sur la chaîne SPY, la plus profonde du flux), les mises à jour arrivaient à 438 milliers par seconde. Et le marché d'options a imprimé 12.3 millions de transactions réelles ce jour-là — 863 mises à jour de cotations pour chacune d'elles. C'est la cotation, et non la négociation, qui remplit le tuyau.

La part d'une racine : la chaîne d'options SPY sur une journée

Un chiffre portant sur tout le flux est difficile à saisir, et l'ensemble du flux est aussi coûteux à balayer — découpons donc une seule tranche. Le panneau ci-dessous compte chaque mise à jour de cotation des contrats d'options SPY arrivant à échéance en 2026, sur la même séance et la même journée bornée en UTC : la chaîne d'un seul sous-jacent, extraite du déluge par une plage de symboles.

RequêteLa chaîne d'options SPY à échéance 2026 : la part d'une racine dans le déluge de cotations
Le SQL exact derrière chaque chiffre
WITH (
    SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime(today() - 10)
      AND window_start < toDateTime(today() - 4)
) AS session_day
SELECT
    toString(session_day) AS session_date,
    round(count() / 1e6, 1) AS spy_quote_updates_m,
    uniqExact(ticker) AS spy_contracts_quoted,
    round(count() / uniqExact(ticker) / 1e3, 1) AS avg_updates_per_contract_k,
    uniqExactIf(ticker, substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d')) AS same_day_expiry_contracts,
    round(100.0 * countIf(substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d')) / count(), 1) AS same_day_expiry_pct_of_updates,
    quantileExactWeightedIf(0.5)(toInt32(round(toFloat64(ask_price - bid_price) * 100)), 1, bid_price > 0 AND ask_price >= bid_price AND substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d')) AS same_day_median_width_cents,
    quantileExactWeightedIf(0.5)(toInt32(round(toFloat64(ask_price - bid_price) * 100)), 1, bid_price > 0 AND ask_price >= bid_price) AS all_spy_median_width_cents,
    round(countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) / 1e3, 0) AS dropped_invalid_quotes_k,
    formatDateTime(toTimeZone(min(sip_timestamp), 'America/New_York'), '%H:%i') AS spy_first_quote_et,
    formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%H:%i') AS spy_last_quote_et,
    toHour(toTimeZone(min(sip_timestamp), 'America/New_York')) * 60 + toMinute(toTimeZone(min(sip_timestamp), 'America/New_York')) AS spy_first_quote_et_minute,
    toHour(toTimeZone(max(sip_timestamp), 'America/New_York')) * 60 + toMinute(toTimeZone(max(sip_timestamp), 'America/New_York')) AS spy_last_quote_et_minute
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
  AND sip_timestamp >= toDateTime(session_day)
  AND sip_timestamp < toDateTime(session_day + 1)

Un seul sous-jacent a produit 459.7 millions de mises à jour de cotations d'options en une seule journée : 9455 contrats en cotation, soit une moyenne de 48.6 milliers de mises à jour par contrat. Pour donner l'échelle, l'ensemble du flux d'actions du panneau ci-dessus — chaque action et ETF cotés confondus — a mesuré 565 millions de mises à jour cette séance-là.

Les échéances du jour racontent l'histoire la plus tranchée. Les options 0DTE — les contrats qui se négocient le jour même de leur échéance — dominent la négociation d'options, et le tableau décodé plus bas montre que chacun des cinq contrats SPY les plus actifs de la séance expire ce même jour. Dans le flux de cotations, ils ne sont qu'une infime part : les 498 contrats à échéance du jour représentaient 4.5 % des mises à jour de cotations de SPY. Les teneurs de marché maintiennent toute la chaîne valorisée — les prix d'exercice de décembre se mettent à jour toute la séance, que quelqu'un les négocie ou non.

L'écart est l'autre mesure à prendre ici. Parmi ces contrats SPY à échéance du jour, l'écart coté médian — cours vendeur moins cours acheteur, calculé sur chaque mise à jour NBBO valide — s'établissait à 3 ¢ ; sur l'ensemble de la chaîne à échéance 2026, ce même médian s'établissait à 4 ¢. (272 milliers de mises à jour unilatérales ou croisées ont été exclues des médians d'écart et comptabilisées dans le panneau.)

Comment lire un symbole d'option (symbologie OCC)

Chaque contrat de ces panneaux est identifié par un symbole d'option OCC — le format standard administré par l'Options Clearing Corporation. Notre entrepôt le préfixe par O:. Prenons O:SPY261218C00700000 comme exemple détaillé :

  • RacineSPY : la racine de l'option, jusqu'à six caractères, généralement le symbole du sous-jacent lui-même.
  • Échéance261218 : la date d'échéance au format AAMMJJ — le 18 décembre 2026.
  • TypeC pour un call, P pour un put.
  • Prix d'exercice00700000 : le prix d'exercice multiplié par 1 000 et complété par des zéros sur huit chiffres — 700,00 $.

C'est ce format fixe qui permet d'extraire la chaîne d'une racine avec une simple plage de symboles : chaque contrat SPY arrivant à échéance en 2026 se trie entre O:SPY26 et O:SPY27, le filtre exact du panneau ci-dessus. Voici les cinq contrats SPY les plus actifs de la séance, avec le symbole décodé :

RequêteLes cinq contrats d'options SPY les plus actifs de la séance, symbole décodé
Le SQL exact derrière chaque chiffre
WITH (
    SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime(today() - 10)
      AND window_start < toDateTime(today() - 4)
) AS session_day
SELECT ticker AS occ_ticker,
       any(underlying_symbol) AS root,
       concat('20', substring(ticker, 6, 2), '-', substring(ticker, 8, 2), '-', substring(ticker, 10, 2)) AS expiry_parsed,
       if(any(option_type) = 'C', 'call', 'put') AS call_or_put,
       any(toFloat64(strike_price)) AS strike_usd,
       round(sum(size) / 1e3, 1) AS contracts_traded_k,
       if(substring(ticker, 6, 6) = formatDateTime(session_day, '%y%m%d'), 1, 0) AS expires_same_day
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime(session_day)
  AND sip_timestamp < toDateTime(session_day + 1)
  AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
GROUP BY ticker
ORDER BY contracts_traded_k DESC, ticker
LIMIT 5

Le sommet du tableau des volumes n'est que trafic du jour même : les cinq contrats ont tous expiré le 2026-07-17, la date de la séance elle-même, et le plus actif d'entre eux — O:SPY260717P00744000, un contrat au prix d'exercice de 744 $ de type put — a négocié 677.2 milliers de contrats. Mettez cela en regard du panneau de cotations qui le précède : la négociation se concentre à l'avant de la chaîne, la cotation s'étale sur toute son étendue.

Pourquoi les données de cotations d'options sont rares

Stocker ce flux, c'est ajouter une journée comme celle mesurée ci-dessus — à chaque séance, indéfiniment. Voilà l'économie en une ligne. La plupart des produits de données de marché, grand public comme professionnels, proposent les cours des actions et parfois les transactions d'options ; l'historique complet des cotations d'options est rare sur toutes les étagères, à tout prix. Notre propre entrepôt conserve l'historique des cotations d'actions depuis 2003 et l'historique des transactions d'options depuis 2014, tandis que la table des cotations d'options commence en 2022 — l'historique tick le plus récent que nous conservons, et de loin la plus grande table que nous exploitons.

Une précision mérite d'être affichée clairement : les cotations d'options sont aussi le jeu de données le plus lent à nous parvenir. Les nouvelles séances arrivent généralement un ou deux jours après le calendrier — parfois davantage — tandis que les cotations d'actions se stabilisent d'ordinaire en une journée. Chaque panneau de cette page s'ancre sur la séance complète la plus récente remontant à au moins cinq jours calendaires (2026-07-17 dans l'exécution actuelle), et le rafraîchissement hebdomadaire relance chaque requête sur cette même règle, gardant chaque chiffre mesuré sur une journée entièrement ingérée plutôt que sur un front à moitié chargé.

FAQ

Quelle est la taille du flux d'options OPRA par jour ?

Mesuré dans notre entrepôt : 10.64 milliards de mises à jour de cotations d'options le 2026-07-17 — soit une moyenne de 438 milliers de mises à jour par seconde sur la plage de cotation de la séance. Le flux OPRA brut transporte des messages de transactions et administratifs en plus des cotations, et ses décomptes officiels de messages sont encore plus élevés.

Le flux de cotations d'options est-il plus volumineux que le flux de cotations d'actions ?

Oui — par multiples, pas par pourcentages. Sur la séance mesurée ci-dessus, les mises à jour de cotations d'options ont atteint 18.8 fois le nombre de mises à jour de cotations d'actions : 10.64 milliards contre 565 millions. Chaque action tient un seul NBBO à jour ; sa chaîne d'options en tient des centaines, voire des milliers.

Pourquoi les données de marché d'options sont-elles si chères ?

L'échelle est la partie visible : un flux mesuré en milliards de mises à jour par séance exige une véritable infrastructure pour le recevoir, le stocker et l'interroger, et la facture se répète à chaque jour de bourse. Les frais de licence des places de marché s'ajoutent à l'ingénierie. Les panneaux ci-dessus montrent exactement ce qu'un jeu de données complet de cotations d'options doit supporter.

Combien de contrats d'options cotent lors d'une journée normale ?

Bien plus qu'il n'en négocie, et de loin. Le 2026-07-17, 383 milliers de contrats distincts ont imprimé au moins une transaction, tandis que la seule chaîne SPY à échéance 2026 maintenait 9455 contrats en cotation — et l'univers coté complet couvre chaque racine comme la chaîne SPY couvre ses prix d'exercice. (Compter chaque contrat distinct dans le flux de cotations d'une journée est en soi un balayage si vaste que nous le tenons à l'écart d'une page rafraîchie chaque semaine — le seul chiffre ici que nous choisissons délibérément de ne pas publier.)

Les options cotent-elles après-bourse ?

Les options américaines cotées sur actions respectent les horaires de bourse. Dans la séance mesurée ci-dessus, la première cotation d'option de SPY est arrivée à 09:30 ET et la dernière à 16:15 ET — aucune séance de nuit. Le flux d'actions, par comparaison, cote pendant l'avant-bourse et l'après-bourse.


Chaque panneau ci-dessus est livré avec le SQL exact qui l'a produit — développez-en un, remplacez la racine ou le jour, et mesurez la tranche du flux que vous négociez réellement sur le terminal Strasmore.