Cách đọc symbol quyền chọn theo định dạng OSI
Tìm hiểu cách đọc symbol quyền chọn: mã gốc OSI, ngày đáo hạn, call hoặc put, giá thực hiện tám chữ số, adjusted roots, SPXW và 00007500 là $7.50.
Một symbol quyền chọn là một chuỗi duy nhất chứa bốn thông tin: mã gốc của tài sản cơ sở, ngày đáo hạn, loại call hoặc put và giá thực hiện. Bố cục này được gọi là OSI, theo tên Options Symbology Initiative mà ngành quyền chọn Mỹ áp dụng năm 2010. Mọi phiếu lệnh và nguồn dữ liệu đều được xây dựng trên tiêu chuẩn này. Chỉ cần nắm bốn trường một lần, bạn có thể đọc ngay bất kỳ symbol quyền chọn Mỹ nào được niêm yết.
Bốn trường trong một symbol quyền chọn là gì?
Một symbol OSI chuẩn có 21 ký tự, theo thứ tự cố định:
- Mã gốc gồm sáu ký tự, căn trái và thêm khoảng trắng ở bên phải nếu mã gốc của tài sản cơ sở ngắn hơn sáu ký tự.
- Ngày đáo hạn gồm sáu chữ số, theo thứ tự YYMMDD. 260116 là ngày 16 tháng 1 năm 2026.
- Loại quyền chọn gồm một ký tự: C là call, P là put.
- Giá thực hiện gồm tám chữ số, được biểu thị theo đơn vị một phần nghìn USD và không có dấu thập phân.
Hầu hết broker và website loại bỏ phần khoảng trắng đệm rồi hiển thị dạng rút gọn. Một số nguồn dữ liệu đặt thêm một tiền tố như O: trước chuỗi. Cả hai cách đều không làm thay đổi việc phân tích chuỗi. 15 ký tự cuối luôn là ngày, loại quyền chọn và giá thực hiện. Vì vậy, mã gốc là phần nằm trước 15 ký tự này. Bảng bên dưới tách các hợp đồng thực tế theo quy tắc đó và đặt các trường đã phân tích cạnh ngày đáo hạn được ghi trong chính hồ sơ hợp đồng.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 ASCDòng một được phân tích thành mã gốc SPY, trường ngày 260116, loại quyền chọn C và trường giá thực hiện 00500000. Sau khi chia, giá thực hiện là $500. Hồ sơ ngày đáo hạn của hợp đồng ghi Jan 16, 2026, khớp với sáu chữ số trong chuỗi. Bảng có 8 hợp đồng: cùng các giá thực hiện được niêm yết dưới dạng call và put. Chỉ một ký tự phân biệt call với put tương ứng. Vì vậy, đây là ký tự cần kiểm tra lại hai lần trên phiếu lệnh. Nếu các trường này trông quen thuộc trên màn hình broker, bài cách đọc option chain trình bày các cột nằm xung quanh chúng.
Cách đọc symbol quyền chọn trên dòng lệnh
Việc phân tích không cần thư viện hay kết nối mạng. Các trường có độ rộng cố định và được đo từ bên phải. Vì vậy, trong bash chỉ cần dùng phép mở rộng chuỗi con. Hãy dán đoạn lệnh sau vào terminal:
SYM=SPY260116C00650000
echo "root ${SYM:0:$(( ${#SYM} - 15 ))}"
echo "expiry ${SYM: -15:6}"
echo "right ${SYM: -9:1}"
echo "strike ${SYM: -8}"
Khoảng trắng trước mỗi vị trí âm là bắt buộc. Nếu thiếu, bash sẽ hiểu :- là phép mở rộng giá trị mặc định và in ra kết quả sai.
Với một danh sách symbol, awk thực hiện phép tính tương tự bằng các vị trí bắt đầu từ một:
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
Phiên bản python3 xử lý dạng 21 ký tự có khoảng trắng đệm và tiền tố của nguồn dữ liệu trong cùng một hàm. Đoạn mã chỉ dùng thư viện chuẩn:
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"]))
Cả hai đoạn mã đều chạy trên bản Ubuntu tiêu chuẩn chỉ có awk và python3, không cần cài thêm gì. Cả hai cũng không truy cập mạng. Vì vậy, kết quả hôm nay và sau năm năm vẫn giống nhau.
Vì sao 00007500 lại có nghĩa là $7.50?
Trường giá thực hiện có tám chữ số, không có dấu thập phân, và đơn vị là một phần nghìn USD. Chia cho 1.000 để đổi sang USD. 00007500 là 7.500 phần nghìn, tương đương $7.50. 07500000 là 7.500.000 phần nghìn, tương đương $7.500. Hai giá trị này khác nhau bởi ba số 0 nằm trong một dãy số 0. Đây là cách đọc sai phổ biến nhất của toàn bộ định dạng. Độ rộng cố định giúp mọi symbol có cùng độ dài. Đơn vị một phần nghìn cũng cho phép biểu thị các giá thực hiện rơi vào phần lẻ của một cent sau một corporate action.
Một trường phải bao quát mọi giá thực hiện được niêm yết, từ cổ phiếu giá thấp đến chỉ số có bốn chữ số. Bảng bên dưới đọc giá thực hiện thấp nhất và cao nhất của một số tài sản cơ sở, rồi in nguyên tám chữ số như chúng xuất hiện trong symbol.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 ASCTrong các phiên được xem xét, KO có giá thực hiện từ $32.5 đến $125, được ghi lần lượt là 00032500 và 00125000 trong symbol. Ở đầu trên của bảng, SPY đạt $1480, tương đương 01480000, trải trên 462 mức giá thực hiện riêng biệt. Cùng tám chữ số và cùng một hệ số chia, bất kể mức giá là bao nhiêu.
Quyền chọn điều chỉnh: một chữ số ở cuối mã gốc có ý nghĩa gì?
Một quyền chọn cổ phiếu tiêu chuẩn cho phép giao 100 cổ phiếu. Corporate action có thể làm thay đổi điều này, chẳng hạn như một đợt chia cổ phiếu theo tỷ lệ không nguyên, một thương vụ sáp nhập thanh toán một phần bằng tiền mặt, một spinoff hoặc cổ tức tiền mặt đặc biệt vượt ngưỡng quy định. OCC điều chỉnh các hợp đồng đang mở và cấp cho chúng một mã gốc mới: mã gốc cũ kèm thêm một chữ số. ABC trở thành ABC1 sau lần điều chỉnh đầu tiên và ABC2 sau lần thứ hai. Bố cục symbol không thay đổi, nên trình phân tích của bạn vẫn hoạt động. Tuy nhiên, tài sản giao nhận theo hợp đồng đã thay đổi, và symbol không cho biết điều đó.
Một chữ số ở cuối cũng được dùng để đánh dấu mini contract, với số 7. Các hợp đồng này bao phủ 10 cổ phiếu thay vì 100 cổ phiếu. Trong cả hai trường hợp, chữ số là dấu hiệu cho thấy cần đọc điều khoản hợp đồng trước khi so sánh giá thực hiện với bất kỳ giá thực hiện nào khác. Bài viết của chúng tôi về cách chia tách cổ phiếu ảnh hưởng đến quyền chọn trình bày phép tính tỷ lệ đối với cả giá thực hiện và tài sản giao nhận.
Các series đã điều chỉnh hiếm khi được bổ sung ngày đáo hạn mới. Một mã gốc như ABC1 sẽ thưa dần khi các ngày đáo hạn được niêm yết lần lượt hết hạn, thay vì được bổ sung các ngày mới. Mã này có thể biến mất hoàn toàn khỏi option chain sau khi hợp đồng cuối cùng đáo hạn. Điều khoản nằm trong thông báo điều chỉnh của OCC cho hợp đồng đó, không nằm trong chuỗi symbol. Thông báo này nêu tài sản giao nhận đã sửa đổi, phần tiền mặt nếu có và hệ số nhân đi kèm. Khi chưa đọc thông báo này, một giá thực hiện đã điều chỉnh và một giá thực hiện tiêu chuẩn trên cùng tài sản cơ sở là hai khái niệm khác nhau dù cùng mang tám chữ số.
SPX, SPXW và ý nghĩa của chữ W
Quyền chọn chỉ số có mã gốc riêng. Tổ hợp S&P 500 là nơi hầu hết nhà đầu tư gặp các mã này đầu tiên. SPX và SPXW tham chiếu cùng một chỉ số và dùng cùng bố cục 21 ký tự. Chữ W không còn mang nghĩa là hợp đồng niêm yết theo tuần như tên gọi gợi ý. SPX là mã gốc thanh toán AM: hợp đồng ngày thứ Sáu thứ ba, với giá trị thanh toán được xây dựng từ các mức giá mở cửa của các cổ phiếu cấu thành chỉ số vào thứ Sáu đáo hạn. Giao dịch kết thúc vào thứ Năm trước đó. SPXW là mã gốc thanh toán PM, bao gồm mọi hợp đồng khác trên lịch, từ các hợp đồng theo ngày của thứ Hai đến thứ Sáu cho đến hợp đồng cuối tháng. Mỗi hợp đồng giao dịch đến khi thị trường đóng cửa vào ngày đáo hạn của chính nó.
Lịch đáo hạn cũng được chia theo ranh giới này. Mỗi chu kỳ tháng có một hợp đồng ngày thứ Sáu thứ ba thanh toán AM trên mã SPX. Mọi ngày đáo hạn khác của chỉ số thuộc SPXW. Trên một option chain đầy đủ, đây là phần lớn các ngày đáo hạn được hiển thị. Bản thân chuỗi symbol không thể hiện toàn bộ thông tin này. Mã gốc chỉ là dấu hiệu gợi ý, còn thông số hợp đồng mới là căn cứ quyết định. Hai mã gốc, một chỉ số và một màn hình, với cơ chế thanh toán được phân tích chi tiết trong bài quyền chọn thanh toán AM và PM.
Những điều symbol quyền chọn không bao giờ cho biết
Bốn trường xác định đầy đủ một hợp đồng nhưng hầu như không mô tả các điều khoản của hợp đồng. Cụ thể:
- Hệ số nhân. Một quyền chọn cổ phiếu Mỹ tiêu chuẩn bao phủ 100 cổ phiếu, nhưng không có trường nào trong chuỗi cho biết điều đó. Series đã điều chỉnh và mini series có quy mô khác, còn sản phẩm chỉ số có hệ số riêng.
- Phương thức thanh toán. Symbol không cho biết hợp đồng thanh toán AM hay PM, thanh toán bằng tiền mặt hay giao cổ phiếu. Với các mã gốc chỉ số, quy ước có thể là dấu hiệu gợi ý, nhưng chỉ thông số hợp đồng mới có giá trị quyết định.
- Tài sản giao nhận. Sau một lần điều chỉnh, giả định 100 cổ phiếu không còn đúng. Symbol vẫn giống hệt trước đó, ngoại trừ chữ số được thêm vào.
- Thời gian còn lại. Trường ngày cho biết ngày đáo hạn, không cho biết thời gian đếm ngược. Việc chuyển đổi thành số ngày đến đáo hạn là phép tính bạn phải tự thực hiện dựa trên lịch.
- Thanh khoản. Hai symbol có cấu trúc giống hệt nhau vẫn có thể cách nhau nhiều bậc về khối lượng và open interest.
Câu hỏi thường gặp
Symbol quyền chọn có bao nhiêu ký tự?
Dạng OSI chuẩn có 21 ký tự: sáu ký tự cho mã gốc, sáu ký tự cho ngày, một ký tự cho cờ call hoặc put và tám ký tự cho giá thực hiện. Mã gốc ngắn hơn sáu ký tự được thêm khoảng trắng. Hầu hết màn hình loại bỏ phần khoảng trắng này, nên mã gốc gồm ba chữ cái thường được hiển thị dưới dạng chuỗi 18 ký tự.
Chữ số sau mã gốc trong symbol quyền chọn có ý nghĩa gì?
Chữ số đánh dấu một hợp đồng có điều khoản không còn tiêu chuẩn. Một chữ số do OCC thêm vào xác định series đã điều chỉnh sau corporate action. Số 7 đánh dấu mini contract bao phủ 10 cổ phiếu thay vì 100 cổ phiếu. Các trường ngày và giá thực hiện vẫn được phân tích theo cùng cách.
Vì sao giá thực hiện có tám chữ số?
Trường này chứa giá thực hiện theo đơn vị một phần nghìn USD dưới dạng số nguyên có độ rộng cố định. Cách biểu thị này bao quát từ một phần mười cent đến $99.999,999 mà không cần dấu thập phân. Chia tám chữ số cho 1.000 để đọc giá theo USD: 00007500 là $7.50.
SPXW có giống SPX không?
Hai mã cùng tham chiếu một chỉ số và dùng cùng bố cục symbol. Điểm khác biệt là phương thức thanh toán. Hợp đồng SPX thanh toán theo giá trị được xây dựng từ các mức giá mở cửa sáng thứ Sáu và ngừng giao dịch vào ngày trước đó. Hợp đồng SPXW giao dịch đến khi thị trường đóng cửa vào ngày đáo hạn và thanh toán theo mức đóng cửa của chỉ số.
Symbol quyền chọn có cho biết quyền chọn là hợp đồng theo tuần hay theo tháng không?
Đối với cổ phiếu Mỹ, không. Hợp đồng theo tuần và theo tháng trên cùng một tài sản cơ sở dùng chung một mã gốc và chỉ khác nhau ở sáu chữ số ngày. Quy ước ngày thứ Sáu thứ ba khiến một ngày trông giống ngày đáo hạn theo tháng. Các tổ hợp chỉ số dùng mã gốc riêng.
Mỗi bảng trên trang này đều có câu lệnh SQL chính xác tạo ra bảng, nằm bên dưới một expander. Bạn có thể xem cách từng trường được tách khỏi chuỗi. Để phân tích symbol bạn đang xem, hãy yêu cầu bằng tiếng Anh đơn giản trên terminal Strasmore.