Trading Platform Shootout

I’ve been a loyal MultiChart’s customer for the last 2 years. The tool has served me very well and has forever shaped the way how I look at the development of trading strategies. But the last few months I have struggled a lot with finding creative ways to work around some shortcomings of the platform. Here are my main complaints:

  • no integration with revision control
  • no debugger
  • clunky way to implement functions/ subroutines
  • architectural issues with Portfolio Trader and the interaction between trading signals and the money-management signal

So, I went out on a venture to find a new platform. Here are the platforms I looked at and my findings.

QuantConnect/ LEAN

The core idea of this platform is really intriguing: a hybrid between desktop and cloud, combining the advantages of local source control and debugging with the processing power and reliability of the cloud. It is based on C#, which is a an awesome language. The APIs are really nice and clean. The simulator engine is open-source, making sure it won’t go away and allowing to add your own features (or bug fixes).

Unfortunately, there are also a few downsides. The reports are really lacking, so you will need to code your own. As of this writing, there is no optimizer available, making development of new strategies impossible. I’ve been willing to deal with this, write my own optimizer and contribute it to the open source project. However, the QuantConnect team seems to be so busy with their own stuff, that they don’t seem to be able to interact with the open source community in a meaningful way. No guidance, not even a response on some stuff that I did. And poof… there goes the advantage of open source.

I guess we have to wait for a few years until these guys have their platform improved enough to be really suitable for active strategy development.

NinjaTrader 8

NinjaTrader 8 has been announced for more than 2 years. The beta came out earlier this year, and I started looking at their release candidate. Just like NinjaTrader 7, both their APIs and their documentation are really good. Their team spends a lot of time providing excellent support on their online forum. For NinjaTrader 8, they have made the platform much more customizable. It is possible to provide your own code for report metrics, optimization criteria, and even optimization methods. I was quite impressed.

However, after playing around with it for a couple of weeks, I also saw some issues: Given that what I tested was a release candidate, it was incredibly unstable. Something I would have expected from a beta, but not dare to call a release candidate. Even worse, the platform has terrible issues, making it a complete nogo: Their way of calculating P&L percentages is outright wrong and will not work when your strategy uses any money-management techniques or trades multiple instruments simultaneously. Their way of calculating open position profit is very wrong, requiring you to keep track of that on your own, if you need access to the total portfolio value. I tried to report these issues and get into a dialog with them regarding these issues. And while I even got some feedback from the developers (which is great), that only documented that they have absolutely no clue about typical accounting rules (for the open position profit).

Sorry guys, but not having to worry about things like that is the whole point of buying a software package!

MultiCharts .NET 10

I’ve been a MultiCharts user before, and actively decided against the .NET version 2 years ago. Yet I decided to give it another try. The version I installed was their beta version. MultiChart’s APIs are still not as nice and clean as others. Their documentation is still basically non-existent. Without knowing how MultiCharts works, and looking into the documentation available for EasyLanguage/ PowerLanguage, you are pretty lost. Their architecture for the Portfolio Trader is lacking a bit.

Yes, there is no silver bullet. But: MultiCharts is rock solid, even as a beta. Their reports are really good, and the ability to save a report as Excel sheet including graphics is extremely helpful to document development progress. All the architectural issues with Portfolio Trader can be worked around, thanks to C#. Their tech-support is awesome.

So these guys have convinced me to convert my license from EasyLanguage to .NET… and I will continue to be a loyal customer for years to come.

© Felix Bertram 2002-2015. Last update September 2016.