Education onlyNot investment adviceFutures trading involves substantial risk of loss
Guide 02 · Platform

NinjaTrader 8 explained: the platform, NinjaScript and the add-on ecosystem

What the platform is, how NinjaScript and add-ons work, and the questions new users ask first.

A developer types NinjaScript code on one monitor beside a dark candlestick chart on another

NinjaTrader 8 is a desktop trading platform for futures, used for charting, simulation, order entry and automated strategies. Its own programming language, NinjaScript, is built on C# and the .NET framework, so indicators and strategies are ordinary C# classes that the platform compiles.

This page explains the platform in plain terms so you can judge it for yourself. Santana Max is independent: we are not affiliated with or endorsed by NinjaTrader, and nothing here is a recommendation to open an account anywhere.

Mechanics diagram
NinjaScriptC# sourcecompileNinjaTrader 8desktop platformChartindicators drawnStrategy Analyzerhistorical testsAccountsimulated or live
How the pieces fit: NinjaScript code is compiled into the platform, which runs it on chart data, in the Strategy Analyzer, or on a simulated or live connection.

02.1What NinjaTrader is, and whether it is a broker

The NinjaTrader name covers two things: the trading software, and a futures brokerage offered by the NinjaTrader group of companies. You can use the software for charting and simulation without trading through it, and the platform can connect to data and brokerage accounts. Because ownership and offerings change over time, check NinjaTrader's own disclosures for the current structure before you rely on any summary, including this one.

02.2NinjaScript

NinjaScript is how you extend the platform. An indicator overrides methods such as OnBarUpdate to calculate values on each bar; a strategy adds order methods such as EnterLong, ExitLong, SetStopLoss and SetProfitTarget. The State property tells your code which phase it is in, from setting defaults to configuring data series to running in real time.

Because it is C#, NinjaScript is readable by any C# developer, and code can be versioned, reviewed and tested like other software. That is the reason this site cares about it: a strategy written as code can be read line by line.

protected override void OnBarUpdate()
{
    if (CurrentBar < BarsRequiredToTrade) return;
    // read indicators, then decide; every rule is explicit
}

02.3Add-ons and the ecosystem

Add-ons are third-party indicators, strategies and tools installed into NinjaTrader 8, usually as an exported NinjaScript archive. NinjaTrader runs a vendor directory it calls the Ecosystem. Being listed there is NinjaTrader's decision, and a listing is not a statement about how a product performs.

Before installing any add-on, ask whether you get readable source or compiled code, what it changes on your charts or orders, and how to remove it cleanly.

02.4Getting started, and the Mac question

The desktop platform is Windows software. Mac users typically run it inside Windows through virtualization, or use NinjaTrader's web and mobile platforms, which do not run desktop NinjaScript. New users usually start in the built-in simulation account, which uses simulated fills.

02.5Margins, order flow and Tradovate

Futures margin is a good-faith deposit, not a cost. Exchanges set initial and maintenance margin; brokers may set their own intraday margin on top. These figures change, so read the broker's live margin page instead of a number quoted in an article.

Order flow tools show traded volume at each price inside a bar. Tradovate is a separate, cloud-based futures platform that is now part of the same group as NinjaTrader; the practical difference for a strategy writer is that NinjaScript runs on the NinjaTrader desktop platform.

Where it usually goes wrong

  • Assuming simulated fills match what a live order book would give you.
  • Installing compiled add-ons you cannot read, then forgetting they are attached to a chart.
  • Quoting margin figures from an old article instead of the broker's live page.