Edit (2016-06-21): Now with live data/trading integration with Interactive Brokers. It has taken a while but it has finally arrived.
backtrader (https://github.com/mementum/backtrader) can do
3 and is in the process of getting
2 ironed out. A live data feed from IB will make it into the next release (due in the next few days) and it will then be down to mapping of orders.
Disclaimer: I am the author of
Volume is not used. I only trade in markets and assets which are liquid enough
Pricewise ... it depends on the order type with the following assumption in place: the bar which the system is evaluating is gone ... no match can be done against it
Market: The order gets filled with the opening price of the next bar
Close: meant for intraday systems and gets matched with the last bar of the session at the close price
Limit: starting with next bar the system looks at the open/high/low/close prices to try to give a "better" price (example: open is better than the limit, open is chosen) or limit
StopLimit: similar to limit, but looking again at the 4 prices components to see if the stop trigger price and limit prices can be executed in the same bar.