Strasmore Research
Навчання Matt ConnorВід Matt Connor · data as of August 6, 2026 · refreshed weekly

Як читати символ опціону у форматі OSI

Як розшифрувати символ опціону: root, експірацію, call або put і восьмизначний strike, а також adjusted roots, SPXW та чому 00007500 означає $7.50.

Символ опціону — це один рядок, що містить чотири факти: root базового активу, дату експірації, позначку call або put і strike price. Формат називається OSI — на честь Options Symbology Initiative, яку американська індустрія опціонів запровадила у 2010 році. На ньому побудовані кожен order ticket і кожен data feed. Достатньо один раз вивчити ці чотири поля, щоб одразу розшифровувати будь-який лістинговий опціон США.

Які чотири поля містить символ опціону?

Канонічний символ OSI має 21 символ у фіксованому порядку:

  • Root — шість символів, вирівняних ліворуч і доповнених праворуч пробілами, якщо root базового активу коротший за шість символів.
  • Дата експірації — шість цифр у форматі YYMMDD. 260116 — це 16 січня 2026 року.
  • Напрям опціону — один символ: C для call, P для put.
  • Strike — вісім цифр у тисячних частках долара без десяткової крапки.

Більшість брокерів і сайтів прибирають пробіли та показують компактну форму. Деякі data feeds додають перед рядком маркер на кшталт O:. Це не змінює принцип розбору. Останні 15 символів завжди містять дату, напрям опціону та strike. Отже, root — це все, що стоїть перед ними. Панель нижче розділяє реальні контракти за цим правилом і показує розібрані поля поруч із датою експірації, яку містить сам запис контракту.

ЗапитОдин строк експірації, чотири страйки: кожне поле OSI виокремлено із символу
Точний SQL-код для кожного числа
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 ASC
Run this yourself

У першому рядку root дорівнює SPY, поле дати — 260116, напрям опціону — C, а поле strike — 00500000. Після ділення воно дає strike $500. Власний запис експірації контракту показує Jan 16, 2026, що відповідає шести цифрам у рядку. На панелі показано 8 контрактів: однакові strike, лістинговані як call і як put. Один символ відрізняє call від відповідного put. Саме тому його потрібно двічі перевіряти в order ticket. Якщо ці поля знайомі вам за екраном брокера, у матеріалі як читати опціонний ланцюжок розглянуто колонки, що розташовані поруч із ними.

Як читати символ опціону в командному рядку

Для розбору не потрібні бібліотеки чи доступ до мережі. Поля мають фіксовану ширину й відраховуються справа, тому в bash достатньо розширення підрядка. Вставте це в термінал:

SYM=SPY260116C00650000
echo "root   ${SYM:0:$(( ${#SYM} - 15 ))}"
echo "expiry ${SYM: -15:6}"
echo "right  ${SYM: -9:1}"
echo "strike ${SYM: -8}"

Пробіл перед кожним від’ємним зміщенням обов’язковий. Без нього bash сприймає :- як розширення зі значенням за замовчуванням і виводить неправильний результат.

Для списку символів awk виконує ті самі обчислення з позиціями, що відраховуються від одиниці:

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

Версія для python3 обробляє форму з 21 символом і пробілами, а також префікс data feed у тій самій функції. Для цього не потрібно нічого, крім стандартної бібліотеки:

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"]))

Обидва фрагменти працюють у стандартному образі Ubuntu без додатково встановлених компонентів, окрім awk і python3. Жоден із них не звертається до мережі, тому результат буде однаковим сьогодні і через п’ять років.

Чому strike 00007500 означає $7.50?

Поле strike містить вісім цифр без десяткової крапки. Його одиниця виміру — одна тисячна долара. Щоб отримати суму в доларах, потрібно поділити число на 1 000. 00007500 — це 7 500 тисячних, або $7.50. 07500000 — це 7 500 000 тисячних, або $7 500. Різниця між ними — три нулі, приховані в довгій послідовності нулів. Це найпоширеніша помилка під час читання всього формату. Фіксована ширина зберігає однакову довжину кожного символу, а одиниця в тисячних долара дає змогу позначати strike, що після корпоративної дії може бути дробовим значенням до цента.

Одне поле має охоплювати всі лістингові strike — від низької ціни акції до чотиризначного рівня індексу. Панель нижче показує найнижчий і найвищий strike для кількох базових активів і виводить вісім цифр саме в тому вигляді, у якому вони містяться в символі.

ЗапитОдне восьмизначне поле: від страйків в один долар до рівнів індексу
Точний SQL-код для кожного числа
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 ASC
Run this yourself

За період у вибірці KO лістингує strike від $32.5 до $125. У символі вони записані як 00032500 і 00125000. У кінці панелі SPY досягає $1480, або 01480000, у межах 462 окремих strike. Ті самі вісім цифр і той самий дільник застосовуються незалежно від рівня ціни.

Скориговані опціони: що означає цифра в кінці root

Стандартний equity option передбачає поставку 100 акцій. Корпоративні дії можуть змінити цю умову: дроблення акцій у нестандартному співвідношенні, merger із частковою грошовою виплатою, spinoff або спеціальний cash dividend, що перевищує встановлений поріг. OCC коригує відкриті контракти й присвоює їм новий root — старий root із доданою цифрою. Після першого коригування root ABC стає ABC1, а після другого — ABC2. Формат не змінюється, тому ваш parser продовжує працювати. Водночас змінюється deliverable за контрактом, а сам символ цього не показує.

