MSN Money Options RTD Provider Documentation
Important Notice
TheMsnMoneyOptions
provider currently does not return data.
Please use the YahooFinanceOptions provider instead.
Overview
The MsnMoneyOptions
provider offers access to real-time options data from MSN Money, including calls and puts across multiple expiration dates and strike prices. It supports:
Pricing Fields
Bid, ask, last price, change, percent change, mark price
Volume and Open Interest
Volume, open interest, bid/ask size
Contract Details
Expiration date, strike price, option type (call/put), currency
Use the following generic RTD formula:
=RTD("market.rtd",,"MsnMoneyOptions","<Option Symbol>","<Data Field>")
Example:
=RTD("market.rtd",,"MsnMoneyOptions","AAPL260116C00200000","Last")
In this example, <Option Symbol>
is a full OCC-style option symbol (e.g., AAPL260116C00200000
), and <Data Field>
is one of the supported fields listed below.
To find option symbols, visit MSN Money or create them using your own code or tools.
Use the Formula Builder to generate and copy formulas into Excel. It also allows you to customize separators and layout settings.
By default, the refresh interval is one hour. You can modify it using the following formula:
=RTD("market.rtd",,"MsnMoneyOptions","rtd_RefreshInterval",66060)
Note that Market RTD loads one page to retrieve data for all options of the month.
Option Part Formats
Option code format:
[.]<Option Symbol><Expiration Date><Option Type Char><Strike>
- Option symbol: Use stock tickers like
AAPL
or MSN instrument codes like126.1.AAPL.NAS
. - Expiration date format:
yymmdd
- Option type char:
C
for calls,P
for puts
Strike formats:
- 8 digits with leading zero as strike — 1000 (Yahoo Finance format)
- 7 digits with leading zero as strike — 100
- 6 digits with leading zero as strike — 10
- Strike as is, with or without decimal part (common format)
Examples:
=RTD("market.rtd",,"MsnMoneyOptions","AAPL260116C00200000","OpenInt") =RTD("market.rtd",,"MsnMoneyOptions","AAPL260116C00200","OpenInt") =RTD("market.rtd",,"MsnMoneyOptions","AAPL260116C200","OpenInt") =RTD("market.rtd",,"MsnMoneyOptions","AAPL260116C200.0","OpenInt") =RTD("market.rtd",,"MsnMoneyOptions",".AAPL260116C200.0","OpenInt")
The last formula uses the thinkorswim format.
To find options, visit MSN Money.
Note: Options data is available for US exchanges and may not be available for other global exchanges.
Using Option Specifications
Excel formula format:
=RTD("market.rtd",,"MsnMoneyOptions","<Symbol>", <Expiration Date>, <Strike>, "<Option Type>", "<Data Field>")
Expiration date formats:
yymmdd
yyyy-mm-dd
mmmdd,yy
mmmdd'yy
Option type format:
C
orCALL
P
orPUT
Examples:
=RTD("market.rtd",,"MsnMoneyOptions","AAPL", "260116", 200, "CALL", "OpenInt") =RTD("market.rtd",,"MsnMoneyOptions","AAPL", "2026-01-16", 200, "C", "OpenInt") =RTD("market.rtd",,"MsnMoneyOptions","AAPL", "JAN26,16", 200, "PUT", "OpenInt") =RTD("market.rtd",,"MsnMoneyOptions","AAPL", "JAN26'16", 200, "P", "OpenInt")
Special Notes
Symbol
,OptionSymbol
,Exp
,Strike
, andType
are parsed automatically from the option code.OptionCode
follows the standard OCC format.OptionSymbol
ends with7
for mini options and with1
for some pre-split options.ChangeInPercent
,ChangePercent
, andPercent
are equivalent and calculated by Market RTD.Mark
is calculated as(Bid + Ask) / 2
.
To assist with filtering and lookup:
- Use
Strike~0
to find the ATM strike. - Use
Strike+0
orStrike-0
to find equal or nearest strikes. - Use
Strike+1
andStrike-1
to find strikes just above or below.
Data Fields and Excel Formulas
Formulas for getting data by option codes:
Data Field | Excel Formula |
---|---|
OptionCode | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"OptionCode") |
Symbol | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Symbol") |
OptionSymbol | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"OptionSymbol") |
ExpDate | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Exp") |
Strike | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Strike") |
Type | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Type") |
Last | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Last") |
Change | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Change") |
ChangeInPercent | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"ChangeInPercent") |
ChangePercent | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"ChangePercent") |
PercentChange | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"PercentChange") |
TimeValue | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"TimeValue") |
Mark | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Mark") |
Bid | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Bid") |
Ask | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Ask") |
Volume | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Volume") |
OpenInt | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"OpenInt") |
Strike~0 | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Strike~0") |
Strike+0 | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Strike+0") |
Strike-0 | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Strike-0") |
Strike+1 | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Strike+1") |
Strike-1 | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"Strike-1") |
RTD server values: | |
rtd_LastError | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"rtd_LastError") |
rtd_LastMessage | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"rtd_LastMessage") |
rtd_LastUpdate | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"rtd_LastUpdate") |
rtd_LastUpdateDate | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"rtd_LastUpdateDate") |
rtd_LastUpdateTime | =RTD("market.rtd",,"MsnMoneyOptions",[Code],"rtd_LastUpdateTime") |
Data Fields and Excel Formulas by Option Contract Specifications
Data Field | Excel Formula |
---|---|
OptionCode | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"OptionCode") |
Symbol | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Symbol") |
Last | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Last") |
Change | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Change") |
ChangeInPercent | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"ChangeInPercent") |
ChangePercent | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"ChangePercent") |
PercentChange | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"PercentChange") |
TimeValue | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"TimeValue") |
Mark | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Mark") |
Bid | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Bid") |
Ask | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Ask") |
Volume | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Volume") |
OpenInt | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"OpenInt") |
Strike~0 | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Strike~0") |
Strike+0 | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Strike+0") |
Strike-0 | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Strike-0") |
Strike+1 | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Strike+1") |
Strike-1 | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"Strike-1") |
RTD server values: | |
rtd_LastError | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"rtd_LastError") |
rtd_LastMessage | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"rtd_LastMessage") |
rtd_LastUpdate | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"rtd_LastUpdate") |
rtd_LastUpdateDate | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"rtd_LastUpdateDate") |
rtd_LastUpdateTime | =RTD("market.rtd",,"MsnMoneyOptions",[OptionSymbol],[ExpDate],[Strike],[Type],"rtd_LastUpdateTime") |