Strasmore Research
Обучение Matt ConnorАвтор: Matt Connor · data as of August 6, 2026 · refreshed weekly

Как расшифровать символ опциона в формате OSI

Узнайте, как расшифровать тикер опциона: базовый актив, дату экспирации, тип и страйк. Разбираем структуру OSI, включая расчет восьмизначной цены в тысячных долях доллара.

Символ опциона — это единая строка, содержащая четыре факта: базовый актив, дату экспирации, тип (call или put) и цену исполнения (страйк). Этот формат называется OSI (Options Symbology Initiative) — стандарт, принятый в индустрии опционов США в 2010 году. На нем строятся все торговые заявки и потоки данных. Достаточно один раз изучить эти четыре поля, чтобы научиться считывать любой американский опционный символ.

Из каких четырех полей состоит символ опциона?

Канонический символ OSI состоит из 21 символа в строго фиксированном порядке:

  • Базовый актив (root): шесть знаков, выровненных по левому краю; если тикер короче шести знаков, справа добавляются пробелы.
  • Дата экспирации: шесть цифр в формате ГГММДД. Например, 260116 — это 16 января 2026 года.
  • Тип опциона: один знак, C для call-опциона, P для put-опциона.
  • Страйк: восемь цифр, выраженных в тысячных долях доллара без десятичной точки.

Большинство брокеров и сайтов убирают лишние пробелы, отображая компактную форму, а некоторые ленты данных добавляют перед строкой префикс, например O:. На парсинг это не влияет. Последние 15 символов всегда включают дату, тип и страйк, поэтому всё, что стоит перед ними, — это базовый актив. В таблице ниже реальные контракты разделены по этому правилу, а разобранные поля сопоставлены с датой экспирации, указанной в записи самого контракта.

ЗапросОдин срок экспирации, четыре страйка: структура 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

Первая строка разбирается следующим образом: базовый актив SPY, дата 260116, тип C и страйк 00500000, который при делении дает цену исполнения $500. Запись экспирации самого контракта содержит Jan 16, 2026, что совпадает с шестью цифрами внутри строки. В таблице представлено 8 контрактов: одни и те же страйки для call и put. Один символ отличает call от соответствующего ему put, поэтому именно этот знак нужно дважды проверять в торговой заявке. Если эти поля кажутся вам знакомыми по терминалу брокера, в разделе чтение опционной доски описаны столбцы, которые их окружают.

Как прочитать символ опциона в командной строке

Для парсинга не нужны библиотеки или доступ к сети. Поля имеют фиксированную ширину, отсчитываемую справа, поэтому в 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-символьную форму с пробелами, так и префиксы ленты данных в одной функции, используя только стандартную библиотеку:

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, и не обращаются к сети, поэтому результат будет идентичен сегодня и через пять лет.

Почему страйк 00007500 означает $7.50?

Поле страйка состоит из восьми цифр без десятичной точки, а его единица измерения — одна тысячная доллара. Разделите на 1000, чтобы получить сумму в долларах. 00007500 — это 7500 тысячных, или $7.50. 07500000 — это 7 500 000 тысячных, или $7500. Разница между ними в три нуля, и это самая частая ошибка при чтении формата. Фиксированная ширина делает все символы одинаковыми по длине, а единица измерения в тысячных долях оставляет место для страйков, которые могут принимать дробные значения центов после корпоративных действий.

Одно поле должно охватывать все листинговые страйки: от дешевых акций до четырехзначных уровней индексов. В таблице ниже приведены минимальные и максимальные страйки для нескольких базовых активов, а также восемь цифр в том виде, в котором они записаны в символе.

ЗапросВосьмизначное поле: от страйков в один доллар до уровней индекса
Точный 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 показывает страйки от $32.5 до $125, записанные как 00032500 и 00125000 внутри символа. В конце таблицы SPY достигает $1480, или 01480000, распределенных по 462 различным страйкам. Те же восемь цифр, тот же делитель, независимо от уровня цены.

Скорректированные опционы: что означает цифра в конце тикера

Стандартный опцион на акции дает право на 100 бумаг. Корпоративные действия могут это изменить: дробление акций (сплит) в нецелом соотношении, слияние с частичной выплатой денежными средствами, выделение компании (spinoff) или специальные дивиденды выше определенного порога. OCC корректирует открытые контракты и присваивает им новый тикер — старый тикер с добавленной цифрой. Тикер ABC становится ABC1 после первой корректировки и ABC2 после второй. Структура символа не меняется, поэтому ваш парсер продолжает работать. Однако базовый актив контракта меняется, и символ об этом не сообщает.

Цифра в конце также отмечает мини-контракты (с цифрой 7), которые покрывают 10 акций вместо 100. В любом случае, эта цифра — сигнал о том, что перед сравнением страйка с чем-либо необходимо ознакомиться с условиями контракта. Наша заметка как сплиты акций влияют на опционы подробно разбирает математику коэффициентов для страйка и базового актива.

