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