Symbologies#

Note

This is part of the OneQuantData™ (OQD) offering. Available in OneTick Cloud. Can be configured on prem.

We can query data using different symbologies.

In this case parameter symbol_date of otp.run function should be specified. This parameter specifies the date when queried securities had specified names and it is used to determine the names that the security has between the query start and end times.

import onetick.py as otp

s = otp.dt(2024, 2, 1, 9, 30)
e = otp.dt(2024, 2, 1, 9, 30, 1)

trd = otp.DataSource('US_COMP_SAMPLE', tick_type='TRD')
trd = trd[['PRICE', 'SIZE', 'EXCHANGE', 'COND']]

otp.run(trd, start=s, end=e, symbol_date=otp.dt(2022, 12, 1), symbols=['AAPL'])
Time PRICE SIZE EXCHANGE COND
0 2024-02-01 09:30:00.000961260 184.010 302 P @FT
1 2024-02-01 09:30:00.000961491 184.000 100 P @FT
2 2024-02-01 09:30:00.000961701 184.000 1 P @FTI
3 2024-02-01 09:30:00.000973163 184.000 1 P @FTI
4 2024-02-01 09:30:00.000973355 184.000 5 P @FTI
... ... ... ... ... ...
574 2024-02-01 09:30:00.987184691 183.900 9 K @F I
575 2024-02-01 09:30:00.990378350 183.920 1 D @ I
576 2024-02-01 09:30:00.991941892 183.935 1 D @ I
577 2024-02-01 09:30:00.993785116 183.905 300 D @
578 2024-02-01 09:30:00.996512511 183.934 5 D @ I

579 rows × 5 columns

otp.run(trd, start=s, end=e, symbol_date=otp.dt(2022, 12, 1), symbols=['BTKR::::AAPL US'])
Time PRICE SIZE EXCHANGE COND
0 2024-02-01 09:30:00.000961260 184.010 302 P @FT
1 2024-02-01 09:30:00.000961491 184.000 100 P @FT
2 2024-02-01 09:30:00.000961701 184.000 1 P @FTI
3 2024-02-01 09:30:00.000973163 184.000 1 P @FTI
4 2024-02-01 09:30:00.000973355 184.000 5 P @FTI
... ... ... ... ... ...
574 2024-02-01 09:30:00.987184691 183.900 9 K @F I
575 2024-02-01 09:30:00.990378350 183.920 1 D @ I
576 2024-02-01 09:30:00.991941892 183.935 1 D @ I
577 2024-02-01 09:30:00.993785116 183.905 300 D @
578 2024-02-01 09:30:00.996512511 183.934 5 D @ I

579 rows × 5 columns

Examples of other supported symbologies include:

TDEQ::::AAPL

SED::::2046251

FGV::::BBG000B9XRY4

ISN::::US0378331005

TKR::::ALSPW.FRXPAR

We can create a mapping between symbologies.

figi = otp.Symbols('US_COMP_SAMPLE', symbology='FGV', show_original_symbols=True, for_tick_type='TRD')
figi, _ = figi[figi['SYMBOL_NAME'] != '']
otp.run(figi, start=s, end=e)
Time SYMBOL_NAME ORIGINAL_SYMBOL_NAME
0 2024-02-01 09:30:00 BBG000C2V3D6 US_COMP_SAMPLE::A
1 2024-02-01 09:30:00 BBG005P7Q881 US_COMP_SAMPLE::AAL
2 2024-02-01 09:30:00 BBG000B9XRY4 US_COMP_SAMPLE::AAPL
3 2024-02-01 09:30:00 BBG0025Y4RY4 US_COMP_SAMPLE::ABBV
4 2024-02-01 09:30:00 BBG001Y2XS07 US_COMP_SAMPLE::ABNB
... ... ... ...
496 2024-02-01 09:30:00 BBG001D8R5D0 US_COMP_SAMPLE::XYL
497 2024-02-01 09:30:00 BBG000BH3GZ2 US_COMP_SAMPLE::YUM
498 2024-02-01 09:30:00 BBG000BKPL53 US_COMP_SAMPLE::ZBH
499 2024-02-01 09:30:00 BBG000CC7LQ7 US_COMP_SAMPLE::ZBRA
500 2024-02-01 09:30:00 BBG0039320N9 US_COMP_SAMPLE::ZTS