Скорректированные серии редко продлеваются новыми датами экспирации. Тикер вроде ABC1 постепенно «редеет» по мере истечения дат, вместо того чтобы пополняться новыми, и может полностью исчезнуть из опционной доски после экспирации последнего контракта. Условия контракта содержатся в меморандуме OCC по корректировке, а не в самой строке: в меморандуме указан измененный базовый актив, денежная составляющая (если есть) и множитель. Пока меморандум не изучен, скорректированный страйк и стандартный страйк на один и тот же актив — это две разные вещи, скрывающиеся за одними и теми же восемью цифрами.

SPX, SPXW и что означает буква W

Опционы на индексы имеют свои тикеры, и комплекс S&P 500 — это то, с чем большинство сталкивается в первую очередь. SPX и SPXW ссылаются на один и тот же индекс и используют одинаковую 21-символьную структуру. Буква W больше не указывает на еженедельный листинг, несмотря на то, что может подразумевать название. SPX — это тикер с утренним расчетом (AM settled): контракт третьей пятницы, расчетная стоимость которого строится на основе цен открытия компонентов индекса в пятницу экспирации, а торги завершаются в четверг. SPXW — это тикер с вечерним расчетом (PM settled), охватывающий все остальные даты календаря: от ежедневных контрактов с понедельника по пятницу до контрактов на конец месяца, каждый из которых торгуется до закрытия своего дня экспирации.

Календарь делится по тому же принципу. Один контракт третьей пятницы с утренним расчетом на каждый месячный цикл относится к тикеру SPX. Все остальные будущие даты по индексу принадлежат SPXW, и в полной опционной доске это большинство видимых экспираций. Сама строка не содержит этой информации: тикер — лишь подсказка, а спецификация контракта — единственный авторитетный источник. Два тикера, один индекс, один экран и механика расчетов, которую подробно разбирает статья опционы с AM и PM расчетом.

Чего не говорит символ опциона

Четыре поля полностью идентифицируют контракт, но почти ничего не говорят о его характеристиках. В частности:

  • Множитель. Стандартный опцион на акции США покрывает 100 акций, но в строке символа об этом нет ни слова. Скорректированные и мини-серии отличаются, а индексные продукты устанавливают свои правила.
  • Тип расчета. В символе нет пометок об AM или PM расчете, а также о денежном расчете или физической поставке. В индексных тикерах это подразумевается конвенцией, но авторитетна только спецификация контракта.
  • Базовый актив. После корректировки предположение о 100 акциях становится неверным, а символ выглядит точно так же, за исключением цифры.
  • Оставшееся время. Поле даты дает экспирацию, а не обратный отсчет. Превращение его в дни до экспирации — это арифметическая операция, которую вы выполняете по календарю самостоятельно.
  • Ликвидность. Два символа с идентичной структурой могут отличаться на порядки по объему торгов и открытому интересу.

Часто задаваемые вопросы

Сколько символов в опционном тикере?

Двадцать один в канонической форме OSI: шесть для базового актива, шесть для даты, один для типа (call/put) и восемь для страйка. Тикеры короче шести знаков дополняются пробелами, и большинство экранов убирают эти пробелы, поэтому трехбуквенный тикер обычно отображается как 18-символьная строка.

Что означает цифра после тикера в символе опциона?

Она отмечает контракт, условия которого перестали быть стандартными. Цифра, добавленная OCC, указывает на скорректированную серию после корпоративного действия, а 7 отмечает мини-контракт на 10 акций вместо 100. Поля даты и страйка при этом парсятся так же.

Почему страйк состоит из восьми цифр?

Это поле содержит страйк в тысячных долях доллара как целое число фиксированной ширины, что позволяет записывать значения от десятой доли цента до $99 999.999 без десятичной точки. Разделите восемь цифр на 1000, чтобы получить доллары: 00007500 — это $7.50.

SPXW — это то же самое, что SPX?

Они ссылаются на один и тот же индекс и используют одинаковую структуру символа. Разница в расчетах. Контракты SPX рассчитываются по ценам открытия пятничного утра и прекращают торги накануне, а контракты SPXW торгуются до закрытия дня экспирации и рассчитываются по уровню закрытия индекса.

Показывает ли символ опциона, является ли он еженедельным или месячным?

Для акций США — нет. Еженедельный и месячный опционы на один и тот же актив имеют один тикер и отличаются только шестью цифрами даты. Конвенция «третьей пятницы» делает дату похожей на месячную, а индексные комплексы используют для этого отдельные тикеры.


Каждая таблица на этой странице содержит SQL-запрос, с помощью которого она была сформирована (под кнопкой развертывания), чтобы вы могли видеть, как каждое поле извлекается из строки. Чтобы разобрать символ, который вы видите прямо сейчас, введите его на терминале Strasmore на обычном английском языке.

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