Retrieve Thinkorswim Quotes with RTD DB
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.
You can utilize either DDE or RTD formulas, with RTD being the preferred method. Note that thinkorswim desktop may crash if more than 200,000 topics are requested.
DDE formulas can be converted to RTD using the patches from the database template folders.
Data is retrieved from the thinkorswim desktop DDE server, which requires administrative privileges to run RTD DB.
To reduce server overhead, disable any unusable columns.
The DDE server does not provide an actual data time field.
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_schema | table_name | load_code | is_history |
---|---|---|---|
rtd | tos_stock_list | ||
rtd | tos_last_stock_quotes | SELECT symbol FROM rtd.tos_stock_list | |
rtd | tos_historical_prices | SELECT symbol FROM rtd.tos_stock_list | |
rtd | tos_stock_quotes_ticks | SELECT symbol FROM rtd.tos_stock_list | 1 |
Task Table Examples
tos_stock_list:
code |
---|
AAPL |
GOOGL |
Primary Key Columns
table_schema | table_name | column_name | rtd_formula | comment |
---|---|---|---|---|
rtd | tos_last_stock_quotes | symbol | PK | |
rtd | tos_historical_prices | symbol | PK | |
rtd | tos_historical_prices | date | =Date() | PK |
rtd | tos_stock_quotes_ticks | id | PK, 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_name | rtd_formula | comment |
---|---|---|
symbol | PK | |
datetime | =DateTime() | |
date | =Date() | |
time | =Time() | |
description | =TOS|DESCRIPTION![symbol] | |
last | =TOS|LAST![symbol] | |
change | =TOS|NET_CHANGE![symbol] | |
percent_change | =TOS|PERCENT_CHANGE![symbol] | |
last_size | =TOS|LAST_SIZE![symbol] | |
last_x | =TOS|LX![symbol] | |
mark | =TOS|MARK![symbol] | |
mark_change | =TOS|MARK_CHANGE![symbol] | |
mark_percent_change | =TOS|MARK_PERCENT_CHANGE![symbol] | |
bid | =TOS|BID![symbol] | |
ask | =TOS|ASK![symbol] | |
bid_size | =TOS|BID_SIZE![symbol] | |
ask_size | =TOS|ASK_SIZE![symbol] | |
bid_ask_size | =TOS|BA_SIZE![symbol] | |
bid_x | =TOS|BX![symbol] | |
ask_x | =TOS|AX![symbol] | |
strength_meter | =TOS|STRENGTH_METER![symbol] | |
open | =TOS|OPEN![symbol] | |
high | =TOS|HIGH![symbol] | |
low | =TOS|LOW![symbol] | |
close | =TOS|CLOSE![symbol] | |
volume | =TOS|VOLUME![symbol] | |
open_int | =TOS|OPEN_INT![symbol] | |
implied_vol | =TOS|IMPL_VOL![symbol] | |
vol_index | =TOS|VOL_INDEX![symbol] | |
front_vol | =TOS|FRONT_VOL![symbol] | |
back_vol | =TOS|BACK_VOL![symbol] | |
weighted_back_vol | =TOS|WEIGHTED_BACK_VOL![symbol] | |
vol_diff | =TOS|VOL_DIFF![symbol] | |
put_call_ratio | =TOS|PUT_CALL_RATIO![symbol] | |
call_volume_index | =TOS|CALL_VOLUME_INDEX![symbol] | |
put_volume_index | =TOS|PUT_VOLUME_INDEX![symbol] | |
option_volume_index | =TOS|OPTION_VOLUME_INDEX![symbol] | |
front_expected_move | =TOS|FRONT_EX_MOVE![symbol] | |
back_expected_move | =TOS|BACK_EX_MOVE![symbol] | |
expected_move_diff | =TOS|EX_MOVE_DIFF![symbol] | |
beta | =TOS|BETA![symbol] | |
high52 | =TOS|'52HIGH'![symbol] | |
low52 | =TOS|'52LOW'![symbol] | |
pe | =TOS|PE![symbol] | |
eps | =TOS|EPS![symbol] | |
market_cap | =TOS|MARKET_CAP![symbol] | |
shares | =TOS|SHARES![symbol] | |
dividend_yield | =TOS|YIELD![symbol] | |
dividend_share | =TOS|DIV![symbol] | |
last_update_timestamp |
tos_historical_prices
This table stores daily historical records for stocks, futures, and currency pairs from thinkorswim desktop.
column_name | rtd_formula | comment |
---|---|---|
symbol | PK | |
date | =Date() | PK |
time | =Time() | |
description | =TOS|DESCRIPTION![symbol] | |
last | =TOS|LAST![symbol] | |
change | =TOS|NET_CHANGE![symbol] | |
percent_change | =TOS|PERCENT_CHANGE![symbol] | |
last_size | =TOS|LAST_SIZE![symbol] | |
last_x | =TOS|LX![symbol] | |
mark | =TOS|MARK![symbol] | |
mark_change | =TOS|MARK_CHANGE![symbol] | |
mark_percent_change | =TOS|MARK_PERCENT_CHANGE![symbol] | |
bid | =TOS|BID![symbol] | |
ask | =TOS|ASK![symbol] | |
bid_size | =TOS|BID_SIZE![symbol] | |
ask_size | =TOS|ASK_SIZE![symbol] | |
bid_ask_size | =TOS|BA_SIZE![symbol] | |
bid_x | =TOS|BX![symbol] | |
ask_x | =TOS|AX![symbol] | |
strength_meter | =TOS|STRENGTH_METER![symbol] | |
open | =TOS|OPEN![symbol] | |
high | =TOS|HIGH![symbol] | |
low | =TOS|LOW![symbol] | |
close | =TOS|CLOSE![symbol] | |
volume | =TOS|VOLUME![symbol] | |
open_int | =TOS|OPEN_INT![symbol] | |
implied_vol | =TOS|IMPL_VOL![symbol] | |
vol_index | =TOS|VOL_INDEX![symbol] | |
front_vol | =TOS|FRONT_VOL![symbol] | |
back_vol | =TOS|BACK_VOL![symbol] | |
weighted_back_vol | =TOS|WEIGHTED_BACK_VOL![symbol] | |
vol_diff | =TOS|VOL_DIFF![symbol] | |
put_call_ratio | =TOS|PUT_CALL_RATIO![symbol] | |
call_volume_index | =TOS|CALL_VOLUME_INDEX![symbol] | |
put_volume_index | =TOS|PUT_VOLUME_INDEX![symbol] | |
option_volume_index | =TOS|OPTION_VOLUME_INDEX![symbol] | |
front_expected_move | =TOS|FRONT_EX_MOVE![symbol] | |
back_expected_move | =TOS|BACK_EX_MOVE![symbol] | |
expected_move_diff | =TOS|EX_MOVE_DIFF![symbol] | |
beta | =TOS|BETA![symbol] | |
high52 | =TOS|'52HIGH'![symbol] | |
low52 | =TOS|'52LOW'![symbol] | |
pe | =TOS|PE![symbol] | |
eps | =TOS|EPS![symbol] | |
market_cap | =TOS|MARKET_CAP![symbol] | |
shares | =TOS|SHARES![symbol] | |
dividend_yield | =TOS|YIELD![symbol] | |
dividend_share | =TOS|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_name | rtd_formula | comment |
---|---|---|
id | PK, IDENTITY | |
symbol | ||
datetime | =DateTime() | |
date | =Date() | |
time | =Time() | |
description | =TOS|DESCRIPTION![symbol] | |
last | =TOS|LAST![symbol] | |
change | =TOS|NET_CHANGE![symbol] | |
percent_change | =TOS|PERCENT_CHANGE![symbol] | |
last_size | =TOS|LAST_SIZE![symbol] | |
last_x | =TOS|LX![symbol] | |
mark | =TOS|MARK![symbol] | |
mark_change | =TOS|MARK_CHANGE![symbol] | |
mark_percent_change | =TOS|MARK_PERCENT_CHANGE![symbol] | |
bid | =TOS|BID![symbol] | |
ask | =TOS|ASK![symbol] | |
bid_size | =TOS|BID_SIZE![symbol] | |
ask_size | =TOS|ASK_SIZE![symbol] | |
bid_ask_size | =TOS|BA_SIZE![symbol] | |
bid_x | =TOS|BX![symbol] | |
ask_x | =TOS|AX![symbol] | |
strength_meter | =TOS|STRENGTH_METER![symbol] | |
open | =TOS|OPEN![symbol] | |
high | =TOS|HIGH![symbol] | |
low | =TOS|LOW![symbol] | |
close | =TOS|CLOSE![symbol] | |
volume | =TOS|VOLUME![symbol] | |
open_int | =TOS|OPEN_INT![symbol] | |
implied_vol | =TOS|IMPL_VOL![symbol] | |
vol_index | =TOS|VOL_INDEX![symbol] | |
front_vol | =TOS|FRONT_VOL![symbol] | |
back_vol | =TOS|BACK_VOL![symbol] | |
weighted_back_vol | =TOS|WEIGHTED_BACK_VOL![symbol] | |
vol_diff | =TOS|VOL_DIFF![symbol] | |
put_call_ratio | =TOS|PUT_CALL_RATIO![symbol] | |
call_volume_index | =TOS|CALL_VOLUME_INDEX![symbol] | |
put_volume_index | =TOS|PUT_VOLUME_INDEX![symbol] | |
option_volume_index | =TOS|OPTION_VOLUME_INDEX![symbol] | |
front_expected_move | =TOS|FRONT_EX_MOVE![symbol] | |
back_expected_move | =TOS|BACK_EX_MOVE![symbol] | |
expected_move_diff | =TOS|EX_MOVE_DIFF![symbol] | |
beta | =TOS|BETA![symbol] | |
high52 | =TOS|'52HIGH'![symbol] | |
low52 | =TOS|'52LOW'![symbol] | |
pe | =TOS|PE![symbol] | |
eps | =TOS|EPS![symbol] | |
market_cap | =TOS|MARKET_CAP![symbol] | |
shares | =TOS|SHARES![symbol] | |
dividend_yield | =TOS|YIELD![symbol] | |
dividend_share | =TOS|DIV![symbol] |