Request A Free Quote
NinjaTrader 7 → NinjaTrader 8

Convert NinjaTrader 7 Indicators & Strategies to NinjaTrader 8

NinjaTrader 7 code doesn’t compile in NinjaTrader 8. We keep your indicator’s or strategy’s logic and update the code for NinjaTrader 8’s API, rendering and threading — checking the result against criteria agreed with you.

NT7 Indicator to NT8NT7 Strategy to NT8NinjaScript 7 to 8Updated by Hand
3,000+ Projects Delivered
Fixed Scope & Price Before Work
Full NinjaScript Source Code
Checked Against Agreed Criteria
Overview

What NinjaTrader 7 to NinjaTrader 8 Conversion Means

NinjaTrader 7 to NinjaTrader 8 conversion means updating NinjaScript written for NinjaTrader 7 so that it runs in NinjaTrader 8. The language is the same family, but NinjaTrader 8 changed how scripts start, plot, draw, handle orders and use threads — so NinjaTrader 7 code doesn’t compile as it is, and NinjaTrader 7 exports can’t be imported. The logic is kept; the code is updated.

From
NinjaScript on NinjaTrader 7
To
NinjaScript on NinjaTrader 8
Indicator
NinjaTrader 8 indicator
Strategy
NinjaTrader 8 strategy
You receive
NinjaScript source code and everything needed to run it
Method
Logic kept, code updated by hand

What NinjaTrader 8 adds

  • Multi-threaded platformCharts, data and strategies spread across processor cores.
  • Hardware-accelerated renderingCustom drawing runs on SharpDX instead of GDI+.
  • Tick ReplayIndicators that need tick-by-tick data can calculate it on history too.
  • Order Flow+Volumetric bars and other order-flow tools, where your license includes them.
  • Current connectionsNewer connections, such as NinjaTrader Brokerage, require NinjaTrader 8.1; NinjaTrader 7 doesn’t support them.
Indicators

Convert a NinjaTrader 7 Indicator to NinjaTrader 8

Updating a NinjaTrader 7 indicator means moving its setup to NinjaTrader 8’s lifecycle and rebuilding how it plots and draws. The calculations stay the same.

Lifecycle & Settings

Setup code moves into the right stage of NinjaTrader 8’s lifecycle, and settings keep their names and defaults.

Plots & Colours

Plots and colours are rebuilt with NinjaTrader 8’s plots and WPF brushes.

Custom Rendering

Custom drawing written with GDI+ is rebuilt with SharpDX in NinjaTrader 8’s rendering method, with resources handled properly.

Drawing Objects

Lines, text, shapes and regions drawn by the indicator are updated to NinjaTrader 8’s drawing class.

Data Series

Extra data series and the logic that switches between them are updated, and Tick Replay is set up where the indicator needs tick data on history.

Improvements on Request

New settings, filters or functions can be added while upgrading.

Strategies

Convert a NinjaTrader 7 Strategy to NinjaTrader 8

Updating a NinjaTrader 7 strategy keeps its trading rules and brings its order handling, events and threading up to NinjaTrader 8.

Order Methods

Managed order logic is updated, and unmanaged order code moves to NinjaTrader 8’s methods.

Order & Execution Events

Logic that reacts to order updates and executions is moved to NinjaTrader 8’s events and checked, so fills are handled as in the original.

ATM Strategies

Code that starts or manages ATM strategies is updated to NinjaTrader 8. An ATM version is checked on simulation or Playback: ATM strategies don’t run in backtests.

Calculation Mode

The calculate-on-bar-close setting becomes NinjaTrader 8’s calculation mode, with Tick Replay or extra series where intrabar history is needed. Tick Replay recalculates on history but doesn’t make historical fills more accurate — the fill model is checked separately.

Sessions

NinjaTrader 7 session templates are matched to NinjaTrader 8’s trading hours templates.

Thread Safety

Buttons, panels and other interface code are made safe for NinjaTrader 8’s multi-threaded platform.

Backtest results in NinjaTrader 8 can differ from NinjaTrader 7: data, fill settings and calculation timing can change between versions. We check that entries and exits follow the same rules.

