Ninja or other retail level trading system cannot handle the "most complicated algorithms". You need reasonable work-arounds and maybe you show us how Ninja handles a matrix inversion without having to link up to external libraries. Also, how to implement multithreaded paradigms? How do you handle database access to those dbs that are not supported out of the box? How do you connect to unsupported broker APIs? Right, you need to code an interface in a compiled language!!! And how do you implement a simple Kalman or Particle filter? Ninja is what it is, a scripting language / a limited C# set in order to avoid having to learn a complete programming language. That is all to it. It comes with all the limitations that most other scripting languages suffer from as well.
Quote from dom993:
You are totally wrong & stubborn. Ninja (and likely Multichart) offers the full spectrum of C# to develop your indicators & strategies.
I have developed in Ninja/C# systems which complexity is far beyond what you'll ever do. Ninja's framework isn't hard to understand at all, and again, by using it you would learn a lot about what a trading platform must offer, and that would give you a basis to compare architecture options.