I am using IBKR API to download historical data. The trading volumes are always substantially lower than from Yahoo Finance and Nasdaq.com, often lower by 50%. It is impossible to be explained by regular trading hours. I see some other posts saying regular lot of 100 shares etc so should multiply by 100; I think that is already corrected and is irrelevant here. I am setting SMART as the exchange already and my data match those from running the sample codes so my codes are correct.
I do see on its doc that,
IB's historical data feed is filtered for some types of trades which generally occur away from the NBBO such as combos, block trades, and derivatives. For that reason the historical data volume will be lower than an unfiltered historical data feed.
But the difference is way too large. How is it possible for volumes to differ so massively? Does it have anything to do with darkpools etc?
For example:
Ticker | Date | Nasdaq/Yahoo | IBKR | %diff |
---|---|---|---|---|
AAPL | 20240628 | 82,542,720 | 42,812,041 | 50% |
AAPL | 20240627 | 49,772,710 | 31,916,744 | 30% |
AMD | 20240628 | 56,204,620 | 41,151,992 | 30% |
AMD | 20240627 | 34,018,220 | 26,066,024 | 20% |
TSLA | 20240624 | 61,992,070 | 47,662,995 | 20% |
META | 20240626 | 8,882,337 | 4,309,977 | 50% |
APP | 20240625 | 4,042,492 | 2,085,910 | 50% |
BOX | 20240627 | 1,621,128 | 694,668 | 60% |
BASE | 20240628 | 2,320,411 | 612,166 | 70% |
CAT | 20240628 | 8,891,479 | 1,704,328 | 50% |
OXY | 20240624 | 10,315,120 | 6,688,195 | 30% |
KO | 20240627 | 8,494,123 | 4,918,846 | 40% |