I am having trouble calculating volume using tick data that is not near. Can someone help me calculate the volume from tick data [ WebSocket ] using Python?
so far I tried few options like, but didn't helped - tick [sorted by exchange_timestamp] - volume traded [0] - volume traded [-1] vice-versa - volume traded [0 from last min] - (volume traded [-1] / volume traded [0]) vice-versa - sum(total_buy_quantity) - sum(total_sell_quantity) vice-versa .....
You don't have to include total_buy_quantity and total_sell_quantity to calculate volume traded. You can calculate any difference of two objects by doing T2 - T1 i.e,
volume_traded[-1] - Volume_traded[0] Volume_traded will be computed if your indexing is accurate.
select volume_traded, total_buy_quantity, total_sell_quantity from 2025_tradeplus.012025tick where instrument_token = 738561 and exchange_timestamp between '2025-01-20 14:29:00' and '2025-01-20 14:29:59' order by exchange_timestamp
Just a guess, in the exchange_timestamp, there might be milliseconds data also '2025-01-20 14:29:59' this query doesn't consider miliseconds, you might be missing some volumes, receives in these milliseconds, please check.
You can calculate any difference of two objects by doing T2 - T1 i.e,
eg: volume_traded: 100 T1 110 120 130 T2
vol = T2 -T1# 130 -100 = 30
Another way is also same:
100 T1 110 T2 120 T3 130 T4
T2-T1 = 10, T3-T1 = 10, T4-T3 = 10 vol = 30
Are you having trouble understanding why you are using TBQ and TSQ to determine volume? If you have the right indexing, this can be completed quite quickly.
You can calculate any difference of two objects by doing T2 - T1 i.e,
volume_traded[-1] - Volume_traded[0]
Volume_traded will be computed if your indexing is accurate.
min, volume_traded[-1] - Volume_traded[0]
30th min, 11387502 - 11355840 = 31,662
29th min, 11353352 - 11328103 = 25,249
28th min, 11328103 - 11293612 = 34,491
but actually looking for:
29th min, 29,146
28th min, 45,631
27th min, 46,432
26th min, 36,297
select volume_traded, total_buy_quantity, total_sell_quantity from 2025_tradeplus.012025tick
where instrument_token = 738561 and exchange_timestamp between '2025-01-20 14:29:00' and '2025-01-20 14:29:59' order by exchange_timestamp
100 T1
110
120
130 T2
vol = T2 -T1# 130 -100 = 30
Another way is also same:
100 T1
110 T2
120 T3
130 T4
T2-T1 = 10, T3-T1 = 10, T4-T3 = 10
vol = 30
Are you having trouble understanding why you are using TBQ and TSQ to determine volume?
If you have the right indexing, this can be completed quite quickly.