Project: Develop a FIX client (https://en.wikipedia.org/wiki/Financial_Information_eXchange) that can send random orders to a FIX server and calculate certain statistics related to the order flow.
FIX protocol version(Network and Communication Protocol): FIX 4.2
-
Generate Order and save the log file: FIX_LOG_GENERATION.ipynb
- Handle basic FIX flows: Logon, Seq Number handling
- Able to send the below message to the server:
- New Order (35=D): Limit Order or Market Order. You can put a random price for a Limit Order.
- Order Cancel Request (35=F)
- Do not send another other request
- Able to handle the below message from the server:
- Reject (35=3)
- Execution Report (35=8)
- Order Cancel Reject (35=9)
- Send 1000 random orders for MSFT, AAPL, and BAC. One side can be BUY, SELL, or SHORT. It could be a limit or a market order. Send 1000 orders within a 5 minutes period from when the application starts. And, need to randomly cancel them within 5 minutes from when you send the order.
-
Analysis of the log file on:
- Total trading volume, in USD
- PNL generated from this trading
- VWAP of the fills for each instrument
Tip: Use Mini-FIX (https://elato.se/minifix/) for correctness comparison during the code development.