Congratulations are launching your system! I hope everything works like a dream for you. I am working towards this same thing and am currently in the paper trading phase. My strategy relies on 133 tick bars. I am not sure if I can use IB data because I heard so many bad things about their tick level data. I see you are using IB for data. I take it that your strategies are not relying on tick accuracy and must be using minute bars or larger. Is that true? Or are you using their tick data? How does this affect your strategy? How did you accommodate the inaccurate tick data feed?
If you need to work with ticks, then no, you shouldn't use IB as they do not provide tick data. The live data feeds they do provide are not bad but they do miss trades and should not be used as a replacement for real tick data. Their 5 second candles seem to be very accurate and have worked well for me. My strategies subscribe to data feeds as required and they can either be live streamed, compiled into any size candles or both. I can even have multiple sized candles working on the same strat which is nice if your looking for a macro level move and want to be more specific with the entry/exit. At the moment, all of my strategies rely on time, price and volume as opposed to ticks.
Thank you for posting about your automated trading system project. I am looking forward to reading about your experience in developing your trading system and about your live trading results. I have been slaving away on the development of a fully automated systematic intraday trading system for a long time now. It is a goal that I have been pursuing unrelentingly for the last 5 years on a highly irregular basis causing me to suffer countless periods of heavy sleep deprivation due to the fact that I also have a daytime job. I am very glad (and relieved) to say that I am close to starting the implementation of the production code. Hopefully soon I can start the paper trading phase. The system trades on 1 minute bars and depending on volatility generates for a single stock on average 25 trading signals per trading day. The system consists of two main components: the signal engine and the algorithmic execution engine. The signal engine basically consists of an online adaptive model whose parameters are updated recursively based on methods from adaptive filter theory and machine learning. I have also looked into many other advanced methods, among which is reinforcement learning. However, the trading frequency of reinforcement learning based models is nearly two times that of the adaptive model while, more importantly, its profit loss ratio is quite a bit lower. The algorithmic execution engine takes care of the actual execution of a buy or sell order. It breaks down a trade order into a set of limit orders. This scheduling is a dynamic process as the limit order prices might have to be adjusted depending on how the asset price evolves over the course of the next 5 minutes starting from the moment that a trading signal was generated by the signal engine. Obviously, the objective of any execution algorithm must be to obtain an average trading price which is as close as possible to the optimal one. The technology behind this engine is rooted in a blend of approximate dynamic programming (ADP) and adaptive filter theory. While the trading system was fully developed and prototyped in Matlab, I also intend to trade live from Matlab. Moreover, I will trade via Interactive Brokers and also use their historical data.
So after a week in the wild, things are running well. I was fortunate enough to have "every" test case tried out (win, loss, timeout and EOD) and all worked as intended. After comparing the backtest results against realtime trades, here's what I've found: My MKT order model needs some work. My profits were 14% lower compared to my backtest results. Still lots of positive expectancy left so I'm not sweating yet. I need to filter my IB data. I want to elaborate on the second point. My strategy uses the "realtime" IB data rather than the 5 second candles but my backtesting data uses 1 minute historical candles. Last Monday, IB had a bad print on TSLA which the realtime feed missed but it threw off my backtesting data. The misprint ended up triggering another trade in backtesting (a winner no less) that didn't happen in live trading and now I have to comb through my historical data and look for other irregularities. Has anybody else had to deal with this?
I believe these spikes are trades that were not traded on the exchange (trades between brokers or funds), and then reported later. I see these all the time on daily data, but if you look at tick data those prices were never hit. The only way I know to avoid this is to collect tick data to use for testing. -D
I use DTN IQFeed which supplies data to kinetick, so probably not. Historical bars are probably "corrected", and those trades did take place, just not so you could take advantage of them. This sort of thing really screws up back testing. Oh well. IQFeed can supply up to around 1800 symbols real-time, so the cheapest solution is to subscribe to the symbols you trade and collect them as they come in. Write them all to a single flat file (per day) so as to preserve their order. You can now write a play-back system that you can test with the exact data you would have seen when trading. For more money you could get NxCore. -D
sure. and i'm certain that you can figure this out on your own,if you would spend 30 seconds by looking into the data on the chart. you would notice then that trade,that cause the spike (300 shares at 216.7) was ABOVE CURRENT ASK( 207.9). so if you want filter those spikes (and there is will be a lot of them all the time) all you have to do is to double check the data before you shoot your order, to be make sure that last is within bid \ask and not away from the market.otherwise-you are just waiting for disaster to happens. IB DEMO(not paper account) is very good for such purpose. it's there for a reason,play with it. use same approach for historical data(you will need a tick data for it and IQ Feed would be your cheapest option)
I have opened an account with IB. I am trying to get some strategies backtested and I am confused as to what data feed I should subscribe to, among the various data options they have available, paid and free. I may be more than a year away from real trading. Please help with any suggestions. Thanks.................BR