In this article
After this article, you can
- Distinguish casting an operand before division from casting the result.
- Check a migrated rule on a small example before testing the full strategy.
Terms at hand: Backtesting · Trading Plan · CFD (contract for difference) · Commission · Demo account · ESMA regulation
Compare NinjaTrader and MetaTrader 5 for the instrument, account and task you actually need. Both support algorithmic work, but available markets, data, connections and simulation modes differ. A platform name does not establish complete market depth, accurate fills or an economical licence. Start by separating software capabilities from the broker’s product and your data subscription.
Who was each platform built for?
MT5 is a multi-asset platform offered by many brokers, but availability and instruments depend on the broker’s entity and account type. Some provide exchange-traded futures as well as currencies or CFDs. EU regulatory status does not imply that a firm offers MT5.
NinjaTrader Desktop supports several markets through its documented connections; it is not confined to one futures broker. The current EEA account guide names Payward Europe Digital Solutions (CY) Limited, regulated by CySEC under licence 342/17. Its application country selector determines supported residences, and individual approval is still required. Confirm the instrument, contracting company and supported connection rather than assuming that every NinjaTrader user needs a US brokerage account.
How do the data and volume differ?
Exchange trade volume and displayed order-book quantities answer different questions. NinjaTrader’s data coverage depends on the connection and subscription. Level II is not created by the program, and visible offers can be withdrawn before your order arrives. MT5 also distinguishes tick volume from real trade volume when the symbol provides it. Neither a futures feed nor one OTC stream is the total worldwide spot-FX market.
OTC forex has no single consolidated market-wide volume feed. A broker’s FX chart commonly shows tick volume, while MT5 can also display real trade volume for instruments whose data provide it, including exchange-traded products. The distinction follows the instrument and feed, not simply the platform name.
The same filter, but the fraction vanishes before conversion
When migrating a rule, check numeric types too. Our example calculates the share of conditions met: int a = 2; int b = 3;. In C# and MQL5, (double)(a / b) first divides two integers to obtain 0, then converts the result to 0.0. By contrast, (double)a / b converts the operand before dividing, giving approximately 0.6667.
Scroll sideways to see the full diagram
If the condition is ratio > 0.5, the first expression fails and the second passes. Declaring the destination variable as double is insufficient: double x = a / b; also receives zero. Before migrating a robot, write a small input-output check for this fragment and compare both languages.
Assumptions: This is a hypothetical, dimensionless share of two conditions met out of three. The threshold > 0.5 is our test rule, not an estimated probability of profit. Both a and b are int; we compare neither platform speed nor financial returns. Official references: C#: division and operand types; MQL5: type conversion; NinjaScript and C#.
C# or MQL5 — what do you code strategies in?
NinjaScript extends C#, while MetaTrader uses MQL5. Choose according to the code, libraries and account interface you need; neither language guarantees a faster learning curve or better trading. During migration, test numeric types, event timing and order state. The existing diagram shows how casting an operand before division differs from casting an already truncated integer result.
MQL5 includes a documented environment and a market of ready-made programs, but compatibility and behaviour still need checking. A library does not establish how many weeks you will save. Record how the program identifies existing orders after a restart and avoids duplicate submissions. For the basic structure, see our introduction to automated expert advisors (EAs).
Which backtesting is more accurate?
NinjaTrader Playback can use Market Replay recordings with Level I and Level II, or historical ticks without depth. Strategy Analyzer instead applies its historical fill model. Standard uses a hypothetical path within each bar; High can use finer secondary data. Tick Replay is a different script-calculation feature and cannot be combined with High Order Fill Resolution.
Check the behaviour your strategy depends on. NinjaTrader documents that session-end TimeInForce expiry is not supported in Sim101 and Playback101. A successful replay therefore does not verify that cancellation rule. More detailed recorded prices also do not guarantee the queue position or market impact of your own future order.
MT5 can test on broker-supplied real ticks or generated ticks. A minute bar missing real ticks can require generated data, even within the real-tick mode. Multi-currency testing requires an EA that actually uses those instruments. Genetic optimisation and distributed computation change the search or computation, not the quality of missing observations. Use a separate period and inspect individual trades when applying walk-forward analysis.
Match the platform to the instruments, data and execution workflow available through your account. A replay or backtest is useful only when its assumptions fit the question you are testing.
What does it cost, and with how many brokers does it work?
MT5’s client application can be supplied without a platform subscription, while account, data, financing, commission and hosting costs remain separate. NinjaTrader’s US pricing page describes Free, Monthly and Lifetime for the named clearing entity. Its Desktop Multi-Broker add-on is a separate connection product. Match the actual country, account and all-in tariff before applying any displayed rate.
Our hypothetical schedule uses plan A at USD 0.50 per side with no monthly charge, and B at USD 0.40 per side plus USD 49 per month. These are invented teaching inputs, not NinjaTrader or MT5 prices. For a full opening and closing of one contract, B saves USD 0.20 before its monthly charge: the break-even count is 49 / 0.20 = 245.
| Completed trades/month | Plan A | Plan B |
|---|---|---|
| 100 | USD 100 | USD 129 |
| 245 | USD 245 | USD 245 |
| 300 | USD 300 | USD 289 |
The decision changes if permitted usage is flexible. For four months with 100, 400, 100 and 400 completed trades, always using A costs USD 1,000. Always using B costs 0.80 × 1,000 + 4 × 49 = USD 996. If the model permits a free choice before each month, A in the quiet months and B in the busy months costs 100 + 369 + 100 + 369 = USD 938.
That last policy is available only under our explicit switching assumption. It is not a licence condition, and you cannot select a plan retrospectively after knowing the month’s activity. Check commitments, change deadlines and return fees. Increasing trades merely to justify a subscription does not follow from this cost model. The platforms section provides wider context.
Example: how to choose in two typical situations
Both scenarios below are hypothetical — they show a way of thinking about the choice, not real people.
Situation A. A trader already has a supported MT5 account, suitable symbol data and tested MQL5 code. A move needs a specific reason, such as an unavailable test function or connection. A familiar chart or a claim that another package is more professional is insufficient. Separate any product change from the software comparison.
Situation B. A trader wants to practise a futures session with recorded depth. Check whether the exact instrument and date have usable Market Replay data, then test the required order behaviour. Compare data, platform and account costs. Neither the simulator nor the smallest available contract establishes affordable risk for every capital balance.
What to do tomorrow
- Write down the instruments, account entity, required connections and testing tools. Compare the actual supported platforms and total costs before choosing; a regional label alone does not establish compatibility.
- Download MetaTrader 5 from your broker and open a demo account, then walk through the Strategy Tester on a single currency pair so you can see for yourself how the "every tick" mode and parameter optimisation actually behave.
- Choose an available Market Replay recording or a historical-tick playback and note which data it contains. Use a separate simulation workspace and test the order behaviour you need; do not infer full depth or session-end expiry from a moving chart.
- Before you pay for any lifetime licence, count your real number of contracts per month and compare commissions across the free, subscription and lifetime tiers — only that arithmetic, not the marketing, will show whether the fee pays for itself.
- If you plan to automate, write down one rule independently of the language. Compare its inputs, numeric conversion and first order events in the intended environment before migrating the whole program.
Related reading: the NinjaTrader platform in detail, the advantages of MetaTrader 5 and cTrader versus MT5.
Check your understanding
One short exercise
About 2 min · you can try again
With int a = 2 and int b = 3, the filter requires ratio > 0.5. Which expression passes in C# and MQL5?
- (double)a / b
- (double)(a / b)
- double x = a / b; then x > 0.5
Check the answer and explanation
(double)a / b
a is converted before division, giving approximately 0.6667, greater than 0.5.
Frequently asked
How do NinjaTrader and MT5 differ in one sentence?
Compare supported products, account connections and the task: manual playback, algorithm testing or live execution. MT5 can receive exchange data; NinjaTrader Desktop can use several supported providers. Confirm what the actual account supplies before choosing.
C# (NinjaScript) or MQL5 — which to choose for automation?
NinjaScript extends C#; MT5 uses MQL5. Existing code, account APIs and required libraries matter more than a universal easy-language ranking. Test the migrated rule, including numeric types and order state. Our example gives zero after integer division but about 0.6667 if the operand is converted first.
Which backtesting is more accurate?
There is no universal winner. Match data and fill assumptions to the task. NinjaTrader historical fills, Market Replay and Tick Replay have distinct limits; Sim101/Playback101 do not implement session-end TimeInForce expiry. MT5 real-tick tests can generate missing observations. Inspect the affected transactions instead of treating a mode name as proof.
How much does each platform cost?
Apply the current tariff for the account, region, data and product. A subscription saves money only if permitted activity and commission savings exceed its fee. In our fictional USD 49 monthly model with USD 0.20 saved per completed one-contract trade, break-even is 245. Other fees are assumed equal.
Sources & bibliography
-
MetaQuotes MetaTrader 5 Strategy Tester · Official documentation of MT5 strategy testing, including every-tick modeling, optimization and cloud computation. www.metatrader5.com ↗
-
MQL5.com MQL5 Reference · Reference documentation for MQL5 Expert Advisors, indicators and scripts. www.mql5.com ↗
-
MQL5.com MQL5 Market — Expert Advisors for MT5 · A marketplace listing of ready-made Expert Advisors for MetaTrader 5. www.mql5.com ↗
-
DayTrading.com NinjaTrader Review · A third-party platform review covering futures, data-feed options, pricing and license models. www.daytrading.com ↗
-
NinjaTrader How to open a futures account in the EEA · The current guide identifies PEDSL-CY and its CySEC licence, individual accounts and the application country selector. An available platform does not establish approval of a particular applicant. ninjatrader.com ↗
-
NinjaTrader Understanding Historical Fill Processing · Explains simulated bar paths, secondary-series resolution and supported slippage; Tick Replay and High fill resolution cannot be combined. ninjatrader.com ↗
-
NinjaTrader Playback Connection — Set Up · Distinguishes Market Replay recordings from historical ticks, their depth coverage and the unsupported session-end TimeInForce behaviour in Sim101/Playback101. ninjatrader.com ↗
