I have recently been tearing my hair out trying to figure why I get different results for the same algorithm in Quantopian and Zipline. After many hours, I discovered this bug in Quantopian: if you order a target 100% of a stock and some days later again order a target of 100% (which shouldn't change anything, as the stock is already at 100%), the portfolio CASH changes.
If you try the same in Zipline, you get a warning that you are trying to place an order for amount = 0, which is fine, and the portfolio CASH doesn't change, as expected.
Obviously, over an extended backtest period, the difference mounts up - in my case the difference ended up being > 100%!