Data Retrieval - Tick#

This section contains 6 examples for Data Retrieval - Tick using the onetick-py.
Each example is a self-contained script that can be run against the OneTick Cloud sample databases.

# onetick-py WebAPI configuration for OneTick Cloud
import os
os.environ['OTP_WEBAPI'] = '1'
os.environ['OTP_HTTP_ADDRESS'] = 'https://rest.cloud.onetick.com'
os.environ['OTP_ACCESS_TOKEN_URL'] = 'https://cloud-auth.parent.onetick.com/realms/OMD/protocol/openid-connect/token'
os.environ['OTP_CLIENT_ID'] = '__FILL_IN__'
os.environ['OTP_CLIENT_SECRET'] = '__FILL_IN__'

Trades#

Retrieve Exchange trades from the US_COMP_SAMPLE database for CSCO, across the specified time range.

import onetick.py as otp

data = otp.DataSource(db='US_COMP_SAMPLE', tick_type='TRD')
# Return first 100 Rows
data = data.limit(100)
result = otp.run(data,
                 start=otp.dt(2024, 1, 3, 9, 30),
                 end=otp.dt(2024, 1, 3, 9, 40),
                 timezone='America/New_York',
                 symbols='CSCO')
result
Time EXCHANGE COND STOP_STOCK SOURCE TRF TTE TICKER PRICE DELETED_TIME TICK_STATUS SIZE CORR SEQ_NUM TRADE_ID PARTICIPANT_TIME TRF_TIME OMDSEQ
0 2024-01-03 09:30:00.065443591 Z @ I N 0 CSCO 50.0200 1969-12-31 19:00:00 0 2 0 169103 42 2024-01-03 09:30:00.065250000 1969-12-31 19:00:00.000000000 0
1 2024-01-03 09:30:00.111130049 Z @ I N 0 CSCO 50.1600 1969-12-31 19:00:00 0 3 0 169148 43 2024-01-03 09:30:00.110938000 1969-12-31 19:00:00.000000000 0
2 2024-01-03 09:30:00.127459523 V @ N 0 CSCO 50.1700 1969-12-31 19:00:00 0 100 0 169181 13 2024-01-03 09:30:00.065044730 1969-12-31 19:00:00.000000000 0
3 2024-01-03 09:30:00.128498068 Z @F I N 1 CSCO 50.1700 1969-12-31 19:00:00 0 5 0 169182 44 2024-01-03 09:30:00.128306000 1969-12-31 19:00:00.000000000 0
4 2024-01-03 09:30:00.135190071 Q @FTI N 1 CSCO 50.1300 1969-12-31 19:00:00 0 46 0 169193 349 2024-01-03 09:30:00.135173836 1969-12-31 19:00:00.000000000 0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
95 2024-01-03 09:30:00.897416820 Q @F I N 1 CSCO 50.0800 1969-12-31 19:00:00 0 51 0 171857 365 2024-01-03 09:30:00.897398456 1969-12-31 19:00:00.000000000 3
96 2024-01-03 09:30:00.897444128 Q @F I N 1 CSCO 50.0800 1969-12-31 19:00:00 0 29 0 171858 366 2024-01-03 09:30:00.897428791 1969-12-31 19:00:00.000000000 4
97 2024-01-03 09:30:00.897474806 Q @F I N 1 CSCO 50.0800 1969-12-31 19:00:00 0 12 0 171859 367 2024-01-03 09:30:00.897456284 1969-12-31 19:00:00.000000000 5
98 2024-01-03 09:30:00.897476583 Q @F I N 1 CSCO 50.0800 1969-12-31 19:00:00 0 2 0 171860 368 2024-01-03 09:30:00.897456284 1969-12-31 19:00:00.000000000 6
99 2024-01-03 09:30:00.897670983 D @ N Q 0 CSCO 50.0797 1969-12-31 19:00:00 0 100 0 171862 100 2024-01-03 09:30:00.896374950 2024-01-03 09:30:00.897637536 7

100 rows × 18 columns

Quotes#

Retrieve Exchange quotes from the US_COMP_SAMPLE database for CSCO, across the specified time range.

import onetick.py as otp

data = otp.DataSource(db='US_COMP_SAMPLE', tick_type='QTE')
# Return first 100 Rows
data = data.limit(100)
result = otp.run(data,
                 start=otp.dt(2024, 1, 3, 9, 30),
                 end=otp.dt(2024, 1, 3, 9, 40),
                 timezone='America/New_York',
                 symbols='CSCO')
