Not sure if it's my code, or the way past Futures data is stored but the fills on my eventual Market Orders are rediculous and nowhere near the Last. Here is a small piece of Debugged order data from the backtest:

2016-01-05 00:22:00 LONG, Bid: 2012.25, Ask: 2012.5, Last: 2012.25, FillPrice: 2011.0, 36.32538906449194
2016-01-05 01:14:00 LONG EXIT, Ask: 2012.5, FillPrice: 2007.0
2016-01-05 01:15:00 LONG, Bid: 2012.25, Ask: 2012.5, Last: 2012.25, FillPrice: 2007.5, 31.28034666509519
2016-01-05 01:37:00 Out of long for 400
2016-01-05 01:41:00 SHORT, Bid: 2012.25, Ask: 2012.5, Last: 2012.25, FillPrice: 2012.75, 67.1066477408343
2016-01-05 03:23:00 Out of short for 400
2016-01-05 03:27:00 LONG, Bid: 2012.25, Ask: 2012.5, Last: 2012.25, FillPrice: 2006.0, 31.341624501096778
2016-01-05 04:06:00 LONG EXIT, Ask: 2012.5, FillPrice: 2001.75
2016-01-05 04:08:00 LONG, Bid: 2012.25, Ask: 2012.5, Last: 2012.25, FillPrice: 2002.5, 34.431038796859944
2016-01-05 04:21:00 LONG EXIT, Ask: 2012.5, FillPrice: 1997.5
2016-01-05 04:25:00 LONG, Bid: 2012.25, Ask: 2012.5, Last: 2012.25, FillPrice: 1998.75, 36.02152848749718
2016-01-05 05:12:00 LONG EXIT, Ask: 2012.5, FillPrice: 1994.25

You can see the fill prices are just off and its causing the algorithm to lose BIG. Where is the mistake in my code?