Interesting work! What advantages do you feel you have with your current configuration vs just using NinjaTrader or MetaTrader?
The reason why I use python, is because I day-trade using Machine Learning based models. C# is an objectively non-suitable language for that. Even "more-cross-platform" ML libraries have very poor C# support. I actually execute my trades in NinjaTrader by means of integration. I write a file into a watched folder and NT executes a trade.
I can also appreciate why an non-ML, but algo-trader would like python: it has great many libraries for anything you can imagine and then some. Of specific interest to an algo person would be pythons Data manipulation libraries that essentially combine flexibility of Excel and SQL in working with tabular and/or multidimensional data.
So my pipeline in LIVE DEPLOYMENT: IB [Brokerage + Live Data] -> [My Python Code Running night-before prepared models]-> [Produces a Trade Instruction file containing Entry Limit, Target and Stop]->[NT Reads This File through custom C# strategies]->fork here to two destinations: [1 NT Brokerage, 2 IB Brokerage]
NinjaTrader
Pros:
- an awesome charting (free)
- quick indicator development (free),
- dirt cheap commissions (I bought perpetual multi-platform license)
- Great Trade-Handling API
Cons:
- C# does not support python
- No easy way to export technical studies
IB comments:
- Good Python API for hooking into live data, reasonable data fees
- Poor Trade Handling especially if you have multiple instruments in play. What specifically weak is complexity of order/position lifecycle events (ninja is so much easier in that regard)
- Awesome and knowledgeable support that you will have to use little too much for my liking.