result
Time EXCHANGE CORR DELETED_TIME TICK_STATUS COND NBBO_IND FINRA_BBO_IND FINRA_ADF_MPID_IND SOURCE ... TICKER BID_PRICE BID_SIZE ASK_PRICE ASK_SIZE SEQ_NUM PARTICIPANT_TIME FINRA_ADF_TIME SECURITY_STATUS_IND OMDSEQ
0 2024-01-03 09:30:00.001830617 Z 1969-12-31 19:00:00 0 R 4 N ... CSCO 50.00 9 50.18 2 760290 2024-01-03 09:30:00.001336000 1969-12-31 19:00:00 0
1 2024-01-03 09:30:00.002078349 K 1969-12-31 19:00:00 0 R 0 N ... CSCO 49.80 1 50.37 1 760345 2024-01-03 09:30:00.001881000 1969-12-31 19:00:00 0
2 2024-01-03 09:30:00.002215206 Q 1969-12-31 19:00:00 0 R 0 N ... CSCO 50.00 6 50.20 7 760370 2024-01-03 09:30:00.002199928 1969-12-31 19:00:00 1
3 2024-01-03 09:30:00.002341904 K 1969-12-31 19:00:00 0 R 0 N ... CSCO 49.80 1 50.37 1 760434 2024-01-03 09:30:00.002147000 1969-12-31 19:00:00 2
4 2024-01-03 09:30:00.002524728 Z 1969-12-31 19:00:00 0 R 4 N ... CSCO 50.00 9 50.18 3 760445 2024-01-03 09:30:00.002344000 1969-12-31 19:00:00 3
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
95 2024-01-03 09:30:00.546456694 K 1969-12-31 19:00:00 0 R 0 N ... CSCO 50.00 2 50.17 2 777868 2024-01-03 09:30:00.546282000 1969-12-31 19:00:00 14
96 2024-01-03 09:30:00.546476188 Z 1969-12-31 19:00:00 0 R 0 N ... CSCO 50.01 2 50.16 1 777869 2024-01-03 09:30:00.546298000 1969-12-31 19:00:00 15
97 2024-01-03 09:30:00.546535306 K 1969-12-31 19:00:00 0 R 0 N ... CSCO 50.00 2 50.17 2 777873 2024-01-03 09:30:00.546361000 1969-12-31 19:00:00 16
98 2024-01-03 09:30:00.546541854 U 1969-12-31 19:00:00 0 R 0 N ... CSCO 50.00 2 50.17 2 777874 2024-01-03 09:30:00.546367116 1969-12-31 19:00:00 17
99 2024-01-03 09:30:00.546550892 K 1969-12-31 19:00:00 0 R 0 N ... CSCO 50.00 2 50.17 2 777875 2024-01-03 09:30:00.546374000 1969-12-31 19:00:00 18

100 rows × 26 columns

NBBO#

Retrieve NBBO quotes from the US_COMP_SAMPLE database for CSCO, across the specified time range.

import onetick.py as otp

data = otp.DataSource(db='US_COMP_SAMPLE', tick_type='NBBO')
# Return first 100 Rows
data = data.limit(100)
result = otp.run(data,
                 start=otp.dt(2024, 1, 3, 9, 30),
                 end=otp.dt(2024, 1, 3, 9, 40),
                 timezone='America/New_York',
                 symbols='CSCO')
result
Time BID_PRICE BID_SIZE BID_SIZE_TOTAL BID_EXCHANGE ASK_PRICE ASK_SIZE ASK_SIZE_TOTAL ASK_EXCHANGE IS_PRE_OPEN OMDSEQ
0 2024-01-03 09:30:00.001830617 50.00 9 14 Z 50.18 2 2 Z 0 0
1 2024-01-03 09:30:00.002215206 50.00 9 15 Z 50.18 2 2 Z 0 0
2 2024-01-03 09:30:00.002524728 50.00 9 15 Z 50.18 3 3 Z 0 1
3 2024-01-03 09:30:00.003295288 50.00 10 16 Z 50.18 3 3 Z 0 0
4 2024-01-03 09:30:00.010072539 50.00 10 16 Z 50.18 4 4 Z 0 0
... ... ... ... ... ... ... ... ... ... ... ...
95 2024-01-03 09:30:00.652918680 50.06 2 4 U 50.09 2 3 U 0 2
96 2024-01-03 09:30:00.652981633 50.06 2 2 U 50.09 2 3 U 0 3
97 2024-01-03 09:30:00.652986724 50.05 2 4 Z 50.09 2 3 U 0 4
98 2024-01-03 09:30:00.653005094 50.05 2 6 Z 50.09 2 3 U 0 0
99 2024-01-03 09:30:00.653037674 50.05 2 6 Z 50.09 3 5 Z 0 1

