StockYard
Note: The current code is an initial prototype for a stock exchange market simulator.
Contents
Introduction
The main idea behind the Market Simulator is to build a virtual environment where various trading strategies can be tested.
The system is implemented using a discrete event simulator and also uses the concept of time wraps.
The system would mainly consist of multiple agents having different trading strategies incorporated in them and would compete against each other in the stock exchange.
By building this system we hope to better understand the trading strategies and how they work in real world scenarios where external factors play a major role in the performance of an agent.
How to Download & Install
Note: To install and run the command you need to have git installed in your computer. And have permission to the qsrgsim repository
Download & Setup
To download the repository type in the following command.
git clone https://github.gatech.edu/tb34/qsrgsim/
How to Run
The program executes by running the Bootstrap file.
Go to the directory where the repository is present and type in the following command.
python bootstap.py
Sample Output
The following is a sample output shown in the terminal
---------- Id: 1 Name: NASDAQ Type: exchange ---------- Id: 1 Name: Agent 1 Exchange: NASDAQ Type: trader ---------- Id: 2 Name: Agent 2 Exchange: NASDAQ Type: trader ---------- Kernel Runner started time stamp: 0, awakening all messages Agent Agent 1 Started, Time Stamp: 0 Agent Agent 2 Started, Time Stamp: 0 ---------- Agent: Agent 1 Time Stamp: 3 Ping Excahnge and wake up again in 6 minutes Exchange Recieved Ping Message from agent| Time Stamp: 3 Agent Recieved Ping Message from exchange Time Stamp: 3 ---------- Agent: Agent 2 Time Stamp: 5 Ping Excahnge and wake up again in 10 minutes Exchange Recieved Ping Message from agent| Time Stamp: 5 Agent Recieved Ping Message from exchange Time Stamp: 5 ---------- Agent: Agent 1 Time Stamp: 6 Ping Excahnge and wake up again in 9 minutes Exchange Recieved Ping Message from agent| Time Stamp: 6 Agent Recieved Ping Message from exchange Time Stamp: 6 ---------- ....... ---------- Agent: Agent 1 Time Stamp: 21 Ping Excahnge and wake up again in 24 minutes Exchange Recieved Ping Message from agent| Time Stamp: 21 Agent Recieved Ping Message from exchange Time Stamp: 21 ---------- Agent: Agent 1 Time Stamp: 24 Ping Excahnge and wake up again in 27 minutes Exchange Recieved Ping Message from agent| Time Stamp: 24 Agent Recieved Ping Message from exchange Time Stamp: 24
How to Configure
The configuration of the Agents and its properties are currently in a Q&A format as shown above.
We would be moving it to a properties file(csv/text format) from which the various key-value parameters can be read
Configuration Example
Entern Exchange Name: NASDAQ Enter Duration of run: 24 Enter Number of Trading Agents: 2 Enter Agent ID: 1 Enter Agent Name: Agent 1 Interval time for ping: 3 Enter Agent ID: 2 Enter Agent Name: Agent 2 Interval time for ping: 5
Description of API
Coming up later
Description of Software Component
Coming up later
Resources
NASDAQ's message (OUCH) API document http://nasdaqtrader.com/content/technicalsupport/specifications/TradingProducts/OUCH4.2.pdf