Platform differences

NinjaScript 7 to NinjaScript 8: What Changes and How We Handle It

NinjaTrader 8 runs NinjaScript in a different way from NinjaTrader 7. These are the differences that decide whether a converted script behaves like the original — and what we do about each of them.

Script lifecycle

Separate setup methods that run once at start

One state-based method that runs at each stage of the script’s life

Each piece of setup is moved to the right stage, so settings, data and resources load when they should.

Calculation

A single switch for calculating on bar close or on every tick

Three calculation modes, and Tick Replay for intrabar history

The original’s calculation timing is kept and checked on history and in real time.

Plots and colours

Windows Forms colours and GDI+ drawing

WPF brushes and hardware-accelerated SharpDX rendering

Plots and custom drawing are rebuilt; the look is agreed with you.

Drawing objects

Separate methods for each drawing object

A single drawing class with updated parameters

Lines, text and shapes are updated, including their tags and colours.

Settings

Older property attributes

New property attributes and categories

Settings keep their names and defaults unless you want them changed.

Orders and events

Older unmanaged order methods and order events

Updated order methods, and order and execution events

Order handling is updated and checked, so fills and order states are handled as in the original.

Threading

Mostly single-threaded

Multi-threaded; interface work goes through the dispatcher

Buttons, panels and other interface code are made thread-safe.

What may not carry over one to one

Some things depend on the platform itself: NinjaTrader 7 exports and compiled assemblies can’t be imported into NinjaTrader 8, so the source is needed; third-party add-ons the code relies on need NinjaTrader 8 versions or replacements; and some bar types and settings work differently in NinjaTrader 8. We point these out before work starts and agree the closest NinjaTrader 8 equivalent with you.

Upgrade, not just a recompile

Why Making It Compile Isn’t Enough

NinjaTrader publishes a list of code-breaking changes, and working through it can make NinjaTrader 7 code compile in NinjaTrader 8. The risk is an unchecked result: compiled code can still behave differently, because NinjaTrader 8 calls scripts in stages, draws differently and runs on several threads. We keep the logic and update the code by hand.

Automatic conversionManual conversion at Nordman Algorithms
Starting pointOften a find-and-replace pass until the code compilesHow the NinjaTrader 7 version behaves
Platform differencesOften found later, if at allIdentified before work starts and agreed with you
Rendering and threadsCustom drawing and interface code patched until it compilesRebuilt for SharpDX rendering and NinjaTrader 8’s threading

Where unchecked upgrades usually go wrong

  • Setup at the wrong stageCode moved into the wrong stage of NinjaTrader 8’s lifecycle loads data or resources too early or too late, so first values are missing or settings don’t apply.
  • Custom drawing that slows the chartGDI+ drawing ported to SharpDX without handling its resources properly can leak memory or slow the chart down.
  • Interface calls from the wrong threadButtons and panels updated outside the dispatcher can freeze NinjaTrader 8 or make it throw errors.
  • Calculation timing lostA strategy that relied on calculating on every tick behaves differently if the calculation mode or Tick Replay isn’t set up the same way.
  • Order events handled the old wayNinjaTrader 8 reports orders and executions through updated events; logic written for NinjaTrader 7 can miss fills or handle them twice.
  • Signals on the wrong data seriesWith extra data series, NinjaScript runs the code for each series in turn; logic that doesn’t check which series is updating acts on the wrong one.

Have a NinjaTrader 7 indicator or strategy you want in NinjaTrader 8?

Send it to us — we review it and give you a fixed price and timeline before work starts.

Discuss Your Project
Checking the result

How We Check the Converted Script

We run the NinjaTrader 7 original and the NinjaTrader 8 version on the same instrument and timeframe, with matching trading sessions and bar timestamps, and compare them against acceptance criteria agreed with you:

  • Calculated values on selected bars
  • Reloading and restarts — settings changes, script reloads and strategy restarts; for custom drawing, chart resizing and zooming
  • Signal timing — on which bar a signal appears, inside the bar or after it closes
  • Entry and exit conditions for strategies
  • Agreed deviations — differences accepted in advance, such as visual layout or broker-specific execution

