Request A Free Quote
cTrader → MT5 Conversion

Convert cTrader cBots & Indicators to MT5

We rewrite cTrader cBots as MT5 Expert Advisors and cTrader indicators as MT5 custom indicators — converting units to lots, pip stops to price levels and labelled positions to your MT5 account, and checking the result against criteria agreed with you.

cBot to MT5 EAcTrader Indicator to MT5cTrader C# to MQL5Rewritten by Hand
3,000+ Projects Delivered
Fixed Scope & Price Before Work
.mq5 Source Code & .ex5 File
Checked Against Agreed Criteria
Overview

What cTrader to MT5 Conversion Means

cTrader to MT5 conversion means rewriting cTrader’s C# code in MQL5: a cBot becomes an MT5 Expert Advisor and an indicator becomes an MT5 custom indicator. Both platforms usually trade the same forex and CFD symbols, so the market rarely changes — what changes is how trades are sized, how stops are set, how positions are tracked and how the code reacts to new data.

From
C# on cTrader
To
MQL5 on MetaTrader 5
cBot
MT5 Expert Advisor
Indicator
MT5 custom indicator
You receive
.mq5 source code and .ex5 file
Method
Rewritten by hand, no automatic converters

cTrader features and how they work in MT5

cTrader featureIn cTraderIn MT5
Volume in unitsYesPartlyConverted to lots — on EURUSD with a 100,000 contract size, 10,000 units = 0.10 lot
Stops set in pipsYesPartlyConverted to price levels
Hedging and netting accountsYesYesBoth account types exist
Position eventsYesYesTrade transaction events
Stop-limit ordersYesYesA native order type
Renko, range and tick chartsYesPartlyBuilt in code
.NET librariesYesPartlyRewritten in MQL5 or connected through a DLL
cBots

Convert a cBot to an MT5 Expert Advisor

A cBot and an MT5 Expert Advisor automate the same kind of trading, but they size trades, set stops and track positions differently. Converting a cBot keeps its trading rules and rebuilds its trade handling for MT5.

Trade Calls

Market and pending orders, modifications and closes are rebuilt as MT5 trade operations, including scaling in, partial closes and exits tied to specific entries.

Positions & Account Type

Positions found by label become positions the EA identifies by magic number. 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 — so the EA keeps its own record of entries where needed. How the EA works alongside other EAs, manual trades and positions already open at start is agreed in advance.

Units to Lots

Volume in units is converted to lots with the symbol’s contract size and volume step at your broker, and checked against your risk rules.

Pips to Price Levels

Stops and targets set in pips become price levels, converted with the symbol’s pip size and digits and kept within the broker’s stop and freeze distances. cBot stops can trigger on the opposite side of the price or after two consecutive quotes, so stop behaviour is checked, not only the distance.

Position Events

Logic tied to cTrader’s position events — opened, closed, modified — is rebuilt on MT5’s trade transaction events, where one operation can produce several transactions.

Calculation & New Bars

OnBar runs when a new bar appears; OnBarClosed reads the last closed bar, with the forming bar left out — and both wait for the tick that opens the next bar. We check not only how often bar logic runs but which bar it reads and when orders are sent; tick logic runs on MT5’s tick events, and intrabar behaviour is checked.

MT5 Strategy Tester results won’t match cTrader’s backtest exactly: the platforms use different data and model fills differently. We check that entries and exits follow the agreed rules.

Indicators

Convert a cTrader Indicator to MT5

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

Outputs & Plots

Outputs become indicator buffers, and colours that change from bar to bar become colour buffers. Any visual differences are agreed in advance.

Bar Indexing

cTrader series are indexed from the oldest bar; each series is read in MT5’s direction, so values line up bar by bar.

Other Timeframes & Symbols

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

Chart Drawings

Lines, text, shapes and panels drawn on the chart become MT5 chart objects; the look is agreed separately.

Renko, Range & Tick Charts

Renko, range and tick charts are built in the code itself or on a custom symbol; for cBots, signals come from these bars while orders go to the broker’s real symbol, since custom symbols can’t be traded.

Built-In Indicators & Alerts

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

Platform differences

cTrader C# to MQL5: What Changes and How We Handle It

cTrader and MetaTrader 5 size trades, track positions 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.

Trade size

Volume in units

Lots, rounded to the symbol’s volume step

Units are converted with the symbol’s contract size and checked against your risk rules.

Stops and targets

Often set as a distance in pips

Price levels, within the broker’s stop and freeze distances

Pip distances are converted to prices with the symbol’s pip size and digits.

Positions

Hedging or netting account; positions found by label

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, and agree how the EA works alongside other EAs, manual trades and positions already open at start.

Trade events

Events when positions open, close or change

Trade transaction events, several per trade operation

Reactions to opened, closed and modified positions are rebuilt and checked.

Calculation

