16 lines
572 B
Python
16 lines
572 B
Python
"""OKX / 欧式期权惯例:到期日当日 08:00 UTC(上海 16:00)。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import datetime, timezone
|
|
|
|
|
|
def expiry_ms_from_ymd(ymd: str) -> int:
|
|
"""YYMMDD → 到期毫秒时间戳(UTC 08:00)。"""
|
|
ymd = (ymd or "").strip()
|
|
if len(ymd) != 6 or not ymd.isdigit():
|
|
raise ValueError(f"invalid expiry ymd: {ymd!r}")
|
|
yy, mm, dd = int(ymd[0:2]), int(ymd[2:4]), int(ymd[4:6])
|
|
dt = datetime(2000 + yy, mm, dd, 8, 0, 0, tzinfo=timezone.utc)
|
|
return int(dt.timestamp() * 1000)
|