NinjaTrader vs MultiCharts vs TradeStation for automating your strategy
All three are mature desktop platforms that can run a strategy automatically, and we have built on all three. They differ less in what they can do than in how you get there: the language you write in, the brokers you can reach, and the testing tools you get. Here is the comparison from the developer’s chair, using the vendors’ own documentation.
The short answer
NinjaTrader suits futures traders and C# developers. MultiCharts suits traders who want one platform across many brokers and data feeds. TradeStation suits traders who want the platform and the brokerage in one, with strategies in EasyLanguage. If you need several brokers under one risk limit, or a system that runs on a server without a desktop session, a custom system on the broker’s API fits better.
Side by side
| NinjaTrader 8 | MultiCharts | TradeStation | |
|---|---|---|---|
| Language | NinjaScript (C#) | PowerLanguage; MultiCharts .NET uses C# or VB.NET | EasyLanguage |
| Where orders go | Connections include CQG, Rithmic and Interactive Brokers | Several brokers, including Interactive Brokers, TradeStation, AMP, Saxo Bank and Trading Technologies | TradeStation brokerage accounts |
| Data | Separate data and order connections possible, for example Kinetick or IQFeed for data | Feeds include IQFeed, dxFeed, Rithmic, Barchart and Bloomberg | TradeStation data |
| Testing tools | Strategy Analyzer, Market Replay | Backtesting and optimisation; .NET strategies can read external databases | Strategy optimisation, Walk-Forward Optimizer, RadarScreen scanning |
| Practice trading | Simulated accounts | See the MultiCharts docs | Simulated trading for brokerage clients |
NinjaTrader: futures traders and C# developers
NinjaTrader 8 strategies, indicators and add-ons are written in NinjaScript, which is C#. It is popular with futures traders, connects through providers such as CQG and Rithmic, and lets you take data from one source and send orders through another. Market Replay is a genuinely useful way to test how a strategy behaves on recorded sessions. See NinjaTrader development.
MultiCharts: one platform, many brokers
MultiCharts is broker-neutral: it connects to a long list of brokers and data feeds, so you can keep your platform if you change broker. Strategies are written in PowerLanguage, or in C# or VB.NET with MultiCharts .NET, which can also send one strategy’s orders to more than one broker and read from external databases.
TradeStation: platform and broker in one
TradeStation combines the platform and the brokerage. Strategies are written in EasyLanguage, an English-like language built for traders, and become automated when applied to a live chart with automation turned on. Its Walk-Forward Optimizer, which tests optimised settings on data held back from the optimisation, is one of the better built-in tools for honest testing. For systems that run outside the platform, TradeStation also offers a web API; see our broker API comparison.
When none of them fits
A desktop platform is the right home for many strategies. It stops being the right home when you need several brokers under one risk limit, data the platform cannot take in, or a system that runs on a server without a desktop session. That is when a custom system on the broker’s API makes more sense. Our comparison of MetaTrader and a custom API system works through the same question for MetaTrader.
Common questions
- Which platform is best for automating my own strategy?
- It depends on your broker and how you like to work. TradeStation suits traders who already have a TradeStation account and want strategies in EasyLanguage. NinjaTrader suits futures traders who want C# and a wide choice of data and order connections. MultiCharts suits traders who want one platform across several brokers.
- Can a NinjaTrader strategy trade through Interactive Brokers?
- NinjaTrader lists Interactive Brokers among its connections, and its documentation describes using one connection for data and another for orders. The details depend on your accounts, so we confirm the setup before a build.
- Can I move a strategy between these platforms?
- Yes, by rewriting it. The logic moves; the code does not, because each platform has its own language and its own way of processing bars and orders. A careful port runs the old and new versions on the same data until the signals match.