オプション・シンボルの読み方とOSI形式
オプション・シンボルを、OSIのルート、満期日、コール・プット区分、8桁の行使価格に分解します。調整後ルートやSPXW、00007500が7.50ドルを示す理由も解説します。
オプション・シンボルは、原資産のルート、満期日、コールまたはプットの区分、行使価格という四つの情報を一つの文字列で示します。レイアウトは、米国のオプション業界が2010年に採用したOptions Symbology Initiativeにちなみ、OSIと呼ばれます。すべての注文画面とデータフィードは、この形式を基盤にしています。四つのフィールドを一度覚えれば、米国の上場オプション・シンボルを見ただけで読み取れます。
オプション・シンボルの四つのフィールドとは
標準的なOSIシンボルは、固定された順序の21文字で構成されます。
- ルート。6文字で、原資産のルートが6文字未満の場合は、右側をスペースで埋めます。
- 満期日。YYMMDD順の6桁です。260116は2026年1月16日を示します。
- 権利。1文字で、Cはコール、Pはプットです。
- 行使価格。小数点を付けず、ドルの千分の一単位で表した8桁です。
多くの証券会社やウェブサイトはスペースの埋め合わせを削除し、短縮形で表示します。一部のフィードでは、文字列の前にO:のようなマーカーを付けます。いずれも解析結果は変わりません。末尾の15文字は常に日付、権利、行使価格を示すため、ルートはその前にある文字列です。下のパネルでは、このルールに基づいて実際の契約を分解し、解析したフィールドを契約レコード自体が持つ満期日と並べています。
各数値の背後にある正確な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 ASC1行目は、ルートがSPY、日付フィールドが260116、権利がC、行使価格フィールドが00500000と解析されます。行使価格フィールドを割ると、行使価格は$500です。契約固有の満期日レコードはJan 16, 2026で、文字列内の6桁と一致します。パネルには8件の契約があり、同じ行使価格がコールとプットの両方で上場されています。コールと対応するプットを分けるのは1文字です。そのため、注文画面ではこの文字を二度確認する必要があります。証券会社の画面で見慣れたフィールドであれば、オプションチェーンの読み方で、その周辺に表示される項目を解説しています。
コマンドラインでオプション・シンボルを読む方法
解析にライブラリやネットワーク接続は必要ありません。フィールドは右側から測る固定幅なので、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でも同じ計算を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
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"]))
どちらのコードも、awkとpython3以外に何もインストールしていない標準的なUbuntu環境で実行できます。ネットワークには接続しないため、今日実行しても5年後に実行しても出力は同じです。
なぜ00007500が7.50ドルを意味するのか
行使価格フィールドは小数点のない8桁で、単位はドルの千分の一です。ドル単位にするには1,000で割ります。00007500は7,500個の千分の一、つまり7.50ドルです。07500000は7,500,000個の千分の一、つまり7,500ドルです。二つの違いは、連続するゼロの中にある三つのゼロです。この形式で最も起きやすい読み違いです。固定幅によってすべてのシンボルが同じ長さになり、千分の一単位によって、コーポレートアクション後に1セント未満の端数となる行使価格にも対応できます。
一つのフィールドで、低価格の株式から4桁の指数水準まで、上場されるすべての行使価格を表す必要があります。下のパネルでは、複数の原資産について最低行使価格と最高行使価格を読み取り、シンボル内に表示された8桁をそのまま示しています。
各数値の背後にある正確な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表示対象のセッションでは、KOが$32.5から$125までの行使価格を上場しており、シンボル内では00032500および00125000と記載されています。パネルの反対側では、SPYが$1480に達し、01480000として462個の異なる行使価格にまたがっています。価格水準にかかわらず、8桁の形式も除数も同じです。
調整後オプション:ルート末尾の数字が示すもの
標準的な株式オプションの受渡し対象は100株です。コーポレートアクションによって、この条件が変わることがあります。例えば、整数比ではない株式分割、一部を現金で支払う合併、スピンオフ、基準額を超える特別現金配当などです。OCCは未決済契約を調整し、新しいルートを付与します。これは旧ルートの末尾に数字を加えたものです。ABCは最初の調整でABC1となり、二度目の調整でABC2となります。レイアウトは変わらないため、パーサーはそのまま機能します。ただし、受渡し対象は変わり、シンボルだけでは分かりません。
末尾の数字は、ミニ契約の表示にも使われます。ミニ契約には7が付され、受渡し対象は100株ではなく10株です。いずれの場合も、その数字は契約条件を確認してから行使価格を比較すべきことを示すフラグです。株式分割がオプションに与える影響では、行使価格と受渡し対象の双方について比率の計算を解説しています。
調整後シリーズに新しい満期日が追加されることはほとんどありません。ABC1のようなルートは、上場されている満期日が消化されるにつれて銘柄数が減り、新たな満期日が補充されることはありません。最後の契約が満期を迎えると、チェーンから完全に消えることもあります。契約条件は文字列ではなく、その契約に関するOCCの調整通知に記載されています。通知には、変更後の受渡し対象、現金部分の有無、契約に適用される倍率が示されます。この通知を読むまでは、同じ原資産の調整後行使価格と標準行使価格は、同じ8桁を持っていても別物です。
SPX、SPXW、Wが示すもの
指数オプションには独自のルートがあり、最初に目にすることが多いのがS&P 500関連です。SPXとSPXWは同じ指数を参照し、同じ21文字のレイアウトを使います。名称から想像されるような、毎週上場されることを示すWではなくなっています。SPXは午前決済のルートです。これは第三金曜日に満期を迎える契約で、決済値は満期金曜日における指数構成銘柄の寄り付きの約定値から算出され、取引は前日の木曜日に終了します。SPXWは午後決済のルートです。月曜日から金曜日までのデイリーや月末契約など、カレンダー上のその他すべての契約を含み、それぞれの満期日の取引終了時まで取引されます。
カレンダーも同じ区分に沿っています。各月のサイクルには、午前決済の第三金曜日契約が一つあり、SPXルートに属します。指数のその他すべての将来の日付はSPXWに属し、完全なチェーンでは表示対象となる満期日の大半を占めます。文字列だけでは、これらの情報は分かりません。手掛かりはルートにありますが、正式な契約仕様が優先されます。一つの指数に二つのルートがあり、一つの画面に表示されますが、決済の仕組みについては午前決済と午後決済のオプションで詳しく解説しています。
オプション・シンボルからは分からないこと
四つのフィールドで契約は完全に特定できますが、契約内容の情報はほとんど含まれていません。特に、次の点は分かりません。
- 倍率。標準的な米国株式オプションの受渡し対象は100株ですが、文字列内にそれを示すフィールドはありません。調整後シリーズやミニシリーズでは条件が異なり、指数商品には固有の条件があります。
- 決済方式。午前決済か午後決済か、現金決済か現物受渡しかは、シンボルに表示されません。指数ルートでは慣行から推測できる場合がありますが、正式な契約仕様だけが確定情報です。
- 受渡し対象。調整後は100株という前提が無効になり、数字が付く以外、シンボルは従来とまったく同じに見えます。
- 残存期間。日付フィールドは満期日を示すだけで、カウントダウンではありません。満期までの日数に変換するには、カレンダーを使って自分で計算します。
- 流動性。同じ構造の二つのシンボルでも、出来高と建玉が桁違いになることがあります。
よくある質問
オプション・シンボルは何文字ですか
標準的なOSI形式では21文字です。ルートが6文字、日付が6文字、コールまたはプットの区分が1文字、行使価格が8文字です。6文字未満のルートはスペースで埋められます。多くの画面ではこのスペースが削除されるため、3文字のルートは通常18文字の文字列として表示されます。
オプション・シンボルで、ルートの後にある数字は何を意味しますか
標準条件ではなくなった契約を示します。OCCが付す数字は、コーポレートアクション後の調整後シリーズを識別します。また、7は100株ではなく10株を受渡し対象とするミニ契約を示します。日付と行使価格のフィールドは、通常どおり解析できます。
行使価格が8桁なのはなぜですか
このフィールドは、ドルの千分の一単位の行使価格を固定幅の整数で示します。小数点以下1桁のセントから99,999.999ドルまで、小数点なしで表現できます。8桁を1,000で割ればドル単位になります。00007500は7.50ドルです。
SPXWはSPXと同じですか
同じ指数を参照し、同じシンボル形式を使います。決済が異なります。SPXは金曜日朝の寄り付きの約定値から算出した値で決済され、前日に取引を終了します。SPXWは満期日の取引終了時まで取引され、指数の終値で決済されます。
オプション・シンボルから、週次か月次か分かりますか
米国株式では分かりません。同じ原資産の週次契約と月次契約は同じルートを共有し、違いは6桁の日付だけです。第三金曜日という慣行によって月次に見えるだけであり、指数関連では別々のルートを使います。
このページの各パネルの下には、展開すると生成に使ったSQLが表示されます。文字列から各フィールドをどのように切り出したかを確認できます。現在見ているシンボルを分解するには、Strasmore端末で平易な英語による依頼文を入力してください。