Welcome to the Simulated Exchange Market Trading and Execution System repository! This project aims to provide a comprehensive and dynamic simulated environment for stock market trading and execution. Users can leverage this system for educational purposes, gaining hands-on experience in simulated trading activities.
- Realistic simulation of market conditions.
- Interactive trading interface offering a web-based client and a low-level gRPC interface for high-frequency trading applications.
- High throughput and reliability packaged wit a robust and scalable architecture.
- Support for multiple trading strategies, including market, limit, stop, and stop-limit orders along with a variety of time-in-force options.
The SEMTEX system is packaged as a Docker container, which can be easily deployed on any machine with Docker installed. To get started, follow the steps below.
- Clone the repository and navigate to the project directory
git clone https://github.com/masonhgn/semtex.git && cd semtex
- Create a network for the client and server to communicate
docker network create exchange-network
- Build and deploy client and server
cd server/exchange && docker build -t exchange-server .
cd ../client/src && docker build -t exchange-client .
- Verify that the containers are created (No containers should be in an "Exited" state)
docker ps
- Run the server, then the client
docker run -d --name exchange-server --network exchange-network exchange-server
docker run --name exchange-client --network exchange-network exchange-client
Note: The project may take a few minutes to start up. If the project is not running, try running the command again.
Extensive documentation for the project is in progress and will be available soon. In the meantime, please refer to the source code for more information.
This project is licensed under the MIT License.
Happy trading!