A Python module for market simulation
PyOBSim - the Python Order Book Simulator #
PyOBSim is a Python module facilitating market simulation by implementing an order book and other utilities. PyOBSim aims to make testing of trading algorithms clean and simple.
Running simulations is straightforward: simply provide an order flow and fire away:
from pyobsim import * # build our participants alice = participant.Participant("Alice", 100, 0) # $100, no units bob = participant.Participant("Bob", 0, 120) # $0, 120 units sim = simulation.Simulation("My Simulation", [], [alice, bob]) sim.load("order_flow.csv") # load our order flow from CSV file sim.run() print(sim)
This gives us our summary:
Simulation My Simulation --- Statement of Accounts Alice: $100.0 with 0 units Bob: $0.0 with 120 units --- Market as at present 'GOOG'
If we want to inspect the book for GOOG:
print(sim.books["GOOG"])
We get:
Book for GOOG Spread is $0.5 === Ask Price Quantity -------------------------------------------------------------------------------- $1.0 100 | |$0.5 10 -------------------------------------------------------------------------------- Price Quantity Bid