501 rows × 3 columns

btkr = otp.Symbols('US_COMP_SAMPLE', symbology='BTKR', show_original_symbols=True, for_tick_type='TRD')
btkr, _ = btkr[btkr['SYMBOL_NAME'] != '']
otp.run(btkr, start=s, end=e)
Time SYMBOL_NAME ORIGINAL_SYMBOL_NAME
0 2024-02-01 09:30:00 A US US_COMP_SAMPLE::A
1 2024-02-01 09:30:00 AAL US US_COMP_SAMPLE::AAL
2 2024-02-01 09:30:00 AAPL US US_COMP_SAMPLE::AAPL
3 2024-02-01 09:30:00 ABBV US US_COMP_SAMPLE::ABBV
4 2024-02-01 09:30:00 ABNB US US_COMP_SAMPLE::ABNB
... ... ... ...
496 2024-02-01 09:30:00 XYL US US_COMP_SAMPLE::XYL
497 2024-02-01 09:30:00 YUM US US_COMP_SAMPLE::YUM
498 2024-02-01 09:30:00 ZBH US US_COMP_SAMPLE::ZBH
499 2024-02-01 09:30:00 ZBRA US US_COMP_SAMPLE::ZBRA
500 2024-02-01 09:30:00 ZTS US US_COMP_SAMPLE::ZTS

501 rows × 3 columns

figi = otp.Symbols('US_COMP_SAMPLE', symbology='FGV', show_original_symbols=True, for_tick_type='TRD')
btkr = otp.Symbols('US_COMP_SAMPLE', symbology='BTKR', show_original_symbols=True, for_tick_type='TRD')
btkr, _ = btkr[btkr['SYMBOL_NAME'] != '']
figi, _ = figi[figi['SYMBOL_NAME'] != '']

mapping = otp.functions.join(figi, btkr, on=btkr['ORIGINAL_SYMBOL_NAME']==figi['ORIGINAL_SYMBOL_NAME'], how="inner")

mapping  = mapping.rename({'RIGHT_SYMBOL_NAME'   : 'BTKR',
                           'SYMBOL_NAME'         : 'FIGI',
                           'ORIGINAL_SYMBOL_NAME': 'DB_SYMBOL'})

mapping = mapping[['FIGI', 'BTKR', 'DB_SYMBOL']]

otp.run(mapping, start=s, end=e)
Time FIGI BTKR DB_SYMBOL
0 2024-02-01 09:30:00 BBG000C2V3D6 A US US_COMP_SAMPLE::A
1 2024-02-01 09:30:00 BBG005P7Q881 AAL US US_COMP_SAMPLE::AAL
2 2024-02-01 09:30:00 BBG000B9XRY4 AAPL US US_COMP_SAMPLE::AAPL
3 2024-02-01 09:30:00 BBG0025Y4RY4 ABBV US US_COMP_SAMPLE::ABBV
4 2024-02-01 09:30:00 BBG001Y2XS07 ABNB US US_COMP_SAMPLE::ABNB
... ... ... ... ...
496 2024-02-01 09:30:00 BBG001D8R5D0 XYL US US_COMP_SAMPLE::XYL
497 2024-02-01 09:30:00 BBG000BH3GZ2 YUM US US_COMP_SAMPLE::YUM
498 2024-02-01 09:30:00 BBG000BKPL53 ZBH US US_COMP_SAMPLE::ZBH
499 2024-02-01 09:30:00 BBG000CC7LQ7 ZBRA US US_COMP_SAMPLE::ZBRA
500 2024-02-01 09:30:00 BBG0039320N9 ZTS US US_COMP_SAMPLE::ZTS

501 rows × 4 columns

Symbol name changes#

Symbol name changes are easy to handle with the symbol_date parameter of otp.run which provides the “as of” date for the symbols. For example, we can pass META while setting symbol_date to any date after 2022-06-09 or FB and symbol_date before 2022-06-09.

