I have an algorithm running live that I have been testing. One thing that I have noticed is that the backtest results does not match the the live results. In fact, there is a pretty substantial difference. For example, one algorithm I have been testing live has a 6%+ difference in results to the backtest in just a week. After some investigation, the problem is that the backtest is off by one minute because minutely execution time is rounded up. Let me demonstrate the problem with an actual example that occurred to me:
This is a screenshot showing the difference between my live and backtest fills. Notice how the backtest filled at 9:36 AM while my real fill occurred at 9:35:13 AM. This resulted in a massive difference. In live - 9:35:13 fill at $39.50; In backtest - 9:36 fill at $37.77 - a 4.4% difference! The difference would have been closer if the backtest filled at 9:35 AM since the stock was at $39.99. This would have been only a 1% difference versus the 4.4%.
This is a significant problem because inaccurate backtests is extremely misleading and could cause significant risk of real money when trading live. So what I recommend is until Quantopian supports the second time resolution, backtest minutes should be rounded down since actual execution occurs in approximately 10 seconds.