1

I need some inputs on how to design architecture for algo trading platform. These are some of the details/features of the platform:-

  1. Users can log in and create strategies using ui components.
  2. Users can either paper trade these strategies or connect to real broker API to live trade.
  3. User-created strategies are run continuously against market data at some interval (user-defined ) and the trade signal is generated. This signal is sent to the real broker of paper trade depending upon deployment type

I need suggestions/input on the following points.

  1. How to ingest and store market data received (huge size) over websocket.
  2. How to provide the data received to each of the strategy instances at the same time.
  3. How to run all the strategies of all users simultaneously. Their status should be monitored from the UI.
  4. Should there be a single OMS (order management system) or a separate one for each user. Keeping in mind to minimize the delay between trade generation and order placement

For reference about what I am trying to design you can look at here

1 Answers1

1

It is difficult to give step by step guide to creating a full-fledged algo-trading platform. Here are a few things I have understood from reading on this subject and creating something myself:

  1. How to ingest and store market data received (huge size) over websocket.

Answer: Use a database. Since the volume of data will be huge and speed of operations is a must, you should go for Oracle, DB2, etc. rather than MySQL.

  1. How to provide the data received to each of the strategy instances at the same time.

Answer: Databases will be able to handle multiple queries simultaneously. I am assuming you will use a resourceful cloud.

  1. How to run all the strategies of all users simultaneously. Their status should be monitored from the UI.

Answer: Resourceful cloud (or cluster of systems construing a server) will be able to process hundreds or thousands of multiple requests easily. Running (unlike backtesting) strategies are not time-consuming. All such runs could be logged and monitored through UI. You can create interesting visuals too.

  1. Should there be a single OMS (order management system) or a separate one for each user. Keeping in mind to minimize the delay between trade generation and order placement.

Answer: The code should be able to pass the order instantly to the respective brokers (through their API). Such systems do not have an order backlog. Users should be able to view their own orders only which can be achieved by standard access control techniques.

I hope, it helps.

anix-anirban
  • 85
  • 1
  • 1
  • 8