Cara Membaca Simbol Opsi Format OSI
Pelajari cara membaca simbol opsi: root OSI, expiry, call atau put, strike delapan digit, adjusted root, SPXW, dan arti 00007500 sebagai $7.50.
Simbol opsi adalah satu string yang memuat empat informasi: root aset dasar, tanggal kedaluwarsa, penanda call atau put, dan strike price. Format ini disebut OSI, dari Options Symbology Initiative yang diadopsi industri opsi AS pada 2010. Setiap order ticket dan data feed menggunakan format ini. Setelah memahami empat field tersebut, Anda dapat membaca simbol opsi AS yang tercatat di bursa secara langsung.
Apa saja empat field dalam simbol opsi?
Simbol OSI kanonis terdiri dari 21 karakter dalam urutan tetap:
- Root, enam karakter, rata kiri dan diisi spasi di sisi kanan jika root aset dasar kurang dari enam karakter.
- Expiration, enam digit dalam urutan YYMMDD. 260116 berarti 16 Januari 2026.
- Right, satu karakter: C untuk call, P untuk put.
- Strike, delapan digit yang dinyatakan dalam seperseribu dolar tanpa tanda desimal.
Sebagian besar broker dan situs web menghapus spasi pengisi dan menampilkan format ringkas. Sebagian data feed menambahkan penanda seperti O: di depan string. Keduanya tidak mengubah cara parsing. Lima belas karakter terakhir selalu berisi tanggal, right, dan strike. Jadi, root adalah seluruh karakter yang berada di depannya. Panel di bawah memisahkan kontrak riil berdasarkan aturan tersebut dan menempatkan field hasil parsing di samping tanggal kedaluwarsa yang tercatat pada kontrak itu sendiri.
SQL tepat di balik setiap angka
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 ASCBaris pertama menghasilkan root SPY, date field 260116, right C, dan strike field 00500000, yang jika dibagi menghasilkan strike sebesar $500. Catatan expiration kontrak itu sendiri menunjukkan Jan 16, 2026, sesuai dengan enam digit di dalam string. Panel tersebut memuat 8 kontrak: strike yang sama tercatat sebagai call dan put. Satu karakter membedakan call dari put yang sesuai. Karena itu, karakter tersebut perlu diperiksa dua kali pada order ticket. Jika field di sini tampak familiar dari layar broker Anda, membaca option chain menjelaskan kolom-kolom di sekitarnya.
Cara membaca simbol opsi melalui command line
Parsing tidak memerlukan library atau akses jaringan. Field memiliki lebar tetap dan diukur dari sisi kanan. Jadi, di bash, cukup gunakan substring expansion. Tempelkan perintah berikut ke terminal:
SYM=SPY260116C00650000
echo "root ${SYM:0:$(( ${#SYM} - 15 ))}"
echo "expiry ${SYM: -15:6}"
echo "right ${SYM: -9:1}"
echo "strike ${SYM: -8}"
Spasi di depan setiap offset negatif wajib ada. Tanpa spasi tersebut, bash membaca :- sebagai default value expansion dan menampilkan hasil yang salah.
Untuk daftar simbol, awk melakukan perhitungan yang sama menggunakan posisi berbasis satu:
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
Versi python3 menangani format 21 karakter dengan spasi pengisi dan prefix data feed dalam fungsi yang sama. Kode ini hanya menggunakan standard library:
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"]))
Kedua potongan kode tersebut berjalan pada image Ubuntu standar dengan awk dan python3 sebagai satu-satunya komponen yang diperlukan. Keduanya juga tidak mengakses jaringan. Karena itu, hasilnya akan tetap sama sekarang maupun lima tahun lagi.
Mengapa strike 00007500 berarti $7.50?
Strike field terdiri dari delapan digit tanpa tanda desimal. Satuannya adalah seperseribu dolar. Bagilah dengan 1.000 untuk mendapatkan nilai dalam dolar. 00007500 berarti 7.500 per seribu dolar, atau $7.50. 07500000 berarti 7.500.000 per seribu dolar, atau $7,500. Keduanya berbeda tiga nol yang tersembunyi di antara rangkaian nol. Ini adalah kesalahan pembacaan yang paling umum pada seluruh format tersebut. Lebar tetap membuat setiap simbol memiliki panjang yang sama. Satuan seperseribu dolar juga memungkinkan strike berupa pecahan sen setelah corporate action.
Satu field harus mencakup semua strike yang tercatat, mulai dari saham berharga rendah hingga level indeks empat digit. Panel di bawah membaca strike terendah dan tertinggi untuk beberapa aset dasar. Panel itu juga menampilkan delapan digit persis seperti yang muncul di dalam simbol.
SQL tepat di balik setiap angka
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 ASCDalam sesi yang ditampilkan, KO mencatat strike dari $32.5 hingga $125. Nilai tersebut ditulis sebagai 00032500 dan 00125000 di dalam simbol. Di ujung panel, SPY mencapai $1480, atau 01480000, dengan total 462 strike yang berbeda. Delapan digitnya sama. Pembaginya juga sama, berapa pun level harganya.
Adjusted options: arti angka di akhir root
Standard equity option memberikan hak atas 100 saham. Corporate action dapat mengubah ketentuan tersebut. Contohnya adalah stock split dengan rasio pecahan, merger yang sebagian dibayar tunai, spinoff, atau special cash dividend di atas ambang tertentu. OCC menyesuaikan kontrak yang masih terbuka dan menerbitkan root baru, yaitu root lama dengan satu digit tambahan. Root ABC menjadi ABC1 pada penyesuaian pertama dan ABC2 pada penyesuaian kedua. Formatnya tidak berubah, sehingga parser tetap berfungsi. Namun deliverable kontraknya berubah, dan simbol tersebut tidak menjelaskannya.
Angka di akhir root juga digunakan untuk menandai mini contract, dengan angka 7. Mini contract mencakup 10 saham, bukan 100 saham. Dalam kedua kasus, angka tersebut merupakan tanda bahwa ketentuan kontrak perlu dibaca sebelum strike dibandingkan dengan kontrak lain. Catatan kami tentang dampak stock split terhadap opsi menjelaskan perhitungan rasio untuk strike dan deliverable.
Adjusted series jarang diperpanjang dengan expiration baru. Root seperti ABC1 semakin sedikit digunakan ketika tanggal-tanggal yang tercatat berakhir, bukan diisi dengan tanggal baru. Root tersebut dapat hilang sepenuhnya dari chain setelah expiration terakhir. Ketentuan kontrak tercantum dalam OCC adjustment memo untuk kontrak tersebut, bukan di dalam string. Memo itu menyebutkan deliverable yang telah direvisi, komponen tunai jika ada, serta multiplier yang menyertainya. Sebelum membaca memo tersebut, adjusted strike dan standard strike pada aset dasar yang sama adalah dua hal berbeda meski menggunakan delapan digit yang sama.
SPX, SPXW, dan arti W
Index options menggunakan root masing-masing. Kompleks S&P 500 adalah contoh yang paling sering ditemui. SPX dan SPXW merujuk pada indeks yang sama dan menggunakan format 21 karakter yang sama. W tidak lagi menunjukkan weekly listing, meskipun namanya dapat memberi kesan demikian. SPX adalah root dengan AM settlement: kontrak third Friday yang nilai settlement-nya dibentuk dari opening prints komponen indeks pada hari Jumat saat expiration, dengan perdagangan berakhir pada Kamis sebelumnya. SPXW adalah root dengan PM settlement. Root ini mencakup seluruh tanggal lain di kalender, mulai dari daily Senin hingga Jumat sampai kontrak month-end. Masing-masing diperdagangkan hingga penutupan pada hari expiration-nya sendiri.
Kalender terbagi berdasarkan garis yang sama. Satu kontrak AM settled third Friday untuk setiap siklus bulanan menggunakan root SPX. Setiap tanggal forward lain pada indeks menggunakan SPXW. Dalam chain penuh, sebagian besar expiration yang terlihat berada di SPXW. String tersebut tidak menjelaskan semua hal ini secara langsung. Root hanya menjadi petunjuk, sedangkan contract specification adalah acuan resmi. Dua root, satu indeks, satu layar, dan mekanisme settlement yang membandingkan opsi dengan AM dan PM settlement dijelaskan secara terperinci.
Apa yang tidak pernah diberitahukan oleh simbol opsi
Keempat field mengidentifikasi kontrak secara lengkap, tetapi hanya menjelaskan sedikit tentang karakteristiknya. Secara khusus:
- Multiplier. Standard US equity option mencakup 100 saham. Tidak ada field dalam string yang menyatakan hal itu. Adjusted series dan mini series memiliki ketentuan berbeda, sedangkan index products memiliki ketentuan masing-masing.
- Settlement style. Simbol tidak menandai AM settlement atau PM settlement, maupun cash settlement atau physical delivery. Pada index root, konvensi dapat menjadi petunjuk. Namun, hanya contract specification yang menjadi acuan resmi.
- Deliverable. Setelah penyesuaian, asumsi 100 saham tidak lagi berlaku. Simbol tersebut tetap terlihat sama, kecuali tambahan digit.
- Sisa waktu. Date field menunjukkan expiration, bukan hitungan mundur. Untuk mengubahnya menjadi days to expiry, Anda harus menghitungnya sendiri berdasarkan kalender.
- Likuiditas. Dua simbol dengan struktur identik dapat memiliki perbedaan volume dan open interest hingga beberapa kali lipat.
FAQ
Berapa banyak karakter dalam simbol opsi?
Dua puluh satu karakter dalam format OSI kanonis: enam untuk root, enam untuk tanggal, satu untuk penanda call atau put, dan delapan untuk strike. Root yang lebih pendek dari enam karakter diisi dengan spasi. Sebagian besar layar menghapus spasi tersebut. Karena itu, root tiga huruf biasanya ditampilkan sebagai string 18 karakter.
Apa arti angka setelah root dalam simbol opsi?
Angka tersebut menandai kontrak yang ketentuannya tidak lagi standar. Digit yang ditambahkan oleh OCC mengidentifikasi adjusted series setelah corporate action. Angka 7 menandai mini contract yang mencakup 10 saham, bukan 100 saham. Date field dan strike field tetap diproses dengan cara yang sama.
Mengapa strike terdiri dari delapan digit?
Field tersebut menyimpan strike dalam seperseribu dolar sebagai bilangan bulat dengan lebar tetap. Format ini mencakup nilai dari sepersepuluh sen hingga $99,999.999 tanpa memerlukan tanda desimal. Bagilah delapan digit tersebut dengan 1.000 untuk membaca nilainya dalam dolar: 00007500 berarti $7.50.
Apakah SPXW sama dengan SPX?
Keduanya merujuk pada indeks yang sama dan menggunakan format simbol yang sama. Settlement-nya berbeda. Kontrak SPX diselesaikan berdasarkan nilai yang dibentuk dari opening prints pada Jumat pagi dan berhenti diperdagangkan sehari sebelumnya. Kontrak SPXW diperdagangkan hingga penutupan pada hari expiration dan diselesaikan berdasarkan level indeks saat penutupan.
Apakah simbol opsi menunjukkan apakah opsi tersebut weekly atau monthly?
Untuk US equities, tidak. Weekly dan monthly pada saham dasar yang sama menggunakan satu root yang sama. Keduanya hanya berbeda pada enam digit tanggal. Konvensi third Friday membuat suatu tanggal tampak sebagai monthly. Kompleks indeks menggunakan root yang berbeda.
Setiap panel di halaman ini memuat SQL persis yang digunakan untuk menghasilkan datanya di bawah expander. Dengan begitu, Anda dapat melihat cara setiap field dipotong dari string. Untuk menguraikan simbol yang sedang Anda lihat, minta penjelasannya dalam bahasa biasa melalui terminal Strasmore.