otp.SqlQuery#
- class SqlQuery(sql_statement, merge_all_symbols=False, separate_dbname=False)#
Bases:
SqlQueryConstructs SQL query object.
- Parameters:
sql_statement (str) – The SQL statement string.
merge_all_symbols (bool) – If set to True, ticks returned by the query for all symbols get merged into a single time series.
separate_dbname (bool) – If set to True, and
merge_all_symbolsis set to True, SYMBOL_NAME field contains a symbol name without the database name, and DB_NAME field contains the database name for a symbol.
Examples
Select two fields from a single tick type and symbol and return first three ticks from a single day:
>>> otp.run( ... otp.SqlQuery( ... "select PRICE,SIZE from US_COMP_SAMPLE.TRD" ... " where symbol_name = 'AAPL'" ... " and start_time = '2024-02-01 00:00:00 EST5EDT' and end_time = '2024-02-02 00:00:00 EST5EDT'" ... " limit 3" ... ), ... ) Time PRICE SIZE 0 2024-02-01 04:00:00.008283417 186.50 6 1 2024-02-01 04:00:00.008290927 185.59 1 2 2024-02-01 04:00:00.008291153 185.49 107
Join quotes and trades:
>>> otp.run( ... otp.SqlQuery( ... "select t.PRICE,q.ASK_PRICE,q.BID_PRICE" ... " from US_COMP_SAMPLE.TRD t join US_COMP_SAMPLE.QTE q" ... " on sametime_as_existing(t.timestamp, q.timestamp, 0) = TRUE" ... " where t.symbol_name = 'AAPL' and q.symbol_name = 'AAPL'" ... " and start_time = '2024-02-01 00:00:00 EST5EDT' and end_time = '2024-02-02 00:00:00 EST5EDT'" ... " limit 2" ... ), ... ) Time T.PRICE Q.ASK_PRICE Q.BID_PRICE 0 2024-02-01 04:00:00.008283417 186.50 187.02 185.49 1 2024-02-01 04:00:00.008290927 185.59 187.02 185.49
Calculate average price of trades across several symbols:
>>> otp.run( ... otp.SqlQuery( ... "select COUNT(*) as COUNT, AVG(PRICE) as AVG_PRICE" ... " from US_COMP_SAMPLE.TRD" ... " where symbol_name in ('AAPL', 'AAL')" ... " and start_time = '2024-02-01 00:00:00 EST5EDT' and end_time = '2024-02-02 00:00:00 EST5EDT'", ... merge_all_symbols=True ... ), ... ) Time COUNT AVG_PRICE 0 2024-02-02 921779.0 166.697838
See also