Lire un symbole d'option au format OSI
Comment lire un symbole d'option OSI : racine, échéance, signe call ou put et prix d'exercice sur huit chiffres, racines ajustées, suffixe SPXW et pourquoi 00007500 vaut 7,50 dollars.
Un symbole d'option est une chaîne unique qui porte quatre éléments : la racine du sous-jacent, la date d'échéance, le signe call ou put, et le prix d'exercice. Cette mise en forme est appelée OSI, d'après l'Options Symbology Initiative adoptée par l'industrie américaine des options en 2010, et chaque ordre de bourse et chaque flux de données en repose. Une seule fois ces quatre champs assimilés, vous décodez à vue n'importe quel symbole d'option cotée aux États-Unis.
Quels sont les quatre champs d'un symbole d'option ?
Un symbole OSI canonique compte 21 caractères, dans un ordre fixe :
- La racine, six caractères, alignée à gauche et remplie à droite par des espaces lorsque la racine du sous-jacent est plus courte que six.
- L'échéance, six chiffres, dans l'ordre JJMMSS. 260116 correspond au 16 janvier 2026.
- Le signe, un caractère : C pour un call, P pour un put.
- Le prix d'exercice, huit chiffres, exprimé en millièmes de dollar, sans séparateur décimal.
La plupart des courtiers et des sites web retirent les espaces de remplissage et affichent la forme compacte, et certains flux préfixent la chaîne d'un marqueur tel que O:. Aucune des deux choses ne modifie l'analyse. Les 15 derniers caractères sont toujours la date, le signe et le prix d'exercice : la racine est donc tout ce qui les précède. Le panneau ci-dessous découpe de vrais contrats selon cette règle et place les champs analysés à côté de l'échéance portée par la fiche du contrat lui-même.
| contrat | root | champ d'échéance | code du droit | champ du strike | strike en dollars | échéance cotée |
|---|---|---|---|---|---|---|
| SPY260116C00500000 | SPY | 260116 | C | 00500000 | 500 | Jan 16, 2026 |
| SPY260116P00500000 | SPY | 260116 | P | 00500000 | 500 | Jan 16, 2026 |
| SPY260116C00600000 | SPY | 260116 | C | 00600000 | 600 | Jan 16, 2026 |
| SPY260116P00600000 | SPY | 260116 | P | 00600000 | 600 | Jan 16, 2026 |
| SPY260116C00650000 | SPY | 260116 | C | 00650000 | 650 | Jan 16, 2026 |
| SPY260116P00650000 | SPY | 260116 | P | 00650000 | 650 | Jan 16, 2026 |
| SPY260116C00700000 | SPY | 260116 | C | 00700000 | 700 | Jan 16, 2026 |
| SPY260116P00700000 | SPY | 260116 | P | 00700000 | 700 | Jan 16, 2026 |
Le SQL exact derrière chaque chiffre
SELECT
contract,
substring(contract, 1, length(contract) - 15) AS root,
substring(contract, length(contract) - 14, 6) AS expiry_field,
substring(contract, length(contract) - 8, 1) AS right_code,
substring(contract, length(contract) - 7, 8) AS strike_field,
toFloat64(substring(contract, length(contract) - 7, 8)) / 1000 AS strike_dollars,
listed_expiration
FROM
(
SELECT
replaceRegexpOne(ticker, '^O:', '') AS contract,
formatDateTime(any(expiration_date), '%b %e, %Y') AS listed_expiration
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND expiration_date = '2026-01-16'
AND toFloat64(strike_price) IN (500, 600, 650, 700)
AND date >= '2025-12-01'
AND date < '2026-01-01'
GROUP BY contract
)
ORDER BY strike_dollars ASC, right_code ASCLa première ligne se décompose en une racine SPY, un champ date 260116, un signe C et un champ prix d'exercice 00500000, qui donne un prix d'exercice de $500 après division. Le relevé d'échéance propre au contrat indique Jan 16, 2026, ce qui correspond aux six chiffres à l'intérieur de la chaîne. Le panneau contient 8 contrats : les mêmes prix d'exercice listés en calls et en puts. Un seul caractère sépare un call de son put correspondant ; c'est précisément pourquoi il faut le vérifier deux fois sur un ordre de bourse. Si ces champs vous semblent familiers depuis l'écran de votre courtier, lire une chaîne d'options détaille les colonnes qui les entourent.
Lire un symbole d'option en ligne de commande
L'analyse ne nécessite ni bibliothèque ni accès réseau. Les champs ont une largeur fixe mesurée depuis la droite ; sous bash, une expansion de sous-chaîne suffit. Collez ce qui suit dans un terminal :
SYM=SPY260116C00650000
echo "root ${SYM:0:$(( ${#SYM} - 15 ))}"
echo "expiry ${SYM: -15:6}"
echo "right ${SYM: -9:1}"
echo "strike ${SYM: -8}"
L'espace devant chaque offset négatif est obligatoire. Sans lui, bash lit :- comme une expansion de valeur par défaut et affiche autre chose.
Pour une liste de symboles, awk effectue les mêmes calculs avec des positions à base 1 :
awk '{
n = length($0)
root = substr($0, 1, n - 15)
expiry = substr($0, n - 14, 6)
right = substr($0, n - 8, 1)
strike = substr($0, n - 7, 8)
printf "%-6s 20%s-%s-%s %-4s $%.3f\n",
root,
substr(expiry, 1, 2), substr(expiry, 3, 2), substr(expiry, 5, 2),
(right == "C" ? "call" : "put"),
strike / 1000
}' <<'EOF'
SPY260116C00650000
SPY260116P00650000
SPXW260116C05500000
XYZ1260116C00007500
EOF
Une version en python3 gère la forme canonique de 21 caractères avec ses espaces, ainsi que le préfixe du flux, dans la même fonction, sans rien utiliser au-delà de la bibliothèque standard :
from datetime import datetime
def parse_osi(symbol):
s = symbol.strip()
if s.startswith("O:"):
s = s[2:]
s = s.replace(" ", "")
return {
"root": s[:-15],
"expiry": datetime.strptime(s[-15:-9], "%y%m%d").date(),
"right": "call" if s[-9] == "C" else "put",
"strike": int(s[-8:]) / 1000,
}
samples = [
"SPY 260116C00650000",
"O:SPY260116P00650000",
"SPXW 260116C05500000",
"XYZ1 260116C00007500",
]
for sym in samples:
f = parse_osi(sym)
print("{:<6} {} {:<4} ${:,.3f}".format(f["root"], f["expiry"], f["right"], f["strike"]))
Ces deux extraits s'exécutent sur une image Ubuntu standard, avec rien d'installé au-delà de awk et python3, et n'ouvrent aucun accès réseau : la sortie est identique aujourd'hui comme dans cinq ans.
Pourquoi un prix d'exercice de 00007500 signifie-t-il 7,50 $ ?
Le champ prix d'exercice est composé de huit chiffres sans séparateur décimal, et son unité est le millième de dollar. Divisez par 1 000 pour obtenir des dollars. 00007500 vaut 7 500 millièmes, soit 7,50 $. 07500000 vaut 7 500 000 millièmes, soit 7 500 $. Les deux ne diffèrent que par trois zéros noyés au milieu d'une série de zéros, et c'est l'erreur de lecture la plus fréquente de tout le format. La largeur fixe garantit que tous les symboles ont la même longueur, et l'unité en millièmes laisse la place à des prix d'exercice qui atterrissent sur des fractions de cent après une opération sur le capital.
Un seul champ doit couvrir tous les prix d'exercice cotés, depuis une action à bas cours jusqu'à un indice à quatre chiffres. Le panneau ci-dessous lit le prix d'exercice le plus bas et le plus haut de plusieurs sous-jacents et imprime les huit chiffres tels qu'ils apparaissent à l'intérieur du symbole.
| sous-jacent | strike le plus bas | champ du strike le plus bas | strike le plus élevé | champ du strike le plus élevé | nombre de strikes |
|---|---|---|---|---|---|
| KO | 32.5 | 00032500 | 135 | 00135000 | 55 |
| NVDA | 0.5 | 00000500 | 460 | 00460000 | 218 |
| AAPL | 5 | 00005000 | 670 | 00670000 | 126 |
| SPY | 50 | 00050000 | 1480 | 01480000 | 471 |
Le SQL exact derrière chaque chiffre
SELECT
underlying,
round(toFloat64(min(strike)), 2) AS lowest_strike,
argMin(strike_field, strike) AS lowest_strike_field,
round(toFloat64(max(strike)), 2) AS highest_strike,
argMax(strike_field, strike) AS highest_strike_field,
uniqExact(strike) AS strike_count
FROM
(
SELECT
underlying_symbol AS underlying,
strike_price AS strike,
substring(replaceRegexpOne(ticker, '^O:', ''),
length(replaceRegexpOne(ticker, '^O:', '')) - 7, 8) AS strike_field
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('KO', 'NVDA', 'AAPL', 'SPY', 'SPX')
AND date >= today() - 7
)
GROUP BY underlying
ORDER BY highest_strike ASCSur les séances examinées, KO liste des prix d'exercice de $32.5 à $135, écrits 00032500 et 00135000 dans le symbole. À l'autre bout du panneau, SPY atteint $1480, soit 01480000, répartis sur 471 prix d'exercice distincts. Les mêmes huit chiffres, le même diviseur, quel que soit le niveau de prix.
Options ajustées : ce que signifie un chiffre en fin de racine
Une option standard sur action livre 100 titres. Les opérations sur le capital peuvent modifier ce chiffre : un split dont le ratio n'est pas entier, une fusion payée partiellement en espèces, un spin-off, ou un dividende exceptionnel au-dessus du seuil. L'OCC ajuste les contrats ouverts et leur attribue une nouvelle racine, l'ancienne racine suivie d'un chiffre. Une racine ABC devient ABC1 après la première adjustment, et ABC2 après la seconde. La mise en forme ne change pas, votre analyseur continue donc de fonctionner. La livrabilité sous-jacente au contrat, elle, change, et le symbole n'en dit rien.
Un chiffre en fin de racine sert aussi à repérer les contrats mini, marqués par un 7, qui portent 10 titres au lieu de 100. Dans les deux cas, ce nombre est un indicateur : les conditions du contrat doivent être lues avant qu'un prix d'exercice ne puisse être comparé à quoi que ce soit. Notre note sur l'impact des splits d'actions sur les options détaille le calcul du ratio, sur le prix d'exercice comme sur la livrabilité.
Les séries ajustées sont rarement prolongées par de nouvelles échéances. Une racine comme ABC1 se raréfie à mesure que ses dates cotées épuisent leur calendrier, plutôt que de se reconstituer avec de nouvelles dates, et elle peut disparaître complètement d'une chaîne une fois la dernière d'entre elles expirée. Les conditions résident dans le mémorandum d'ajustement de l'OCC pour ce contrat, et non dans la chaîne : ce mémorandum désigne la livrabilité révisée, la composante espèces le cas échéant, et le multiplicateur qui l'accompagne. Tant que ce mémorandum n'a pas été lu, un prix d'exercice ajusté et un prix d'exercice standard sur le même sous-jacent sont deux choses différentes portant les mêmes huit chiffres.
SPX, SPXW, et ce que marque le W
Les options d'indice portent leurs propres racines, et l'univers du S&P 500 est celui que la plupart des gens rencontrent en premier. SPX et SPXW réfèrent au même indice et partagent la même mise en forme de 21 caractères. Le W ne dit plus rien sur une cotation hebdomadaire, quoi que le nom suggère. SPX est la racine réglée AM : le contrat du troisième vendredi dont la valeur de règlement est construite à partir des premiers échanges (« prints ») des composantes de l'indice au vendredi d'échéance, le trading s'arrêtant le jeudi précédent. SPXW est la racine réglée PM, qui couvre tout le reste du calendrier, des quotidiennes du lundi au vendredi jusqu'aux contrats de fin de mois, chacun négocié jusqu'à la clôture de son propre jour d'échéance.
Le calendrier se découpe selon la même ligne. Un seul contrat mensuel, réglé AM et arrivant le troisième vendredi, porte la racine SPX. Toutes les autres dates futures de l'indice appartiennent à SPXW, et sur une chaîne complète ce sont la plupart des échéances visibles. La chaîne ne marque rien de tout cela par elle-même : la racine est un indice, et la fiche technique du contrat fait autorité. Deux racines, un indice, un écran, et des mécanismes de règlement que les options réglées AM ou PM détaille.
Ce qu'un symbole d'option ne dit jamais
Les quatre champs identifient complètement un contrat et le décrivent à peine. En particulier :
- Le multiplicateur. Une option standard sur action américaine couvre 100 titres, et aucun champ de la chaîne ne le mentionne. Les séries ajustées et les séries mini diffèrent, et les produits d'indice fixent le leur.
- Le mode de règlement. Rien dans le symbole ne distingue le règlement AM du règlement PM, ni le règlement en espèces du règlement en livraison. Sur les racines d'indice, la convention suggère le mode, et seule la fiche technique du contrat fait autorité.
- La livrabilité. Après un ajustement, l'hypothèse des 100 titres est caduque, et le symbole est identique à ce qu'il était, à l'exception du chiffre.
- Le temps restant. Le champ date donne une échéance, pas un compte à rebours. Le transformer en jours jusqu'à l'échéance est un calcul que vous effectuez vous-même sur le calendrier.
- La liquidité. Deux symboles à structure identique peuvent se distinguer de plusieurs ordres de grandeur en volume et intérêt ouvert.
FAQ
Combien de caractères compte un symbole d'option ?
Vingt et un dans la forme OSI canonique : six pour la racine, six pour la date, un pour le signe call ou put, et huit pour le prix d'exercice. Les racines de moins de six caractères sont complétées par des espaces, et la plupart des écrans suppriment ce remplissage : une racine de trois lettres s'affiche donc généralement sous la forme d'une chaîne de 18 caractères.
Que signifie le nombre après la racine d'un symbole d'option ?
Il désigne un contrat dont les conditions ne sont plus standard. Un chiffre ajouté par l'OCC identifie une série ajustée à la suite d'une opération sur le capital, et un 7 marque un contrat mini couvrant 10 titres au lieu de 100. Les champs date et prix d'exercice se lisent toujours de la même manière.
Pourquoi le prix d'exercice est-il composé de huit chiffres ?
Le champ porte le prix d'exercice en millièmes de dollar sous forme d'entier à largeur fixe, ce qui couvre un dixième de cent jusqu'à 99 999,999 $ sans jamais avoir besoin de séparateur décimal. Divisez les huit chiffres par 1 000 pour obtenir des dollars : 00007500 vaut 7,50 $.
SPXW est-il identique à SPX ?
Ils réfèrent au même indice et utilisent la même mise en forme de symbole. Le règlement diffère. Les contrats SPX se règlent à une valeur construite à partir des premiers échanges du vendredi matin et cessent de négocier la veille ; les contrats SPXW négocient jusqu'à la clôture de leur jour d'échéance et se règlent au niveau de clôture de l'indice.
Un symbole d'option indique-t-il si l'option est hebdomadaire ou mensuelle ?
Pour les actions américaines, non. Un contrat hebdomadaire et un contrat mensuel sur le même sous-jacent partagent une racine et ne diffèrent que par les six chiffres de date. C'est la convention du troisième vendredi qui rend une date mensuelle apparente, et les univers d'indice utilisent plutôt des racines distinctes.
Chaque panneau de cette page comporte, sous un expander, le SQL exact qui l'a produit, afin que vous voyiez comment chaque champ a été extrait de la chaîne. Pour décomposer un symbole que vous examinez en ce moment, demandez-le en langage naturel sur le terminal Strasmore.