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 |