100 rows × 11 columns

Indicative Prices#

Retrieve Indicative Auction Prices from the LSE_SAMPLE database for VOD, across the specified time range.

import onetick.py as otp

data = otp.DataSource(db='LSE_SAMPLE', tick_type='IND')
# Return first 100 Rows
data = data.limit(100)
result = otp.run(data,
                 start=otp.dt(2024, 1, 3),
                 end=otp.dt(2024, 1, 4),
                 timezone='Europe/London',
                 symbols='VOD')
result
Time EXCH_TIME PRICE SIZE IMB_SIDE IMB_VOLUME AUCTION_TYPE OMDSEQ
0 2024-01-03 07:50:00.075 2024-01-03 07:50:00.074938266 69.00 6000 B 2900 O 28
1 2024-01-03 07:50:00.076 2024-01-03 07:50:00.075324726 69.00 6880 B 2020 O 5
2 2024-01-03 07:50:00.085 2024-01-03 07:50:00.085221086 69.00 7370 B 1530 O 8
3 2024-01-03 07:50:00.088 2024-01-03 07:50:00.087546226 69.00 8870 B 30 O 1
4 2024-01-03 07:50:00.090 2024-01-03 07:50:00.089537586 68.28 9505 B 1945 O 8
... ... ... ... ... ... ... ... ...
95 2024-01-03 07:55:00.003 2024-01-03 07:55:00.003081449 69.00 116438 B 4774 O 5
96 2024-01-03 07:55:00.534 2024-01-03 07:55:00.533325177 68.35 148938 B 29604 O 0
97 2024-01-03 07:55:00.644 2024-01-03 07:55:00.643580237 68.43 148938 B 1256 O 1
98 2024-01-03 07:55:00.644 2024-01-03 07:55:00.643616077 68.35 148938 B 29604 O 2
99 2024-01-03 07:55:05.134 2024-01-03 07:55:05.133979316 68.35 156237 B 22305 O 1

100 rows × 8 columns

Market Phases#

Retrieve Exchange market phase changes from the LSE_SAMPLE database for VOD, across the specified time range.

import onetick.py as otp

data = otp.DataSource(db='LSE_SAMPLE', tick_type='MKT')

result = otp.run(data,
                 start=otp.dt(2024, 1, 3),
                 end=otp.dt(2024, 1, 4),
                 timezone='Europe/London',
                 symbols='VOD')
result
Time MKT_PHASE QUOTE_BOOK_STATUS OFF_BOOK_STATUS OMD_STATUS OMDSEQ
0 2024-01-03 07:15:00.037 T R 77
1 2024-01-03 07:50:00.067 a T O 134
2 2024-01-03 08:00:06.226 T T T 26
3 2024-01-03 16:30:00.107 d T C 91
4 2024-01-03 16:35:07.331 u T t 0
5 2024-01-03 16:40:00.025 b T p 34
6 2024-01-03 17:15:00.080 x T p 106
7 2024-01-03 17:30:00.041 c T c 34
8 2024-01-03 17:30:00.041 c c c 0

Short Interest#

Query short interest data for AAPL over the last 7 days.
Returns all available short interest metrics for the specified date range.

import onetick.py as otp

data = otp.DataSource(db='US_SHORT_INT', tick_type='DAY')

result = otp.run(data,
                 symbols='AAPL',
                 start=otp.now() - otp.Day(7),
                 end=otp.now(),
                 timezone='America/New_York')

# Display the result
result

Time

SHORT_VOLUME

SHORT_EXEMPT_VOLUME

VOLUME

TRF

OMDSEQ

0

2026-07-27 20:15:00

7.12266e+06

36753

1.76945e+07

BQN

30

1

2026-07-28 20:15:00

9.60599e+06

42284

1.90899e+07

BQN

32

2

2026-07-29 20:15:00

8.47753e+06

43470

1.76618e+07

BQN

30

3

2026-07-30 20:15:00

9.69986e+06

39078

2.02463e+07

BQN

29

4

2026-07-31 20:15:00

2.36486e+07

822016

4.49851e+07

BQN

31