OnBar runs as a new bar opens; OnBarClosed reads the last closed bar; both wait for the next bar’s first tick

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

We match which bar each piece of logic reads — forming or closed — and when orders are sent, and check intrabar behaviour.

Bar indexing

Series indexed from the oldest bar

Arrays and buffers that can be indexed in either direction

We check the reading direction for every series, so values line up bar by bar.

Chart types

Time, tick, Renko, range and Heikin-Ashi charts

Time-based timeframes

Non-time charts are built in code; for EAs, orders go to the broker’s real symbol.

What may not carry over one to one

Some things depend on the platform itself: .NET libraries and NuGet packages, which MQL5 can’t load directly and which need rewriting or a 64-bit native DLL wrapper; web requests, which MT5 allows only to addresses you add in its settings and not from indicators or in the Strategy Tester — so an indicator with external data may need a separate component, and a backtest may need data saved in advance; and cTrader Cloud, which has no MT5 equivalent — an EA runs in your terminal or on a VPS. 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 cTrader and MetaTrader size trades, set stops and index bars differently. We start from how the cTrader version behaves and rebuild it for MT5.

Automatic conversionManual conversion at Nordman Algorithms
Starting pointOften the C# code translated, statement by statementHow the cTrader version behaves
Platform differencesOften found later, if at allIdentified before work starts and agreed with you
Sizes and stopsUnits and pip distances copied as they areConverted to lots and price levels for your MT5 symbol

Where unchecked conversions usually go wrong

  • Units copied as lotsOn EURUSD with a contract size of 100,000, a volume of 10,000 units is 0.10 lot; copied as it is or rounded the wrong way, the EA opens a completely different size.
  • Pips copied as pointsFor EURUSD with a pip size of 0.0001 and a point of 0.00001, a 20-pip stop is 200 points; copied as 20 points, it sits ten times closer to the price.
  • Bars read in the wrong directioncTrader series count from the oldest bar; read the wrong way in MT5, the newest and oldest values swap.
  • 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.
  • .NET code with nowhere to runLibraries a cBot loads from .NET can’t be used by MQL5 directly; without a rewrite or a native DLL, the features that depend on them stop working.
  • Stops rejected by the brokerStops and pending orders placed too close to the price break the broker’s stop or freeze level in MT5, and the order is rejected.

Have a cBot or cTrader 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 cTrader original and the MT5 version on the same symbol and 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 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

  • .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 cTrader to MT5 Conversion Works

  1. Send the cTrader code

    Share the cBot or indicator source — the .cs files or an .algo file saved with source — any libraries it uses and your settings, plus a short description.

    You sendSource + dependencies
  2. Review and fixed quote

    We analyse the code, agree your MT5 broker, account type and symbols, and agree settings, acceptance criteria, price and timeline.

    You getFixed price + criteria
  3. Rewrite in MQL5

    The cBot 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 cBot 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 cBots: positions, labels, events, scaling and partial closes.

Chart Types & Data

Renko, range or tick charts and data requested from other timeframes or symbols.

Visual Elements

Drawings, panels and outputs that change colour.

.NET Libraries & Web Requests

Each .NET dependency and web request is checked and rewritten or connected another way.

Only an .algo File?

Conversion needs the source. An .algo file saved without source can’t be read, so recreating the cBot from your description is assessed separately.

FAQ

cTrader to MT5 Conversion — Common Questions

No. MetaTrader 5 runs MQL5; cTrader’s C# code — the source or an .algo file — has to be rewritten.

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

With the symbol’s contract size and volume step at your MT5 broker. On EURUSD with a contract size of 100,000, 10,000 units is 0.10 lot — the contract size is checked for each symbol rather than assumed.

MetaTrader 5 charts use time-based timeframes. Renko, range or tick bars can be built on a custom symbol or in the code itself. Real trades can’t be placed on a custom symbol, so an EA 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.

Usually. MQL5 can’t load .NET libraries directly, so each one is rewritten in MQL5 or connected through a native DLL. Dependencies are checked one by one before work starts.

Not always exactly. Your cTrader broker and your MT5 broker can provide different prices, and some built-in indicators are calculated slightly differently. How closely values must match is agreed before work starts, and any difference is traced to its cause.

Yes, in the MT5 Strategy Tester. Web requests don’t run there, so external data the EA needs is saved in advance where required. Results won’t match cTrader’s backtest exactly — the platforms use different data and model fills differently — so we check that entries and exits follow the agreed rules.

Yes — that’s the reverse route, MT5 to cTrader conversion. The same approach applies, with lots, stops and positions mapped the other way.

It depends on the size of the code, the trade handling, chart types, visual elements and any .NET libraries. After reviewing your cTrader code we give you a fixed price and an estimated timeline before work starts.

Send Your cTrader Code for a Quote

Share the cBot or indicator source with the libraries it uses, and a short description of what it should do in MetaTrader 5. 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