CBOE Emulator
1.0
|
This project implements the limit order book as an application on top of the network stack using protocols modeled after those deployed by CBOE. The system is asynchronous (through Asio) and capable of running in real-time with appropriate hardware configuration. The system supports human interaction through command line interfaces and algorithmic trading using the binary order entry system and data feed.
Depending on your platform and environment, some setup may be required to achieve high input throughput from listening data feeds.
sudo sysctl
).taskset
for each process.No addition setup is necessary for MacOS platforms.
Many vendor submodules are necessary to accomplish this project, be sure to clone them all using the following command from the top-level of the project:
To run the unit test-suite for the project, run:
To compile all the application included in the project, run:
The order entry system presented in this document is modeled after Version 2.3.6 of the CBOE US Equities Binary Order Entry Specification. The order entry server application takes a single command line parameter, a path to a JSON configuration file following the schema:
port
is the port number for the order entry service that clients will connect tofeed
is and object with parameters for the data feedgroup
is the IP multi-cast group for the data feedport
is the port to target for the multi-cast data feedttl
is the TTL for the data feedoutbound_interface
is the IP address of the interface to send packets onaccounts
is a list of users that can connect and trade on the serverThe order entry system presented in this document is modeled after Version 2.3.6 of the CBOE US Equities Binary Order Entry Specification. The command line order entry application takes a single command line parameter, a path to a JSON configuration file following the schema:
host
is the order entry server IP address to connect toport
is the port that the service is running at on the remote hostThe depth of book data feed presented in this document is modeled after Version 2.40.28 of the CBOE US Equities/Options Multicast Depth of Book (PITCH) Specification. All the multi-cast receivers accept a JSON file with the same schema:
listen
is the interface to listen for packets ongroup
is the multi-cast group to joinport
is the port to bind to and receive packets onecho
logs all messages received to the terminalheartbeat
refreshes the terminal with the top of book data every 1scsv
writes a CSV with tick-wise L1 bars to standard output