If something doesn’t match, we find the cause — price data, platform behaviour or the code — and check the result against the agreed specification.

What you receive

  • NinjaScript source code — the full code of the indicator or strategy
  • Everything needed to run it in NinjaTrader 8; we help with installation if you need it
  • Settings agreed with you before work starts
  • Fixes for bugs and differences from the agreed specification after delivery
Process

How a NinjaTrader 7 to NinjaTrader 8 Conversion Works

  1. Send the NinjaScript 7 code

    Share the .cs files, any custom indicators the code uses and your strategy or ATM settings — plus a short description.

    You sendSource + dependencies
  2. Review and fixed quote

    We analyse the code, point out anything that works differently in NinjaTrader 8, and agree the target NinjaTrader 8 version and connection, settings, acceptance criteria, price and timeline.

    You getFixed price + criteria
  3. Update for NinjaTrader 8

    The indicator or strategy is updated for NinjaTrader 8’s API, including any extra features you asked for.

    We buildThe NinjaTrader 8 version
  4. Check against the criteria

    The NinjaTrader 8 version is checked against the acceptance criteria agreed in step 2.

    We checkValues, signals, trades
  5. Delivery and support

    Bugs and differences from the agreed specification are fixed after delivery.

    You getSource + files to run
Scope

What Affects the Price and Timeline

Every indicator and strategy is reviewed before we quote. These are the main factors.

Size of the Code

How much logic the code contains and how many parts depend on each other.

Custom Drawing

Charts drawn with GDI+ that need rebuilding with SharpDX.

Trade Handling

For strategies: unmanaged orders, order events, ATM strategies and partial exits.

Interface Elements

Buttons, panels and windows that need NinjaTrader 8’s interface and threading.

Add-Ons & Third-Party Indicators

Add-ons or indicators the code relies on — without NinjaTrader 8 versions or source they need a replacement.

Only a Compiled Assembly?

NinjaTrader 8 can’t import NinjaTrader 7 assemblies. Without the .cs source, recreating the code from your description is assessed separately.

FAQ

NinjaTrader 7 to NinjaTrader 8 Conversion — Common Questions

No. NinjaTrader 8 changed the NinjaScript API — how scripts start, plot, draw, handle orders and use threads — so NinjaTrader 7 code doesn’t compile in NinjaTrader 8 without being updated.

No. NinjaTrader 8 doesn’t import NinjaTrader 7 exports or assemblies, so the .cs source code is needed. Without it, we can assess recreating the indicator or strategy from your description — but an exact match can’t be promised in advance.

No. The logic is kept and the code is updated for NinjaTrader 8. Changes to the logic are made only if you ask for them.

Custom drawing written with GDI+ in NinjaTrader 7 is rebuilt with NinjaTrader 8’s SharpDX rendering. The agreed information is kept, and the look is agreed separately.

On the same data, values should match closely. Differences can come from the calculation mode, Tick Replay, session settings or the data itself; how closely values must match is agreed before work starts, and any difference is traced to its cause.

Yes, when trade management is written in the strategy’s own code: it then runs in the Strategy Analyzer for backtesting and optimisation. Tick Replay helps calculations on history but doesn’t make historical fills more accurate, so the backtest’s fill settings are checked separately. ATM strategies don’t run in backtests, so an ATM version is checked on a simulation account or in Playback.

Yes. New settings, filters or functions can be added as part of the same project; they are agreed and priced before work starts.

No. NinjaTrader’s list of code-breaking changes helps, but the update is done and checked by hand, so the NinjaTrader 8 version behaves like the original.

It depends on the size of the code, custom drawing, the trade handling and any add-ons the code relies on. After reviewing your NinjaScript code we give you a fixed price and an estimated timeline before work starts.

Send Your NinjaScript Code for a Quote

Share the NinjaTrader 7 .cs files with any custom indicators they use, and a short description of what the indicator or strategy does. We will review it and give you a fixed price and timeline before work starts.

Free Technical Assessment
Fixed Price Before Work
Source Code Ownership