Retrieve Thinkorswim Quotes with TOS.RTD

Retrieve Thinkorswim Quotes with TOS.RTD

Overview

The RTD database includes predefined tables for retrieving real-time data from thinkorswim desktop.

Quote tables are designed to fetch data for stocks, futures, and currency pairs. Use the option tables for options data.

RTD or DDE formulas can be utilized, with RTD being the preferred method. Note that thinkorswim desktop may crash if more than 200,000 topics are requested.

RTD formulas can be converted to DDE using the patches from the database template folders.

Disable unnecessary columns to minimize server overhead.

The RTD server does not provide an actual data timestamp.
The datetime, date, and time fields are updated using local system time adjusted to the table's configured time zone (Eastern Standard Time).

Real-Time Data Tables

Table Configurations

table_schematable_nameload_codeis_history
rtdtos_stock_list
rtdtos_last_stock_quotesSELECT symbol FROM rtd.tos_stock_list
rtdtos_historical_pricesSELECT symbol FROM rtd.tos_stock_list
rtdtos_stock_quotes_ticksSELECT symbol FROM rtd.tos_stock_list1

Task Table Examples

tos_stock_list:

code
AAPL
GOOGL

Primary Key Columns

TABLE_SCHEMATABLE_NAMECOLUMN_NAMERTD_FORMULACOMMENT
rtdtos_last_stock_quotessymbolPK
rtdtos_historical_pricessymbolPK
rtdtos_historical_pricesdate=Date()PK
rtdtos_stock_quotes_ticksidPK, IDENTITY

Real-Time Formulas

tos_last_stock_quotes

This table contains the latest data values for stocks, futures, and currency pairs from thinkorswim desktop.

column_namertd_formulacomment
symbolPK
datetime=DateTime()
date=Date()
time=Time()
description=RTD("tos.rtd",,"DESCRIPTION",[symbol])
last=RTD("tos.rtd",,"LAST",[symbol])
change=RTD("tos.rtd",,"NET_CHANGE",[symbol])
percent_change=RTD("tos.rtd",,"PERCENT_CHANGE",[symbol])
last_size=RTD("tos.rtd",,"LAST_SIZE",[symbol])
last_x=RTD("tos.rtd",,"LX",[symbol])
mark=RTD("tos.rtd",,"MARK",[symbol])
mark_change=RTD("tos.rtd",,"MARK_CHANGE",[symbol])
mark_percent_change=RTD("tos.rtd",,"MARK_PERCENT_CHANGE",[symbol])
bid=RTD("tos.rtd",,"BID",[symbol])
ask=RTD("tos.rtd",,"ASK",[symbol])
bid_size=RTD("tos.rtd",,"BID_SIZE",[symbol])
ask_size=RTD("tos.rtd",,"ASK_SIZE",[symbol])
bid_ask_size=RTD("tos.rtd",,"BA_SIZE",[symbol])
bid_x=RTD("tos.rtd",,"BX",[symbol])
ask_x=RTD("tos.rtd",,"AX",[symbol])
strength_meter=RTD("tos.rtd",,"STRENGTH_METER",[symbol])
open=RTD("tos.rtd",,"OPEN",[symbol])
high=RTD("tos.rtd",,"HIGH",[symbol])
low=RTD("tos.rtd",,"LOW",[symbol])
close=RTD("tos.rtd",,"CLOSE",[symbol])
volume=RTD("tos.rtd",,"VOLUME",[symbol])
open_int=RTD("tos.rtd",,"OPEN_INT",[symbol])
implied_vol=RTD("tos.rtd",,"IMPL_VOL",[symbol])
vol_index=RTD("tos.rtd",,"VOL_INDEX",[symbol])
front_vol=RTD("tos.rtd",,"FRONT_VOL",[symbol])
back_vol=RTD("tos.rtd",,"BACK_VOL",[symbol])
weighted_back_vol=RTD("tos.rtd",,"WEIGHTED_BACK_VOL",[symbol])
vol_diff=RTD("tos.rtd",,"VOL_DIFF",[symbol])
put_call_ratio=RTD("tos.rtd",,"PUT_CALL_RATIO",[symbol])
call_volume_index=RTD("tos.rtd",,"CALL_VOLUME_INDEX",[symbol])
put_volume_index=RTD("tos.rtd",,"PUT_VOLUME_INDEX",[symbol])
option_volume_index=RTD("tos.rtd",,"OPTION_VOLUME_INDEX",[symbol])
front_expected_move=RTD("tos.rtd",,"FRONT_EX_MOVE",[symbol])
back_expected_move=RTD("tos.rtd",,"BACK_EX_MOVE",[symbol])
expected_move_diff=RTD("tos.rtd",,"EX_MOVE_DIFF",[symbol])
beta=RTD("tos.rtd",,"BETA",[symbol])
high52=RTD("tos.rtd",,"52HIGH",[symbol])
low52=RTD("tos.rtd",,"52LOW",[symbol])
pe=RTD("tos.rtd",,"PE",[symbol])
eps=RTD("tos.rtd",,"EPS",[symbol])
market_cap=RTD("tos.rtd",,"MARKET_CAP",[symbol])
shares=RTD("tos.rtd",,"SHARES",[symbol])
dividend_yield=RTD("tos.rtd",,"YIELD",[symbol])
dividend_share=RTD("tos.rtd",,"DIV",[symbol])
last_update_timestamp

