I've been playing with Zipline and it wasn't very hard to plug my own data into the system so it should be relatively easy to do futures and forex backtesting, as long as you pass notional value instead of contract value (so that the pnl calculations are straight fwd)