Цифра в кінці також позначає mini contracts — цифрою 7. Такі контракти охоплюють 10, а не 100 акцій. В обох випадках цифра сигналізує, що перед порівнянням strike з іншими значеннями потрібно прочитати умови контракту. У матеріалі як дроблення акцій впливає на опціони розглянуто розрахунок співвідношення для strike і deliverable.

Для скоригованих серій нові дати експірації додають рідко. Root на кшталт ABC1 поступово втрачає лістингові дати в міру їхньої експірації, а не поповнюється новими. Після експірації останньої дати він може повністю зникнути з опціонного ланцюжка. Умови містяться в меморандумі OCC про коригування конкретного контракту, а не в самому рядку. У меморандумі зазначаються переглянутий deliverable, грошова складова, якщо вона є, і multiplier, що застосовується до контракту. Поки цей меморандум не прочитано, скоригований strike і стандартний strike для одного базового активу — це два різні показники, які мають однакові вісім цифр.

SPX, SPXW і значення W

Індексні опціони мають власні root. Найчастіше інвестори спочатку стикаються з комплексом S&P 500. SPX і SPXW посилаються на один індекс і використовують однаковий формат із 21 символу. W більше не означає weekly listing, попри те, що може підказувати назва. SPX — це root для AM settlement: контракт на третю п’ятницю місяця, розрахункове значення якого формується на основі opening prints компонентів індексу вранці п’ятниці експірації. Торгівля ним завершується в четвер напередодні. SPXW — root для PM settlement. Він охоплює всі інші дати календаря: від daily-контрактів із експірацією з понеділка до п’ятниці до контрактів на кінець місяця. Торгівля кожним таким контрактом триває до закриття в день його експірації.

Календар поділяється за тією самою ознакою. Один контракт із AM settlement на третю п’ятницю кожного місячного циклу має root SPX. Усі інші майбутні дати для індексу належать до SPXW. У повному ланцюжку це більшість доступних дат експірації. Сам по собі рядок нічого з цього не пояснює. Root дає підказку, а визначальними є умови контракту. Два root, один індекс і різні механізми settlement — це детально розглянуто в матеріалі опціони з AM та PM settlement.

Чого символ опціону ніколи не показує

Чотири поля повністю ідентифікують контракт, але майже нічого не говорять про його умови. Зокрема:

  • Multiplier. Стандартний equity option у США охоплює 100 акцій, але жодне поле рядка цього не показує. Скориговані та mini series відрізняються, а індексні продукти мають власні параметри.
  • Тип settlement. Символ не показує AM або PM settlement, а також cash settlement чи фізичну поставку. Для індексних root назва дає певну підказку, але визначальними є лише умови контракту.
  • Deliverable. Після коригування припущення про 100 акцій більше не діє. Символ виглядає так само, за винятком доданої цифри.
  • Час до експірації. Поле дати показує дату експірації, а не зворотний відлік. Перетворення цієї дати на кількість днів до експірації потребує окремого розрахунку за календарем.
  • Ліквідність. Два символи з однаковою структурою можуть відрізнятися на порядки за обсягом торгів та open interest.

FAQ

Скільки символів містить символ опціону?

Двадцять один у канонічному форматі OSI: шість для root, шість для дати, один для позначки call або put і вісім для strike. Root, коротший за шість символів, доповнюється пробілами. Більшість екранів прибирає ці пробіли, тому root із трьох літер зазвичай відображається як рядок із 18 символів.

Що означає цифра після root у символі опціону?

Вона позначає контракт, умови якого більше не є стандартними. Цифра, додана OCC, ідентифікує скориговану серію після корпоративної дії, а 7 позначає mini contract, що охоплює 10, а не 100 акцій. Поля дати й strike при цьому розбираються так само.

Чому strike містить вісім цифр?

Поле містить strike у тисячних частках долара як ціле число фіксованої ширини. Це дає змогу охопити діапазон від десятої частки цента до $99,999.999 без десяткової крапки. Щоб отримати суму в доларах, потрібно поділити вісім цифр на 1 000: 00007500 — це $7.50.

SPXW — це те саме, що SPX?

Вони посилаються на один індекс і використовують однаковий формат символу. Відрізняється settlement. Контракти SPX розраховуються за значенням, сформованим на основі ранкових opening prints у п’ятницю, і припиняють торгуватися напередодні. Контракти SPXW торгуються до закриття в день експірації та розраховуються за рівнем індексу на момент закриття.

Чи показує символ опціону, чи є опціон weekly або monthly?

Для equity options США — ні. Weekly і monthly на одну й ту саму акцію мають один root і відрізняються лише шістьма цифрами дати. Саме правило третьої п’ятниці створює вигляд monthly-дати, а індексні комплекси використовують окремі root.


Під кожним expander на цій сторінці наведено точний SQL-запит, який сформував відповідну панель. Так можна побачити, як кожне поле вирізалося з рядка. Щоб розкласти символ, який ви переглядаєте зараз, запитайте про нього простою англійською в терміналі Strasmore.

#options#osi#symbology#option chain#adjusted options