investfly.models.marketdata.StockOption

@dataclass(frozen=True, eq=True)
class StockOption:

OCC-style listed equity/ETF option contract.

OCC option symbol: TICKER + YYMMDD + C/P + strike*1000 (8 digits, zero-padded). Example: AAPL260117C00200000 => AAPL call expiring 2026-01-17 with $200 strike.

StockOption( symbol: str, underlyingSymbol: str, expiry: investfly.models.marketdata.OptionExpiry, optionType: investfly.models.marketdata.OptionType, strikePrice: float)
symbol: str
underlyingSymbol: str
strikePrice: float
contractUnits: int
def toSecurity(self) -> investfly.models.marketdata.Security:
@staticmethod
def fromSymbol(optionSymbol: str) -> StockOption:
@staticmethod
def buildSymbol( underlying: str, expiry: investfly.models.marketdata.OptionExpiry, optionType: investfly.models.marketdata.OptionType, strikePrice: float) -> str:
@staticmethod
def isOptionSymbol(symbol: str | None) -> bool:
@staticmethod
def getUnderlyingFromOptionSymbol(symbol: str | None) -> str | None:
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> StockOption:
def toDict(self) -> Dict[str, Any]: