Thanks for reporting.
The IB API doesn’t distinguish ETFs from stocks (they’re all STK), so QuantRocket classifies ETFs in 2 ways. The primary way is that QuantRocket downloads the symbol lists from the IB website, where they are grouped into stocks vs ETFs. Additionally some European ETFs have a TradingClass of “ETF”, so QuantRocket checks that as well.
Unfortunately it looks like the IB website lists some LSE ETFs under “stocks”, even though there’s a separate heading for ETFs.
There are several ways forward.
- If the IB website also lists the ETFs under the “ETF” section, which it probably does, then the simplest solution would be to tell QuantRocket to collect ETFs by passing
--sec-types 'ETF'. This will allow QuantRocket to see and store that they are ETFs. (This will work even if you later collect the stock listings again - once QuantRocket sees it’s an ETF, it will always be an ETF.)
- Another option is to manually curate your master file to include/exclude ETFs as desired and create a universe that fits your goals and use the universe rather than relying on the Etf field.
Finally, I think it would be good for the software to automatically load a list of known ETFs so that it doesn’t get tripped up if IB lists ETFs under “stocks” on their website.