I think C# is a bad idea for the trading engine. Use GoLang or C/C++
I've coded an engine that can handle 12000/minute transactions. I've used winners of HFT contests algo.
Some ideas for you:
- no floating points all unsigned int.
- all data is stored in memory.
- sent all data by blocks where possible