Symbol Selection#
This section contains 9 examples for Symbol Selection 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__'
Data Retrieval with Single Symbol#
Retrieve Data for a single symbol, by passing a single symbol string into otp.run.
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
Data Retrieval with List of Symbols#
Retrieve Data for a set of symbols, by passing a List of Symbols in otp.run.
import onetick.py as otp
# Define the DataSource
data = otp.DataSource(db='US_COMP_SAMPLE', tick_type='TRD')
# Limit to 1000 rows
data = data.limit(1000)
# Specify the Symbol List and Time Range
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', 'MSFT'])
result
{'CSCO': Time EXCHANGE COND STOP_STOCK SOURCE TRF TTE \
0 2024-01-03 09:30:00.065443591 Z @ I N 0
1 2024-01-03 09:30:00.111130049 Z @ I N 0
2 2024-01-03 09:30:00.127459523 V @ N 0
3 2024-01-03 09:30:00.128498068 Z @F I N 1
4 2024-01-03 09:30:00.135190071 Q @FTI N 1
.. ... ... ... ... ... .. ..
995 2024-01-03 09:30:07.378682043 Q @ I N 0
996 2024-01-03 09:30:07.378683771 Q @ I N 0
997 2024-01-03 09:30:07.379088757 Z @F N 1
998 2024-01-03 09:30:07.390014965 P @ N 0
999 2024-01-03 09:30:07.396341167 D @4 I N Q 1
TICKER PRICE DELETED_TIME TICK_STATUS SIZE CORR SEQ_NUM \
0 CSCO 50.02 1969-12-31 19:00:00 0 2 0 169103
1 CSCO 50.16 1969-12-31 19:00:00 0 3 0 169148
2 CSCO 50.17 1969-12-31 19:00:00 0 100 0 169181
3 CSCO 50.17 1969-12-31 19:00:00 0 5 0 169182
4 CSCO 50.13 1969-12-31 19:00:00 0 46 0 169193
.. ... ... ... ... ... ... ...
995 CSCO 50.12 1969-12-31 19:00:00 0 2 0 192393
996 CSCO 50.12 1969-12-31 19:00:00 0 50 0 192394
997 CSCO 50.12 1969-12-31 19:00:00 0 100 0 192396
998 CSCO 50.12 1969-12-31 19:00:00 0 100 0 192406
999 CSCO 50.09 1969-12-31 19:00:00 0 1 0 192414
TRADE_ID PARTICIPANT_TIME TRF_TIME \
0 42 2024-01-03 09:30:00.065250000 1969-12-31 19:00:00.000000000
1 43 2024-01-03 09:30:00.110938000 1969-12-31 19:00:00.000000000
2 13 2024-01-03 09:30:00.065044730 1969-12-31 19:00:00.000000000
3 44 2024-01-03 09:30:00.128306000 1969-12-31 19:00:00.000000000
4 349 2024-01-03 09:30:00.135173836 1969-12-31 19:00:00.000000000
.. ... ... ...
995 636 2024-01-03 09:30:07.378665797 1969-12-31 19:00:00.000000000
996 637 2024-01-03 09:30:07.378665797 1969-12-31 19:00:00.000000000
997 138 2024-01-03 09:30:07.378898000 1969-12-31 19:00:00.000000000
998 337 2024-01-03 09:30:07.389672607 1969-12-31 19:00:00.000000000
999 453 2024-01-03 09:30:02.589000000 2024-01-03 09:30:07.396318790
OMDSEQ
0 0
1 0
2 0
3 0
4 0
.. ...
995 2
996 3
997 0
998 0
999 0
[1000 rows x 18 columns],
'MSFT': Time EXCHANGE COND STOP_STOCK SOURCE TRF TTE \
0 2024-01-03 09:30:00.001141139 Q @FTI N 1
1 2024-01-03 09:30:00.001232095 Q @FTI N 1
2 2024-01-03 09:30:00.001348140 Q @ TI N 0
3 2024-01-03 09:30:00.001835253 Z @ I N 0
4 2024-01-03 09:30:00.002218671 P @ T N 0
.. ... ... ... ... ... .. ..
995 2024-01-03 09:30:01.980424744 Z @F I N 1
996 2024-01-03 09:30:01.980430260 Z @F I N 1
997 2024-01-03 09:30:01.980438693 Z @F I N 1
998 2024-01-03 09:30:01.980454705 Z @F I N 1
999 2024-01-03 09:30:01.980463011 Z @F I N 1
TICKER PRICE DELETED_TIME TICK_STATUS SIZE CORR SEQ_NUM \
0 MSFT 368.990 1969-12-31 19:00:00 0 9 0 251795
1 MSFT 369.000 1969-12-31 19:00:00 0 10 0 251798
2 MSFT 369.000 1969-12-31 19:00:00 0 90 0 251800
3 MSFT 368.995 1969-12-31 19:00:00 0 1 0 251803
4 MSFT 368.990 1969-12-31 19:00:00 0 100 0 251808
.. ... ... ... ... ... ... ...
995 MSFT 369.100 1969-12-31 19:00:00 0 1 0 262423
996 MSFT 369.100 1969-12-31 19:00:00 0 1 0 262424
997 MSFT 369.100 1969-12-31 19:00:00 0 1 0 262425
998 MSFT 369.100 1969-12-31 19:00:00 0 1 0 262426
999 MSFT 369.100 1969-12-31 19:00:00 0 1 0 262427
TRADE_ID PARTICIPANT_TIME TRF_TIME OMDSEQ
0 2626 2024-01-03 09:30:00.001115161 1969-12-31 19:00:00 0
1 2627 2024-01-03 09:30:00.001215210 1969-12-31 19:00:00 1
2 2628 2024-01-03 09:30:00.001330517 1969-12-31 19:00:00 2
3 340 2024-01-03 09:30:00.001612000 1969-12-31 19:00:00 3
4 3095 2024-01-03 09:30:00.001875282 1969-12-31 19:00:00 0
.. ... ... ... ...
995 501 2024-01-03 09:30:01.980246000 1969-12-31 19:00:00 36
996 502 2024-01-03 09:30:01.980252000 1969-12-31 19:00:00 37
997 503 2024-01-03 09:30:01.980258000 1969-12-31 19:00:00 38
998 504 2024-01-03 09:30:01.980269000 1969-12-31 19:00:00 39
999 505 2024-01-03 09:30:01.980279000 1969-12-31 19:00:00 40
[1000 rows x 18 columns]}
Data Retrieval with Symbol Mask#
Retrieve Data for symbols matched by pattern.
import onetick.py as otp
# Define your symbol mask, e.g., all symbols starting with 'AA'
symbol_mask = 'AA%'
# Get all symbols matching the mask
symbols = otp.Symbols(db='US_COMP_SAMPLE_DAILY', pattern=symbol_mask)
# Define Data Source, in this case for DAY records
data = otp.DataSource(db='US_COMP_SAMPLE_DAILY', tick_type='DAY')
# Merge data into a single result across symbols
merged_data = otp.merge(data, symbols=symbols, identify_input_ts=True)
# Run query, with defined time range and time zone
result = otp.run(merged_data,
start=otp.dt(2024, 1, 2),
end=otp.dt(2024, 1, 3),
timezone='America/New_York')
result
| Time | CLOSE | EXCHANGE | HIGH | LOW | OMDSEQ | OPEN | PRICE_CLOSING_AUCTION | PRICE_OPENING_AUCTION | VOLUME | ... | VOLUME_MAIN_SESSION | VOLUME_ODD_LOT | VOLUME_OFF_EXCHANGE | VOLUME_OPENING_AUCTION | VOLUME_POST_MARKET | VOLUME_PRE_MARKET | VOLUME_ROUND_LOT | VWAP | SYMBOL_NAME | TICK_TYPE | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2024-01-02 20:15:00 | 33.280 | A | 33.89 | 33.0800 | 18 | 33.890 | NaN | NaN | 3744 | ... | 3744 | 920 | 0 | 0 | 0 | 0 | 2824 | 33.226834 | AA | DAY |
| 1 | 2024-01-02 20:15:00 | 33.290 | B | 33.94 | 33.0500 | 19 | 33.420 | NaN | NaN | 16712 | ... | 16712 | 5119 | 0 | 0 | 0 | 0 | 11593 | 33.411275 | AA | DAY |
| 2 | 2024-01-02 20:15:00 | 33.300 | C | 33.94 | 33.0500 | 20 | 33.455 | NaN | NaN | 12495 | ... | 12495 | 5195 | 0 | 0 | 0 | 0 | 7300 | 33.217808 | AA | DAY |
| 3 | 2024-01-02 20:15:00 | 33.285 | D | 33.97 | 33.0428 | 21 | 33.435 | NaN | NaN | 1503127 | ... | 1361152 | 123934 | 1503127 | 0 | 138988 | 2987 | 1379193 | 33.474980 | AA | DAY |
| 4 | 2024-01-02 20:15:00 | 33.310 | H | 33.95 | 33.0600 | 22 | 33.620 | NaN | NaN | 49660 | ... | 49660 | 11096 | 0 | 0 | 0 | 0 | 38564 | 33.526722 | AA | DAY |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 362 | 2024-01-02 20:15:00 | 65.470 | V | 65.75 | 65.3300 | 380 | 65.610 | NaN | NaN | 14151 | ... | 14151 | 1021 | 0 | 0 | 0 | 0 | 13130 | 65.445476 | AAXJ | DAY |
| 363 | 2024-01-02 20:15:00 | 65.435 | X | 65.62 | 65.3600 | 381 | 65.620 | NaN | NaN | 12857 | ... | 12857 | 172 | 0 | 0 | 0 | 0 | 12685 | 65.493074 | AAXJ | DAY |
| 364 | 2024-01-02 20:15:00 | 65.465 | Y | 65.73 | 65.3200 | 382 | 65.615 | NaN | NaN | 15640 | ... | 15640 | 610 | 0 | 0 | 0 | 0 | 15030 | 65.519747 | AAXJ | DAY |
| 365 | 2024-01-02 20:15:00 | 65.440 | Z | 65.73 | 65.3100 | 383 | 65.620 | NaN | NaN | 48594 | ... | 48594 | 4091 | 0 | 0 | 0 | 0 | 44503 | 65.490934 | AAXJ | DAY |
| 366 | 2024-01-02 20:15:00 | 65.440 | 65.76 | 65.3050 | 384 | 65.470 | NaN | NaN | 641995 | ... | 622992 | 36082 | 159440 | 2733 | 0 | 40 | 605913 | 65.487922 | AAXJ | DAY |
367 rows × 21 columns
Data Retrieval Across Databases#
Retrieve Trades for Symbols across Databases for the specified time range.
The initial otp.DataSource is defined without specifying the Database or symbol.
The schema of the Data Source is specified manually.
Symbols are specified including the Database name, with format [Database]::[Symbol] e.g. LSE::VOD.
import onetick.py as otp
# Define the Symbol List
sym_list = ['LSE::VOD', 'EURONEXT::AF', 'XETRA::DBK', 'LSE::TSCO',
'LSE::SHEL', 'EURONEXT::AF', 'LSE::VOD', 'XETRA::DBK']
# Define Data Source, in this case without specifying the Database or symbol name.
# As the schema is not yet known, set the schema policy to manual
trd = otp.DataSource(tick_type='TRD', schema_policy='manual')
# Define the output schema
trd.schema.set(
PRICE=float,
SIZE=int,
TRADE_VENUE=str,
BOOK_TYPE=str,
TRADE_PERIOD=str
)
# Specify Output Fields
trd = trd[['PRICE', 'SIZE', 'TRADE_VENUE', 'BOOK_TYPE', 'TRADE_PERIOD']]
# Filter on Lit Order Book
trd = trd.where(trd['BOOK_TYPE'] == '0')
# Filter on Continuous Trading
trd = trd.where(trd['TRADE_PERIOD'] == '-')
# Create a single output, merging all the inputs into a single resultset.
merged = otp.merge([trd], symbols=sym_list, identify_input_ts=True, separate_db_name=True)
# Return first 1000 Rows
merged = merged.limit(1000)
# Run the query returning the data in the selected timezone
result = otp.run(merged,
start=otp.datetime(2024, 1, 3, 8),
end=otp.datetime(2024, 1, 4, 16),
timezone='Europe/London')
result
| Time | PRICE | SIZE | TRADE_VENUE | BOOK_TYPE | TRADE_PERIOD | SYMBOL_NAME | DB_NAME | TICK_TYPE | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 2024-01-03 08:00:03.055 | 2574.500 | 147 | XLON | 0 | - | SHEL | LSE | TRD |
| 1 | 2024-01-03 08:00:03.056 | 2574.500 | 46 | XLON | 0 | - | SHEL | LSE | TRD |
| 2 | 2024-01-03 08:00:03.056 | 2574.500 | 44 | XLON | 0 | - | SHEL | LSE | TRD |
| 3 | 2024-01-03 08:00:04.494 | 2574.500 | 207 | XLON | 0 | - | SHEL | LSE | TRD |
| 4 | 2024-01-03 08:00:05.880 | 2575.000 | 24 | XLON | 0 | - | SHEL | LSE | TRD |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 995 | 2024-01-03 08:06:57.076 | 13.302 | 23 | XPAR | 0 | - | AF | EURONEXT | TRD |
| 996 | 2024-01-03 08:06:57.151 | 295.200 | 2200 | XLON | 0 | - | TSCO | LSE | TRD |
| 997 | 2024-01-03 08:06:57.151 | 295.200 | 22742 | XLON | 0 | - | TSCO | LSE | TRD |
| 998 | 2024-01-03 08:06:57.151 | 295.200 | 760 | XLON | 0 | - | TSCO | LSE | TRD |
| 999 | 2024-01-03 08:06:57.151 | 295.300 | 992 | XLON | 0 | - | TSCO | LSE | TRD |
1000 rows × 9 columns
Data Retrieval across Symbol Changes#
Ceridian HCM Holding rebranded as Dayforce, Inc on 1st Feb 2024, changing its symbol from CDAY to DAY.
Full History can be retrieved by querying for both symbols.
import onetick.py as otp
data = otp.DataSource(db='US_COMP_SAMPLE_DAILY', tick_type='DAY')
data = data[['EXCHANGE', 'OPEN', 'HIGH', 'LOW', 'CLOSE']]
result = otp.run(data,
start=otp.dt(2024, 1, 1),
end=otp.dt(2024, 4, 1),
timezone='America/New_York',
symbols=['CDAY', 'DAY'])
result
{'CDAY': Time EXCHANGE OPEN HIGH LOW CLOSE
0 2024-01-02 20:15:00 A 65.80 66.16 65.74 66.04
1 2024-01-02 20:15:00 B 65.74 66.13 65.74 66.12
2 2024-01-02 20:15:00 C 66.18 66.18 65.63 66.12
3 2024-01-02 20:15:00 D 66.10 66.80 65.25 66.02
4 2024-01-02 20:15:00 H 66.69 66.69 65.71 66.08
.. ... ... ... ... ... ...
373 2024-01-31 20:15:00 V 69.17 70.57 69.13 69.51
374 2024-01-31 20:15:00 X 69.34 70.58 69.19 69.53
375 2024-01-31 20:15:00 Y 69.44 70.10 69.13 69.51
376 2024-01-31 20:15:00 Z 69.10 70.54 69.10 69.54
377 2024-01-31 20:15:00 69.10 70.67 69.10 69.52
[378 rows x 6 columns],
'DAY': Time EXCHANGE OPEN HIGH LOW CLOSE
0 2024-02-01 20:15:00 A 70.990 70.990 68.840 69.960
1 2024-02-01 20:15:00 B 69.400 70.575 69.400 69.930
2 2024-02-01 20:15:00 C 69.720 70.310 68.750 69.910
3 2024-02-01 20:15:00 D 68.755 71.760 68.065 69.990
4 2024-02-01 20:15:00 H 68.940 70.235 68.280 70.235
.. ... ... ... ... ... ...
710 2024-03-28 20:15:00 V 66.150 66.375 65.695 66.235
711 2024-03-28 20:15:00 X 66.070 66.165 65.710 66.165
712 2024-03-28 20:15:00 Y 66.100 66.330 66.010 66.330
713 2024-03-28 20:15:00 Z 66.310 66.375 65.690 66.360
714 2024-03-28 20:15:00 66.450 66.450 65.650 66.210
[715 rows x 6 columns]}
Data Retrieval with New Symbol#
Ceridian HCM Holding rerbanded as Dayforce, Inc on 1st Feb 2024, changing its symbol from CDAY to DAY.
Full History can be retrieved by specifying a single symbol and selecting the SYMBOL_DATE to when it is active.
For example DAY after Feb 2024.
import onetick.py as otp
data = otp.DataSource(db='US_COMP_SAMPLE_DAILY', tick_type='DAY')
result = otp.run(data,
start=otp.dt(2024, 1, 1),
end=otp.dt(2024, 4, 1),
timezone='America/New_York',
symbols='DAY',
symbol_date=otp.dt(2024, 4, 1))
result
| Time | EXCHANGE | OPEN | HIGH | LOW | CLOSE | VOLUME | VWAP | PRICE_OPENING_AUCTION | VOLUME_OPENING_AUCTION | PRICE_CLOSING_AUCTION | VOLUME_CLOSING_AUCTION | VOLUME_MAIN_SESSION | VOLUME_PRE_MARKET | VOLUME_POST_MARKET | VOLUME_ODD_LOT | VOLUME_ROUND_LOT | VOLUME_OFF_EXCHANGE | OMDSEQ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2024-01-02 20:15:00 | A | 65.80 | 66.160 | 65.740 | 66.040 | 1963 | 65.988380 | NaN | 0 | NaN | 0 | 1963 | 0 | 0 | 827 | 1136 | 0 | 22931 |
| 1 | 2024-01-02 20:15:00 | B | 65.74 | 66.130 | 65.740 | 66.120 | 3272 | 66.040385 | NaN | 0 | NaN | 0 | 3272 | 0 | 0 | 2440 | 832 | 0 | 22932 |
| 2 | 2024-01-02 20:15:00 | C | 66.18 | 66.180 | 65.630 | 66.120 | 3161 | 65.969379 | NaN | 0 | NaN | 0 | 3160 | 0 | 1 | 1695 | 1466 | 0 | 22933 |
| 3 | 2024-01-02 20:15:00 | D | 66.10 | 66.800 | 65.250 | 66.020 | 366173 | 65.943110 | NaN | 0 | NaN | 0 | 313057 | 97 | 53019 | 119016 | 247157 | 366173 | 22934 |
| 4 | 2024-01-02 20:15:00 | H | 66.69 | 66.690 | 65.710 | 66.080 | 4597 | 66.119785 | NaN | 0 | NaN | 0 | 4597 | 0 | 0 | 3156 | 1441 | 0 | 22935 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1088 | 2024-03-28 20:15:00 | V | 66.15 | 66.375 | 65.695 | 66.235 | 78488 | 66.125359 | NaN | 0 | NaN | 0 | 78488 | 0 | 0 | 11964 | 66524 | 0 | 32708 |
| 1089 | 2024-03-28 20:15:00 | X | 66.07 | 66.165 | 65.710 | 66.165 | 992 | 65.991250 | NaN | 0 | NaN | 0 | 992 | 0 | 0 | 592 | 400 | 0 | 32709 |
| 1090 | 2024-03-28 20:15:00 | Y | 66.10 | 66.330 | 66.010 | 66.330 | 2127 | 66.174067 | NaN | 0 | NaN | 0 | 2127 | 0 | 0 | 701 | 1426 | 0 | 32710 |
| 1091 | 2024-03-28 20:15:00 | Z | 66.31 | 66.375 | 65.690 | 66.360 | 42920 | 66.149626 | NaN | 0 | NaN | 0 | 42920 | 0 | 0 | 20470 | 22450 | 0 | 32711 |
| 1092 | 2024-03-28 20:15:00 | 66.45 | 66.450 | 65.650 | 66.210 | 1617713 | 66.163421 | NaN | 6550 | NaN | 491722 | 1028853 | 107 | 90481 | 222184 | 1395529 | 570844 | 32712 |
1093 rows × 19 columns
Data Retrieval with Old Symbol#
Ceridian HCM Holding rebanded as Dayforce, Inc on 1st Feb 2024, changing its symbol from CDAY to DAY.
Full History can be retrieved by specifying a single symbol and selecting the SYMBOL_DATE to when it is active.
For example CDAY before Feb 2024.
import onetick.py as otp
data = otp.DataSource(db='US_COMP_SAMPLE_DAILY', tick_type='DAY')
result = otp.run(data,
start=otp.dt(2024, 1, 1),
end=otp.dt(2024, 4, 1),
timezone='America/New_York',
symbols='CDAY',
symbol_date=otp.dt(2024, 1, 1))
result
| Time | EXCHANGE | OPEN | HIGH | LOW | CLOSE | VOLUME | VWAP | PRICE_OPENING_AUCTION | VOLUME_OPENING_AUCTION | PRICE_CLOSING_AUCTION | VOLUME_CLOSING_AUCTION | VOLUME_MAIN_SESSION | VOLUME_PRE_MARKET | VOLUME_POST_MARKET | VOLUME_ODD_LOT | VOLUME_ROUND_LOT | VOLUME_OFF_EXCHANGE | OMDSEQ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2024-01-02 20:15:00 | A | 65.80 | 66.160 | 65.740 | 66.040 | 1963 | 65.988380 | NaN | 0 | NaN | 0 | 1963 | 0 | 0 | 827 | 1136 | 0 | 22931 |
| 1 | 2024-01-02 20:15:00 | B | 65.74 | 66.130 | 65.740 | 66.120 | 3272 | 66.040385 | NaN | 0 | NaN | 0 | 3272 | 0 | 0 | 2440 | 832 | 0 | 22932 |
| 2 | 2024-01-02 20:15:00 | C | 66.18 | 66.180 | 65.630 | 66.120 | 3161 | 65.969379 | NaN | 0 | NaN | 0 | 3160 | 0 | 1 | 1695 | 1466 | 0 | 22933 |
| 3 | 2024-01-02 20:15:00 | D | 66.10 | 66.800 | 65.250 | 66.020 | 366173 | 65.943110 | NaN | 0 | NaN | 0 | 313057 | 97 | 53019 | 119016 | 247157 | 366173 | 22934 |
| 4 | 2024-01-02 20:15:00 | H | 66.69 | 66.690 | 65.710 | 66.080 | 4597 | 66.119785 | NaN | 0 | NaN | 0 | 4597 | 0 | 0 | 3156 | 1441 | 0 | 22935 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1088 | 2024-03-28 20:15:00 | V | 66.15 | 66.375 | 65.695 | 66.235 | 78488 | 66.125359 | NaN | 0 | NaN | 0 | 78488 | 0 | 0 | 11964 | 66524 | 0 | 32708 |
| 1089 | 2024-03-28 20:15:00 | X | 66.07 | 66.165 | 65.710 | 66.165 | 992 | 65.991250 | NaN | 0 | NaN | 0 | 992 | 0 | 0 | 592 | 400 | 0 | 32709 |
| 1090 | 2024-03-28 20:15:00 | Y | 66.10 | 66.330 | 66.010 | 66.330 | 2127 | 66.174067 | NaN | 0 | NaN | 0 | 2127 | 0 | 0 | 701 | 1426 | 0 | 32710 |
| 1091 | 2024-03-28 20:15:00 | Z | 66.31 | 66.375 | 65.690 | 66.360 | 42920 | 66.149626 | NaN | 0 | NaN | 0 | 42920 | 0 | 0 | 20470 | 22450 | 0 | 32711 |
| 1092 | 2024-03-28 20:15:00 | 66.45 | 66.450 | 65.650 | 66.210 | 1617713 | 66.163421 | NaN | 6550 | NaN | 491722 | 1028853 | 107 | 90481 | 222184 | 1395529 | 570844 | 32712 |
1093 rows × 19 columns