tos_historical_prices

This table stores daily historical records for stocks, futures, and currency pairs from thinkorswim desktop.

column_namertd_formulacomment
symbolPK
date=Date()PK
time=Time()
description=RTD("tos.rtd",,"DESCRIPTION",[symbol])
last=RTD("tos.rtd",,"LAST",[symbol])
change=RTD("tos.rtd",,"NET_CHANGE",[symbol])
percent_change=RTD("tos.rtd",,"PERCENT_CHANGE",[symbol])
last_size=RTD("tos.rtd",,"LAST_SIZE",[symbol])
last_x=RTD("tos.rtd",,"LX",[symbol])
mark=RTD("tos.rtd",,"MARK",[symbol])
mark_change=RTD("tos.rtd",,"MARK_CHANGE",[symbol])
mark_percent_change=RTD("tos.rtd",,"MARK_PERCENT_CHANGE",[symbol])
bid=RTD("tos.rtd",,"BID",[symbol])
ask=RTD("tos.rtd",,"ASK",[symbol])
bid_size=RTD("tos.rtd",,"BID_SIZE",[symbol])
ask_size=RTD("tos.rtd",,"ASK_SIZE",[symbol])
bid_ask_size=RTD("tos.rtd",,"BA_SIZE",[symbol])
bid_x=RTD("tos.rtd",,"BX",[symbol])
ask_x=RTD("tos.rtd",,"AX",[symbol])
strength_meter=RTD("tos.rtd",,"STRENGTH_METER",[symbol])
open=RTD("tos.rtd",,"OPEN",[symbol])
high=RTD("tos.rtd",,"HIGH",[symbol])
low=RTD("tos.rtd",,"LOW",[symbol])
close=RTD("tos.rtd",,"CLOSE",[symbol])
volume=RTD("tos.rtd",,"VOLUME",[symbol])
open_int=RTD("tos.rtd",,"OPEN_INT",[symbol])
implied_vol=RTD("tos.rtd",,"IMPL_VOL",[symbol])
vol_index=RTD("tos.rtd",,"VOL_INDEX",[symbol])
front_vol=RTD("tos.rtd",,"FRONT_VOL",[symbol])
back_vol=RTD("tos.rtd",,"BACK_VOL",[symbol])
weighted_back_vol=RTD("tos.rtd",,"WEIGHTED_BACK_VOL",[symbol])
vol_diff=RTD("tos.rtd",,"VOL_DIFF",[symbol])
put_call_ratio=RTD("tos.rtd",,"PUT_CALL_RATIO",[symbol])
call_volume_index=RTD("tos.rtd",,"CALL_VOLUME_INDEX",[symbol])
put_volume_index=RTD("tos.rtd",,"PUT_VOLUME_INDEX",[symbol])
option_volume_index=RTD("tos.rtd",,"OPTION_VOLUME_INDEX",[symbol])
front_expected_move=RTD("tos.rtd",,"FRONT_EX_MOVE",[symbol])
back_expected_move=RTD("tos.rtd",,"BACK_EX_MOVE",[symbol])
expected_move_diff=RTD("tos.rtd",,"EX_MOVE_DIFF",[symbol])
beta=RTD("tos.rtd",,"BETA",[symbol])
high52=RTD("tos.rtd",,"52HIGH",[symbol])
low52=RTD("tos.rtd",,"52LOW",[symbol])
pe=RTD("tos.rtd",,"PE",[symbol])
eps=RTD("tos.rtd",,"EPS",[symbol])
market_cap=RTD("tos.rtd",,"MARKET_CAP",[symbol])
shares=RTD("tos.rtd",,"SHARES",[symbol])
dividend_yield=RTD("tos.rtd",,"YIELD",[symbol])
dividend_share=RTD("tos.rtd",,"DIV",[symbol])
last_update_timestamp

