Create and convert option symbols
Build the exact option contract that MarketXLS needs, convert a broker symbol, and avoid common SPX symbol mistakes.
An option symbol identifies one contract: the underlying security, expiration date, call or put, and strike price. Create the symbol once, place it in a cell, and use that cell in your price or Greek formulas.
Create a symbol with OptionSymbol
Use this syntax:
| Add-in | Formula |
|---|---|
| Windows desktop | =OptionSymbol(symbol,expiration_date,call_or_put,strike) |
| Microsoft 365 on Mac, Windows, or the web | =mxls.OptionSymbol(symbol,expiration_date,call_or_put,strike) |
For example, create an AAPL $250 call that expires September 18, 2026:
| Add-in | Example |
|---|---|
| Windows desktop | =OptionSymbol("AAPL",DATE(2026,9,18),"C",250) |
| Microsoft 365 | =mxls.OptionSymbol("AAPL",DATE(2026,9,18),"C",250) |
You can use "Call" or "C" for a call. Use "Put" or "P" for a put. Use an Excel date or a cell that contains a valid Excel date.
The result uses QuoteMedia's contract format. For this example, the meaningful parts are:
| Part | Value | Meaning |
|---|---|---|
| Provider marker | @ | QuoteMedia option contract |
| Root | AAPL | Option's underlying root, padded to six characters |
| Date | 260918 | September 18, 2026 in YYMMDD format |
| Type | C | Call |
| Strike | 00250000 | $250 multiplied by 1,000 and padded to eight digits |
Don't type the padded format by hand. A missing space or zero can point to a different contract or return NA.
Use the symbol in another formula
If cell A2 contains the result from OptionSymbol, you can request the live last price:
| Add-in | Formula |
|---|---|
| Windows desktop | =QM_Stream_Last(A2) |
| Microsoft 365 | =mxls.QM_Stream_Last(A2) |
You can also nest the symbol formula:
=QM_Stream_Last(OptionSymbol("AAPL",DATE(2026,9,18),"C",250))
On Microsoft 365, add mxls. to both functions:
=mxls.QM_Stream_Last(mxls.OptionSymbol("AAPL",DATE(2026,9,18),"C",250))
Keeping the symbol in its own cell is usually easier to audit and reuse.
Convert a symbol from a broker
Use OptionSymbolConvert when you already have a symbol from a broker or another data provider.
| Add-in | Formula |
|---|---|
| Windows desktop | =OptionSymbolConvert(broker_symbol,"","qm") |
| Microsoft 365 | =mxls.OptionSymbolConvert(broker_symbol,"","qm") |
Leave the source format blank to let MarketXLS recognize a supported format. Use qm as the target for QuoteMedia functions and streaming.
The converter recognizes common OSI-style symbols and formats used by Charles Schwab, Fidelity, Tastyworks, Yahoo Finance, and other supported providers. If automatic recognition fails, open the formula reference and provide the source-format code explicitly.
Create an SPX option symbol
SPX uses two related symbols for different tasks:
- Use
^SPXwhen you request the index level or retrieve an SPX option chain. - Use the option root returned by the chain when you price one contract. For the standard
SPXroot, create the contract withOptionSymbol("SPX",...).
For example, retrieve active SPX contracts:
| Add-in | Formula |
|---|---|
| Windows desktop | =QM_GetOptionChainActive("^SPX") |
| Microsoft 365 | =mxls.QM_GetOptionChainActive("^SPX") |
OptionSymbol doesn't have an AM- or PM-settlement parameter. Settlement is a property of the listed contract. For an index with more than one settlement style, copy the exact contract root and expiration returned by the chain instead of changing the symbol manually.
Fix an invalid or unavailable contract
Check these items in order:
- Confirm the underlying symbol or option root.
- Confirm the expiration date, including the year.
- Confirm the call or put value.
- Confirm the strike price.
- Confirm that the contract is listed and hasn't expired when you use a streaming function.
- Confirm that your QuoteMedia access includes US options data and that required exchange agreements are complete.
Invalid Option Symbol means the Microsoft 365 add-in couldn't convert the contract for streaming. Conversion Error means conversion failed unexpectedly. Expired means the contract date is before the current date. A plain NA can also mean that the provider has no value for that contract, date, or metric.
Read Fix Please Refresh, Loading, and NA for the exact result in your cell. Read Use current and historical options data to choose a chain, quote, or historical formula.