Optiesymbool lezen volgens het OSI-formaat
Leer hoe u een OSI-optiesymbool ontcijfert. Ontdek de betekenis van de root, expiratiedatum, call of put indicator en de achtcijferige strike prijs voor uw Amerikaanse opties.
Een optiesymbool is een enkele reeks die vier feiten bevat: de root van de onderliggende waarde, de expiratiedatum, de call- of put-indicator en de uitoefenprijs. De indeling wordt OSI genoemd, naar het Options Symbology Initiative dat de Amerikaanse optiesector in 2010 heeft aangenomen. Elk orderformulier en elke datastroom is hierop gebaseerd. Leer de vier velden één keer en u kunt elk genoteerd Amerikaans optiesymbool direct ontcijferen.
Wat zijn de vier velden in een optiesymbool?
Een canoniek OSI-symbool bestaat uit 21 tekens in een vaste volgorde:
- De root, zes tekens, links uitgelijnd en aan de rechterkant opgevuld met spaties wanneer de root van de onderliggende waarde korter is dan zes tekens.
- De expiratie, zes cijfers, in JJMMDD-volgorde. 260116 is 16 januari 2026.
- De 'right', één teken: C voor een call, P voor een put.
- De uitoefenprijs, acht cijfers, uitgedrukt in duizendsten van een dollar zonder decimaalteken.
De meeste brokers en websites verwijderen de opvulling en tonen de compacte vorm; sommige datastromen plaatsen een markering zoals O: vóór de reeks. Geen van beide verandert de parsing. De laatste 15 tekens zijn altijd de datum, de 'right' en de uitoefenprijs, dus de root is wat daarvóór staat. Het onderstaande paneel splitst werkelijke contracten volgens die regel en plaatst de geparseerde velden naast de expiratie die het contractrecord zelf bevat.
De exacte SQL achter elk getal
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 ASCRij één parseert naar een root van SPY, een datumveld van 260116, een 'right' van C en een uitoefenprijsveld van 00500000, wat gedeeld door duizend een uitoefenprijs van $500 oplevert. Het eigen expiratierecord van het contract leest Jan 16, 2026, wat overeenkomt met de zes cijfers in de reeks. Het paneel bevat 8 contracten: dezelfde uitoefenprijzen genoteerd als calls en als puts. Eén teken onderscheidt een call van de bijbehorende put; daarom is dat het teken dat u op een orderformulier dubbel moet controleren. Als de velden hier bekend voorkomen van uw brokerscherm, behandelt het lezen van een optieketen de kolommen die eromheen staan.
Hoe leest u een optiesymbool op de opdrachtregel
Voor de parsing zijn geen bibliotheken of netwerktoegang nodig. De velden hebben een vaste breedte gemeten vanaf de rechterkant, dus in bash volstaat een substring-expansie. Plak dit in een terminal:
SYM=SPY260116C00650000
echo "root ${SYM:0:$(( ${#SYM} - 15 ))}"
echo "expiry ${SYM: -15:6}"
echo "right ${SYM: -9:1}"
echo "strike ${SYM: -8}"
De spatie vóór elke negatieve offset is vereist. Zonder deze spatie leest bash :- als een standaardwaarde-expansie en wordt het verkeerde resultaat afgedrukt.
Voor een lijst met symbolen voert awk dezelfde berekening uit met posities gebaseerd op één:
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
Een python3-versie verwerkt de opgevulde vorm van 21 tekens en het voorvoegsel van de datastroom in dezelfde functie, zonder gebruik te maken van externe bibliotheken:
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"]))
Beide fragmenten draaien op een standaard Ubuntu-image zonder extra installaties naast awk en python3, en geen van beide raakt het netwerk aan, dus de output is vandaag en over vijf jaar identiek.
Waarom betekent een uitoefenprijs van 00007500 $7,50?
Het veld voor de uitoefenprijs bestaat uit acht cijfers zonder decimaalteken en de eenheid is één duizendste van een dollar. Deel door 1.000 om het bedrag in dollars te krijgen. 00007500 is 7.500 duizendsten, oftewel $7,50. 07500000 is 7.500.000 duizendsten, oftewel $7.500. Het verschil tussen beide zit in drie nullen die in een reeks verborgen zitten; dit is de meest voorkomende leesfout in het hele formaat. De vaste breedte zorgt ervoor dat elk symbool dezelfde lengte heeft, en de eenheid van duizendsten biedt ruimte voor uitoefenprijzen die na een bedrijfsgebeurtenis op fracties van een cent uitkomen.
Eén veld moet elke genoteerde uitoefenprijs dekken, van een aandeel met een lage koers tot een indexniveau van vier cijfers. Het onderstaande paneel leest de laagste en hoogste uitoefenprijs voor verschillende onderliggende waarden en drukt de acht cijfers exact af zoals ze in het symbool verschijnen.
De exacte SQL achter elk getal
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 ASCOver de getoonde sessies noteert KO uitoefenprijzen van $32.5 tot $125, geschreven als 00032500 en 00125000 in het symbool. Aan het einde van het paneel bereikt SPY $1480, of 01480000, verdeeld over 462 verschillende uitoefenprijzen. Dezelfde acht cijfers, dezelfde deler, ongeacht het prijsniveau.
Aangepaste opties: wat een cijfer aan het einde van de root betekent
Een standaard aandelenoptie levert 100 aandelen. Bedrijfsgebeurtenissen kunnen dit veranderen: een aandelensplitsing in een niet-hele verhouding, een fusie die deels in contanten wordt betaald, een afsplitsing of een speciaal contant dividend boven de drempelwaarde. De OCC past de openstaande contracten aan en geeft ze een nieuwe root: de oude root met een toegevoegd cijfer. Een root van ABC wordt ABC1 bij de eerste aanpassing en ABC2 bij een tweede. De indeling verandert niet, dus uw parser blijft werken. De leverbare waarde achter het contract verandert wel, en het symbool zegt daar niets over.
Een cijfer aan het einde is ook hoe mini-contracten worden gemarkeerd, met een 7; deze dekken 10 aandelen in plaats van 100. Hoe dan ook, het cijfer is een waarschuwing dat de contractvoorwaarden moeten worden gelezen voordat de uitoefenprijs met iets vergeleken kan worden. Onze notitie over hoe aandelensplitsingen opties beïnvloeden werkt de verhoudingswiskunde voor zowel de uitoefenprijs als de leverbare waarde uit.
Aangepaste series worden zelden uitgebreid met nieuwe expiratiedata. Een root zoals ABC1 dunt uit naarmate de genoteerde data verlopen in plaats van dat deze wordt aangevuld met nieuwe, en kan volledig uit een keten verdwijnen zodra de laatste is verlopen. De voorwaarden staan in het OCC-aanpassingsmemo voor dat contract en niet in de reeks: het memo benoemt de herziene leverbare waarde, het contante component indien aanwezig, en de vermenigvuldiger die daarbij hoort. Totdat dat memo is gelezen, zijn een aangepaste uitoefenprijs en een standaard uitoefenprijs op dezelfde onderliggende waarde twee verschillende dingen met dezelfde acht cijfers.
SPX, SPXW en waar de W voor staat
Indexopties hebben hun eigen roots, en het S&P 500-complex is het eerste waar de meeste mensen mee in aanraking komen. SPX en SPXW verwijzen naar dezelfde index en delen dezelfde indeling van 21 tekens. De W is niet langer een aanduiding voor wekelijkse notering, wat de naam ook suggereert. SPX is de AM-afgewikkelde root: het contract van de derde vrijdag waarvan de afwikkelingswaarde is gebaseerd op de openingskoersen van de indexcomponenten op de expiratievrijdag, waarbij de handel op de donderdag daarvoor eindigt. SPXW is de PM-afgewikkelde root, die al het andere op de kalender dekt, van dagelijkse contracten van maandag tot en met vrijdag tot maand-eindcontracten, die elk handelen tot het slot van hun eigen expiratiedag.
De kalender splitst langs dezelfde lijn. Eén AM-afgewikkeld contract voor de derde vrijdag per maandcyclus bevindt zich op de SPX-root. Elke andere toekomstige datum op de index behoort tot SPXW, en in een volledige keten is dat het merendeel van de zichtbare expiratiedata. De reeks markeert dit op zichzelf niet: de root is de hint en de contractspecificatie is de autoriteit. Twee roots, één index, één scherm en afwikkelingsmechanismen die AM versus PM afgewikkelde opties in detail uiteenzet.
Wat een optiesymbool u nooit vertelt
De vier velden identificeren een contract volledig en beschrijven het nauwelijks. In het bijzonder:
- De vermenigvuldiger. Een standaard Amerikaanse aandelenoptie dekt 100 aandelen, en geen enkel veld in de reeks zegt dat. Aangepaste series en mini-series verschillen, en indexproducten bepalen hun eigen vermenigvuldiger.
- De afwikkelingsstijl. Niets in het symbool markeert AM- versus PM-afwikkeling, of contante afwikkeling versus fysieke levering. Bij index-roots wijst de conventie hierop, en alleen de contractspecificatie is gezaghebbend.
- De leverbare waarde. Na een aanpassing is de aanname van 100 aandelen ongeldig en ziet het symbool er, afgezien van het cijfer, precies zo uit als voorheen.
- Resterende tijd. Het datumveld geeft een expiratie, geen aftelling. Het omzetten naar dagen tot expiratie is een berekening die u zelf tegen de kalender moet uitvoeren.
- Liquiditeit. Twee symbolen met een identieke structuur kunnen ordes van grootte verschillen in volume en open interest.
Veelgestelde vragen
Hoeveel tekens bevat een optiesymbool?
Eenentwintig in de canonieke OSI-vorm: zes voor de root, zes voor de datum, één voor de call- of put-indicator en acht voor de uitoefenprijs. Roots korter dan zes tekens worden opgevuld met spaties, en de meeste schermen laten die opvulling weg, dus een root van drie letters wordt meestal weergegeven als een reeks van 18 tekens.
Wat betekent het cijfer na de root in een optiesymbool?
Het markeert een contract waarvan de voorwaarden niet langer standaard zijn. Een cijfer dat door de OCC is toegevoegd, identificeert een aangepaste serie na een bedrijfsgebeurtenis, en een 7 markeert een mini-contract dat 10 aandelen dekt in plaats van 100. De datum- en uitoefenprijsvelden worden nog steeds op dezelfde manier geparseerd.
Waarom bestaat de uitoefenprijs uit acht cijfers?
Het veld bevat de uitoefenprijs in duizendsten van een dollar als een geheel getal met vaste breedte, dat varieert van een tiende cent tot $99.999,999 zonder dat er ooit een decimaalteken nodig is. Deel de acht cijfers door 1.000 om de dollars te lezen: 00007500 is $7,50.
Is SPXW hetzelfde als SPX?
Ze verwijzen naar dezelfde index en gebruiken dezelfde symboolindeling. De afwikkeling verschilt. SPX-contracten worden afgewikkeld tegen een waarde gebaseerd op de openingskoersen van vrijdagochtend en de handel stopt de dag ervoor; SPXW-contracten handelen tot het slot van hun expiratiedag en worden afgewikkeld tegen het slotniveau van de index.
Geeft een optiesymbool aan of een optie wekelijks of maandelijks is?
Voor Amerikaanse aandelen: nee. Een wekelijkse en een maandelijkse optie op dezelfde onderliggende waarde delen één root en verschillen alleen in de zes datumcijfers. De conventie van de derde vrijdag is wat een datum er maandelijks uit laat zien, en indexcomplexen gebruiken daarvoor aparte roots.
Elk paneel op deze pagina bevat de exacte SQL die het heeft gegenereerd onder een uitklapmenu, zodat u kunt zien hoe elk veld uit de reeks is gesneden. Om een symbool dat u op dit moment bekijkt te ontleden, kunt u er in gewoon Nederlands om vragen op de Strasmore-terminal.