Request A Free Quote
NinjaTrader → MT5 Conversion

Convert NinjaTrader Strategies & Indicators to MT5

We rewrite NinjaScript strategies as MT5 Expert Advisors and NinjaScript indicators as MT5 custom indicators — rebuilding positions, sizes and sessions for your MT5 account, and checking the result against criteria agreed with you.

NinjaTrader Strategy to MT5 EANinjaTrader Indicator to MT5NinjaScript to MQL5Rewritten by Hand
3,000+ Projects Delivered
Fixed Scope & Price Before Work
.mq5 Source Code & .ex5 File
Checked Against Agreed Criteria
Overview

What NinjaTrader to MT5 Conversion Means

NinjaTrader to MT5 conversion means rewriting NinjaScript in MQL5: a NinjaScript strategy becomes an MT5 Expert Advisor and an indicator becomes an MT5 custom indicator. The move can keep the same market — some MT5 brokers offer exchange futures — or change it, for example from ES futures to a US500 CFD. If the instrument changes, trade sizes, price distances and sessions are adapted as well.

From
NinjaScript (C#) on NinjaTrader 8
To
MQL5 on MetaTrader 5
Strategy
MT5 Expert Advisor
Indicator
MT5 custom indicator
You receive
.mq5 source code and .ex5 file
Method
Rewritten by hand, no automatic converters
Strategies

Convert a NinjaTrader Strategy to an MT5 Expert Advisor

A NinjaScript strategy and an MT5 Expert Advisor automate the same kind of trading, but they track positions, size trades and react to new data differently. Converting a strategy keeps its trading rules and rebuilds its trade handling for MT5.

Entries & Exits

Managed or unmanaged NinjaScript order logic is rebuilt with MT5 trade operations — including scaling in, partial exits, exits tied to specific entries by signal name, and reversals: a managed entry against an open position reverses it in NinjaScript — unmanaged logic follows its own orders — while a plain buy in MT5 can open a separate opposite position on a hedging account.

Positions & Account Type

On a hedging account each entry can stay a separate position; on a netting account all deals on a symbol make one shared position, and a magic number doesn’t split it. Named entries and their exits are mapped for your account type — on netting, with the EA’s own record of each entry — and how the EA works alongside other EAs, manual trades and positions already open at start is agreed in advance.

Contracts to Lots

Contract or unit sizing becomes lots for the MT5 symbol, rounded to its volume step and checked against your risk rules.

ATM Strategies

Trade management that relies on NinjaTrader ATM strategies — stops, targets, trailing and scaling out — is rebuilt as the EA’s own rules, since MT5 has no ATM strategies.

Instrument & Sessions

Each NinjaTrader instrument is matched to an MT5 symbol. If the instrument changes, the EA is adapted to its tick size, tick value and sessions in your broker’s server time. Since a trading hours template decides which data the chart uses, the RTH or ETH data set, bar and trading-day boundaries and session resets are checked too.

Calculation & New Bars

On-bar-close logic runs once per new bar. On-each-tick and on-price-change logic is rebuilt for MT5’s tick events — on-price-change with an explicit filter that skips updates at an unchanged price — which aren’t queued while a previous tick is still being processed — so the agreed calculation mode is reproduced and intrabar behaviour is checked, including updates for other symbols in multi-symbol strategies.

MT5 Strategy Tester results won’t match the Strategy Analyzer exactly: the platforms use different data — sometimes for a different instrument — and model fills differently. We check that entries and exits follow the agreed rules. ATM-based logic doesn’t run on history in NinjaTrader, so its original behaviour is compared on Simulation or Playback.

Indicators

Convert a NinjaTrader Indicator to MT5

Converting a NinjaTrader indicator to MT5 means rebuilding its calculations in MQL5 and how it draws on the chart. We convert standard, custom, multi-series and order-flow indicators, as well as panels and dashboards.

Calculations & Plots

Calculations are rebuilt in MQL5; plots become indicator buffers, including colours that change from bar to bar. Any visual differences are agreed in advance.

Custom Rendering

Charts drawn with SharpDX are redrawn with MT5 chart objects or a canvas; the agreed information is kept and the look is agreed separately.

Additional Data Series

Extra data series become data requested from other timeframes or symbols, keeping the original’s behaviour — from the forming bar or from confirmed bars only.

Bar Types

Tick, range or Renko bars are built on a custom symbol or in the code’s own calculation. For strategies, signals come from these bars while orders go to the broker’s real symbol, since custom symbols can’t be traded. Volume bars need traded volume, which MT5 provides only for some exchange instruments, so their feasibility is assessed before conversion; building them from tick volume instead would change the original logic and is agreed separately.

Order-Flow Data

Indicators built on volumetric data need suitable tick data — trade prices, volumes, bid and ask or trade direction — not just a volume figure. What your MT5 broker provides is checked before work starts; it is usually available only for exchange instruments.

Built-In Indicators & Alerts

Calls to NinjaTrader’s built-in indicators use MT5’s own indicators where their values match — otherwise we write the calculation — and alerts become MT5 alerts and notifications.

Platform differences

NinjaScript to MQL5: What Changes and How We Handle It

NinjaTrader and MetaTrader 5 trade different instruments and run code in different ways. These are the differences that decide whether a converted script behaves like the original — and what we do about each of them.

Instruments

Futures, forex or stocks from your NinjaTrader connection

Forex, CFDs, stocks or futures from your MT5 broker

If the instrument changes, we agree which one replaces each NinjaTrader instrument and adapt sizes, price distances and sessions.

Trade size

Contracts or units

Lots, rounded to the symbol’s volume step

Sizes are recalculated for the MT5 symbol and checked against your risk rules.

Positions

The strategy’s own position, tracked separately from the account’s

Separate positions on a hedging account; one shared position per symbol on a netting account

We map each entry and its exits for your account type — on netting, with the EA’s own record of entries — and agree how the EA works alongside other EAs, manual trades and positions already open at start.

Trading hours and time zone

The trading hours template and the platform time zone

Your broker’s server time and the symbol’s sessions

We compare sessions, bar timestamps and the time zone each version’s logic uses — matching chart clocks alone isn’t enough.

Calculation

Calculation mode per script: on bar close, on each tick or on price change

An EA reacts to tick events for its chart symbol; ticks that arrive while one is being processed aren’t queued

We reproduce the agreed calculation mode and check intrabar behaviour — for multi-symbol strategies, also how updates for other symbols arrive.

Bar types

Tick, volume, range, Renko and other bar types

Time-based timeframes; other bars through custom symbols or code

We agree how non-time bars are built — and, for strategies, that signals use them while orders go to the broker’s real symbol.

Backtesting

Strategy Analyzer, with order fill resolution settings

Strategy Tester, on real ticks, 1-minute bars or open prices

We agree the tester settings, so both backtests are compared on similar assumptions.

What may not carry over one to one

Some things depend on the platform itself: NinjaTrader add-ons and third-party indicators the code relies on need their source or a replacement; .NET libraries need an MQL5 equivalent or a DLL, checked one by one; and tick data for order flow — trade prices, volumes, bid and ask — depends on what your MT5 broker provides. We point these out before work starts and agree the closest MT5 equivalent with you.

Why manual

Manual vs. Automatic Conversion

A converter or an AI pass can produce MQL5 code quickly. The risk is not the tool but an unchecked result: code can compile and still trade differently, because NinjaTrader and MetaTrader work with different instruments, sizes and positions. We start from how the NinjaTrader version behaves and rebuild it for MT5.

Automatic conversionManual conversion at Nordman Algorithms
Starting pointOften the C# code translated, statement by statementHow the NinjaTrader version behaves
Platform differencesOften found later, if at allIdentified before work starts and agreed with you
Positions and sizesContracts and signal names copied as they areRebuilt for MT5 lots and your account type

Where unchecked conversions usually go wrong

  • Contracts copied as lotsOne contract copied as 1.0 lot is a different exposure — the size has to be recalculated for the MT5 symbol and its volume step.
  • Ticks copied as pointsA 10-tick stop copied as 10 points is a different distance — distances have to be converted with the symbol’s tick size.
  • Exits that lose their entryNinjaScript exits tied to named entries need their own tracking in MT5 — by position on a hedging account, by the EA’s own record of entries on a netting account — or they close the wrong trades.
  • Bar-close logic firing on every tickAn EA runs on every tick; logic written for on-bar-close fires many times per bar unless new bars are detected.
  • Opposite trades nettedOn a netting account, an opposite order reduces or reverses the position instead of opening a second one; logic that expects both fails.
  • Indicator values read too earlyValues copied from an MT5 indicator before it has finished calculating come back empty or stale, so the first signals are wrong.

Have a NinjaTrader strategy or indicator you want in MT5?

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 original and the MT5 version on the same timeframe, with matching trading sessions and bar timestamps, and compare them against acceptance criteria agreed with you:

  • Calculated values on selected bars
  • 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 the instrument stays the same, we compare values and signal timing directly. If it changes — say, from a futures contract to a CFD — the data differ, so we check that the agreed rules are followed and the risk is recalculated correctly, rather than expecting identical values or trades. If something doesn’t match, we find the cause — price data, platform behaviour or the code.

What you receive

  • .mq5 — full MQL5 source code
  • .ex5 — compiled file, ready to use in MetaTrader 5; 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 to MT5 Conversion Works

  1. Send the NinjaScript code

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

    You sendSource + dependencies
  2. Review and fixed quote

    We analyse the code, agree the MT5 symbol, account type and sessions — the same market or a new one — and agree settings, acceptance criteria, price and timeline.

    You getFixed price + criteria
  3. Rewrite in MQL5

    The strategy or indicator is rebuilt as an MT5 Expert Advisor or custom indicator, including any extra features you asked for.

    We buildThe MT5 version
  4. Check against the criteria

    The MT5 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 get.mq5 + .ex5 files
Scope

What Affects the Price and Timeline

Every strategy and indicator 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.

Trade Handling

For strategies: order methods, ATM-based management, positions, scaling and partial exits.

Bar Types & Data Series

Non-time bar types and additional data series the code relies on.

Custom Rendering

Charts drawn with SharpDX that need MT5 chart objects or a canvas.

Add-Ons & Libraries

NinjaTrader add-ons, third-party indicators or .NET libraries the code uses — each is checked and replaced where needed.

Only a Compiled Assembly?

Conversion needs the .cs source. Without it, recreating the strategy or indicator from your description is assessed separately.

Alternative

Alternative to Full Conversion: Copy NinjaTrader Trades to MT5

If your strategy already works in NinjaTrader and you want its trades on an MT5 account, you may not need a conversion at all.

Nordman Algorithms product

NinjaTrader to MT5 Trade Copier

Copies trades from your NinjaTrader account to MetaTrader 5. Your strategy keeps running in NinjaTrader.

  • Your strategy keeps running unchanged in NinjaTrader
  • No conversion of your code needed
  • Included in the All-Access Subscription, with a 5-day free trial
View the NinjaTrader to MT5 Copier

Choose a conversion if

  • you want the strategy to run inside MT5 on its own
  • you want to change or extend the logic in MQL5
  • you want to backtest it in the MT5 Strategy Tester

Choose the trade copier if

  • your strategy already works well in NinjaTrader
  • you want to start trading in MT5 without development
  • you keep developing your strategy in NinjaScript
FAQ

NinjaTrader to MT5 Conversion — Common Questions

No. MetaTrader 5 runs MQL5; NinjaScript code has to be rewritten.

Yes. The strategy’s rules are kept and its trade handling is rebuilt for MT5 — lots, positions on your account type, protective orders and any extra trade management — with sizing and risk agreed with you.

If its logic suits the new instrument, yes. Sizes, price distances and trading sessions are adapted, and how the EA behaves on the new instrument is checked against the agreed rules — a different market can give different results. If your MT5 broker offers the same futures, the market stays the same, but the symbol’s specification, volume, sessions and execution are still checked.

MetaTrader 5 has no ATM strategies. Trade management that relies on them — stops, targets, trailing and scaling out — is rebuilt as the EA’s own rules. Because ATM strategies don’t run on history in NinjaTrader, the original behaviour is compared on Simulation or Playback.

MetaTrader 5 charts use time-based timeframes. Tick, range or Renko bars can be built on a custom symbol or in the code itself; volume bars need traded volume, which MT5 provides only for some exchange instruments, so their feasibility is assessed first. Real trades can’t be placed on a custom symbol, so a strategy calculates its signals on these bars and places orders on your broker’s real symbol; how this is set up and checked is agreed before work starts.

On the same market, values can come close but not always match exactly: your NinjaTrader connection and your MT5 broker provide different data, and some built-in indicators are calculated slightly differently. If the instrument changes, identical values aren’t the goal — we check that the agreed rules are followed and the risk is recalculated correctly.

Yes, in the MT5 Strategy Tester. Results won’t match the Strategy Analyzer exactly — the platforms use different data and model fills differently — so we agree the tester mode and check that entries and exits follow the agreed rules.

Yes — that’s the reverse route, MT5 to NinjaTrader conversion. The same approach applies, with instruments, sizes and positions mapped the other way.

It depends on the size of the code, the trade handling, custom drawing, bar types 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 .cs files with any custom indicators or add-ons they use, and a short description of what the strategy or indicator does and which MT5 symbol it should trade. 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