tos_stock_quotes_ticks

This table stores tick-level historical data for stocks, futures, and currency pairs from thinkorswim desktop.

column_namertd_formulacomment
idPK, IDENTITY
symbol
datetime=DateTime()
date=Date()
time=Time()
description=RTD("tos.rtd",,"DESCRIPTION",[symbol])
last=RTD("tos.rtd",,"LAST",[symbol])
change=RTD("tos.rtd",,"NET_CHANGE",[symbol])
percent_change=RTD("tos.rtd",,"PERCENT_CHANGE",[symbol])
last_size=RTD("tos.rtd",,"LAST_SIZE",[symbol])
last_x=RTD("tos.rtd",,"LX",[symbol])
mark=RTD("tos.rtd",,"MARK",[symbol])
mark_change=RTD("tos.rtd",,"MARK_CHANGE",[symbol])
mark_percent_change=RTD("tos.rtd",,"MARK_PERCENT_CHANGE",[symbol])
bid=RTD("tos.rtd",,"BID",[symbol])
ask=RTD("tos.rtd",,"ASK",[symbol])
bid_size=RTD("tos.rtd",,"BID_SIZE",[symbol])
ask_size=RTD("tos.rtd",,"ASK_SIZE",[symbol])
bid_ask_size=RTD("tos.rtd",,"BA_SIZE",[symbol])
bid_x=RTD("tos.rtd",,"BX",[symbol])
ask_x=RTD("tos.rtd",,"AX",[symbol])
strength_meter=RTD("tos.rtd",,"STRENGTH_METER",[symbol])
open=RTD("tos.rtd",,"OPEN",[symbol])
high=RTD("tos.rtd",,"HIGH",[symbol])
low=RTD("tos.rtd",,"LOW",[symbol])
close=RTD("tos.rtd",,"CLOSE",[symbol])
volume=RTD("tos.rtd",,"VOLUME",[symbol])
open_int=RTD("tos.rtd",,"OPEN_INT",[symbol])
implied_vol=RTD("tos.rtd",,"IMPL_VOL",[symbol])
vol_index=RTD("tos.rtd",,"VOL_INDEX",[symbol])
front_vol=RTD("tos.rtd",,"FRONT_VOL",[symbol])
back_vol=RTD("tos.rtd",,"BACK_VOL",[symbol])
weighted_back_vol=RTD("tos.rtd",,"WEIGHTED_BACK_VOL",[symbol])
vol_diff=RTD("tos.rtd",,"VOL_DIFF",[symbol])
put_call_ratio=RTD("tos.rtd",,"PUT_CALL_RATIO",[symbol])
call_volume_index=RTD("tos.rtd",,"CALL_VOLUME_INDEX",[symbol])
put_volume_index=RTD("tos.rtd",,"PUT_VOLUME_INDEX",[symbol])
option_volume_index=RTD("tos.rtd",,"OPTION_VOLUME_INDEX",[symbol])
front_expected_move=RTD("tos.rtd",,"FRONT_EX_MOVE",[symbol])
back_expected_move=RTD("tos.rtd",,"BACK_EX_MOVE",[symbol])
expected_move_diff=RTD("tos.rtd",,"EX_MOVE_DIFF",[symbol])
beta=RTD("tos.rtd",,"BETA",[symbol])
high52=RTD("tos.rtd",,"52HIGH",[symbol])
low52=RTD("tos.rtd",,"52LOW",[symbol])
pe=RTD("tos.rtd",,"PE",[symbol])
eps=RTD("tos.rtd",,"EPS",[symbol])
market_cap=RTD("tos.rtd",,"MARKET_CAP",[symbol])
shares=RTD("tos.rtd",,"SHARES",[symbol])
dividend_yield=RTD("tos.rtd",,"YIELD",[symbol])
dividend_share=RTD("tos.rtd",,"DIV",[symbol])

This website is using cookies. By continuing to browse, you give us your consent to our use of cookies as explained in our Cookie Policy.