Prevailing quote at the time of a trade#

import onetick.py as otp

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

qte = otp.DataSource('US_COMP_SAMPLE',
                     tick_type='NBBO',
                     back_to_first_tick=otp.Minute(10))

qte = qte[['ASK_PRICE', 'BID_PRICE']]
qte['quote_time'] = qte['Time']

enriched_trades = otp.join_by_time([trd, qte])

otp.run(enriched_trades,
        symbols=['AAPL'],
        start=otp.dt(2024, 2, 1, 9, 30),
        end=otp.dt(2024, 2, 1, 9, 30, 1),
        timezone='EST5EDT')
Time PRICE SIZE ASK_PRICE BID_PRICE quote_time
0 2024-02-01 09:30:00.000961260 184.010 302 184.14 184.00 2024-02-01 09:30:00.000860953
1 2024-02-01 09:30:00.000961491 184.000 100 184.14 184.00 2024-02-01 09:30:00.000860953
2 2024-02-01 09:30:00.000961701 184.000 1 184.14 184.00 2024-02-01 09:30:00.000860953
3 2024-02-01 09:30:00.000973163 184.000 1 184.14 183.90 2024-02-01 09:30:00.000969529
4 2024-02-01 09:30:00.000973355 184.000 5 184.14 183.90 2024-02-01 09:30:00.000969529
... ... ... ... ... ... ...
574 2024-02-01 09:30:00.987184691 183.900 9 183.93 183.89 2024-02-01 09:30:00.973387417
575 2024-02-01 09:30:00.990378350 183.920 1 183.93 183.89 2024-02-01 09:30:00.987461418
576 2024-02-01 09:30:00.991941892 183.935 1 183.93 183.89 2024-02-01 09:30:00.987461418
577 2024-02-01 09:30:00.993785116 183.905 300 183.93 183.89 2024-02-01 09:30:00.987461418
578 2024-02-01 09:30:00.996512511 183.934 5 183.93 183.89 2024-02-01 09:30:00.987461418

579 rows × 6 columns