Code: connection.reqHistoricalData( tickerId = cid, contract=contract, endDateTime=endtime, durationStr='10 D', barSizeSetting='15 mins', whatToShow='MIDPOINT', useRTH=1, formatDate=1) here's a python snippet
Depends on the market and strategy, futures? I would say yes for retail. IQFeed is a really a no brainer for quality retail feed imho.
If you want 1 minute candlestick data, InteractiveBrokers is possible. If you exceed their request limits, they will issue a pacing violation which lasts a maximum of 10 minutes. So if you leave the system running for a few days it is possible to download a lot of data in that time and is good as a 'free' source. If you need higher resolution than 1m, then it starts to become difficult due to the pacing violations.
I might be able to help you. I've worked with the IB API in both C++ and Python. Message me if you'd like to chat.
I have written an historical data downloader for myself in python for IB. It is designed with pacing violations in mind and uses IB API. (keystrokes are for 1980s) It has an UI also. (I don’t like to read my own code).