trd = otp.DataSource('US_COMP_SAMPLE', tick_type='TRD')
otp.run(trd, start=s, end=e, symbols='META', symbol_date=otp.dt(2023, 2, 2))
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-02-01 09:30:00.007987039 Q @ TI N 0 META 393.930 1969-12-31 19:00:00 0 50 0 239953 1951 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 0
1 2024-02-01 09:30:00.007990023 Q @ TI N 0 META 393.940 1969-12-31 19:00:00 0 34 0 239954 1952 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 1
2 2024-02-01 09:30:00.007991601 Q @ T N 0 META 393.960 1969-12-31 19:00:00 0 100 0 239955 1953 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 2
3 2024-02-01 09:30:00.007993291 Q @ T N 0 META 393.960 1969-12-31 19:00:00 0 100 0 239956 1954 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 3
4 2024-02-01 09:30:00.021757737 P @ N 0 META 393.940 1969-12-31 19:00:00 0 100 0 240041 1555 2024-02-01 09:30:00.021408980 1969-12-31 19:00:00.000000000 0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
307 2024-02-01 09:30:00.975760894 D @ I N Q 0 META 393.845 1969-12-31 19:00:00 0 1 0 245808 1308 2024-02-01 09:30:00.397844000 2024-02-01 09:30:00.975736933 0
308 2024-02-01 09:30:00.987474931 D @ N Q 0 META 393.810 1969-12-31 19:00:00 0 100 0 245840 1309 2024-02-01 09:30:00.986778211 2024-02-01 09:30:00.987441735 0
309 2024-02-01 09:30:00.988587317 D @ I N Q 0 META 393.930 1969-12-31 19:00:00 0 41 0 245848 1310 2024-02-01 09:30:00.987319939 2024-02-01 09:30:00.988558053 0
310 2024-02-01 09:30:00.990261060 V @ N 0 META 393.810 1969-12-31 19:00:00 0 100 0 245861 152 2024-02-01 09:30:00.989946291 1969-12-31 19:00:00.000000000 0
311 2024-02-01 09:30:00.990282792 V @ N 0 META 393.810 1969-12-31 19:00:00 0 100 0 245862 153 2024-02-01 09:30:00.989946291 1969-12-31 19:00:00.000000000 1

312 rows × 18 columns

trd = otp.DataSource('US_COMP_SAMPLE', tick_type='TRD')
otp.run(trd, start=s, end=e, symbols='FB', symbol_date=otp.dt(2021, 2, 2))
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-02-01 09:30:00.007987039 Q @ TI N 0 META 393.930 1969-12-31 19:00:00 0 50 0 239953 1951 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 0
1 2024-02-01 09:30:00.007990023 Q @ TI N 0 META 393.940 1969-12-31 19:00:00 0 34 0 239954 1952 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 1
2 2024-02-01 09:30:00.007991601 Q @ T N 0 META 393.960 1969-12-31 19:00:00 0 100 0 239955 1953 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 2
3 2024-02-01 09:30:00.007993291 Q @ T N 0 META 393.960 1969-12-31 19:00:00 0 100 0 239956 1954 2024-02-01 09:30:00.007968809 1969-12-31 19:00:00.000000000 3
4 2024-02-01 09:30:00.021757737 P @ N 0 META 393.940 1969-12-31 19:00:00 0 100 0 240041 1555 2024-02-01 09:30:00.021408980 1969-12-31 19:00:00.000000000 0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
307 2024-02-01 09:30:00.975760894 D @ I N Q 0 META 393.845 1969-12-31 19:00:00 0 1 0 245808 1308 2024-02-01 09:30:00.397844000 2024-02-01 09:30:00.975736933 0
308 2024-02-01 09:30:00.987474931 D @ N Q 0 META 393.810 1969-12-31 19:00:00 0 100 0 245840 1309 2024-02-01 09:30:00.986778211 2024-02-01 09:30:00.987441735 0
309 2024-02-01 09:30:00.988587317 D @ I N Q 0 META 393.930 1969-12-31 19:00:00 0 41 0 245848 1310 2024-02-01 09:30:00.987319939 2024-02-01 09:30:00.988558053 0
310 2024-02-01 09:30:00.990261060 V @ N 0 META 393.810 1969-12-31 19:00:00 0 100 0 245861 152 2024-02-01 09:30:00.989946291 1969-12-31 19:00:00.000000000 0
311 2024-02-01 09:30:00.990282792 V @ N 0 META 393.810 1969-12-31 19:00:00 0 100 0 245862 153 2024-02-01 09:30:00.989946291 1969-12-31 19:00:00.000000000 1

312 rows × 18 columns