Request A Free Quote
MT4 → cTrader Conversion

Convert MT4 Expert Advisors & Indicators to cTrader

We rewrite MT4 Expert Advisors as cTrader cBots and MT4 indicators as cTrader indicators in C# — rebuilding lot sizes, magic numbers and stops for how cTrader works, and checking the result against criteria agreed with you.

MT4 EA to cBotMT4 Indicator to cTraderMQL4 to C#Rewritten by Hand
3,000+ Projects Delivered
Fixed Scope & Price Before Work
C# Source Code & .algo File
Checked Against Agreed Criteria
Overview

What MT4 to cTrader Conversion Means

MT4 to cTrader conversion means rewriting MQL4 code in C#, cTrader’s language for algorithmic trading: an Expert Advisor becomes a cBot and an indicator becomes a cTrader indicator. cTrader works differently from MetaTrader — trade size is set in units rather than lots, a cBot identifies its trades by label rather than by magic number, and protective levels are set through cTrader’s own methods — so the code is rebuilt, not translated line by line.

From
MQL4 on MetaTrader 4
To
C# on cTrader
Expert Advisor
cTrader cBot
Indicator
cTrader indicator
You receive
C# source code and .algo file
Method
Rewritten by hand, no automatic converters
Expert Advisors

Convert an MT4 Expert Advisor to a cTrader cBot

An MT4 Expert Advisor and a cTrader cBot automate the same kind of trading, but they size, identify and protect trades differently. Converting an EA to a cBot keeps its trading rules and rebuilds the trade handling for cTrader.

Entries & Exits

Entry, exit and close rules are rebuilt with cTrader’s trading methods and checked against the MT4 version.

Positions & Labels

We check that the EA’s position model fits your cTrader account — hedging or netting — and agree how trades are identified and how several strategies share the account. On a netting account all trades on a symbol form one position, whatever their labels.

Lots to Units

Trade size is set in units in cTrader; lots are converted with the symbol’s own settings, rounded to its volume step and checked against your risk rules.

Stops & Targets

Stop-loss and take-profit levels, distances, trailing stop and breakeven are transferred through the matching cTrader methods. cBot stops can trigger on the opposite side of the price or after two consecutive quotes, so the trigger rule is chosen to match MT4 and stop behaviour is checked, not only the distance.

Pending Orders

Pending orders become cTrader limit and stop orders, with expiry where the original uses it.

Filters & Conditions

Trading sessions and days, time limits and other filters are kept, and new ones can be added.

cTrader backtest results won’t match MT4 exactly: the two testers use different data and model fills differently. We check that entries and exits follow the same rules.

Indicators

Convert an MT4 Indicator to cTrader

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

Calculations & Outputs

Calculations are rebuilt in C#; buffers become indicator outputs with line and histogram styles. Any visual differences are agreed in advance.

iCustom Calls

Calls to other custom indicators through iCustom are rebuilt in C# as well, so we need their source too.

Built-In Indicators

Calls to built-in indicators use cTrader’s own versions where their values match; where the platforms calculate differently, we write the calculation ourselves.

Objects & Panels

Chart objects and panels become cTrader drawings and chart controls; the agreed information is kept and the look is agreed separately.

Alerts & Notifications

Alert conditions become sound and email notifications in cTrader where needed.

Improvements on Request

New settings or functions, several indicators combined into one, or the indicator turned into a cBot.

Platform differences

MQL4 to C#: What Changes and How We Handle It

MetaTrader 4 and cTrader handle trades and indicators 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

Lots

Units

Lots are converted with the symbol’s own settings and volume step, and checked against your risk rules.

Position identity

Magic number

A label set by the cBot; hedging or netting account

We check that the EA’s position model fits your cTrader account type and agree how trades are identified and strategies share the account. This matters most for EAs that hold several separate or opposite trades.

Stops and targets

Set as price levels

Set as price levels or as distances in pips

Levels, distances and trigger rules are transferred through the matching cTrader methods.

Price data

Your MT4 broker’s prices

Your cTrader broker’s prices

We take the data difference into account and agree with you how closely values must match.

Calculation

Indicators and EAs react to new ticks; the exact behaviour depends on the code

Indicators calculate per bar and update on ticks; in cBots, OnBar runs as a new bar opens and OnBarClosed reads the last closed bar — both wait for the next bar’s first tick

We match which bar each piece of logic reads — forming or closed — and when orders are sent, and check historical and real-time behaviour separately.

Built-in indicators

MetaTrader’s own calculation

cTrader’s own calculation, which can differ in details

We compare the values and use our own calculation where the two platforms differ.

Other timeframes

Read directly from any timeframe

Loaded as separate bar series

Values from other timeframes are aligned with the chart’s bars, as in the original.

What may not carry over one to one

Some things depend on the platform itself: DLLs and libraries the code uses are checked one by one — cTrader can use .NET libraries, so some work as they are and others need a replacement; symbols your broker offers only on MetaTrader servers; and tester settings specific to MetaTrader. If the cBot will run in cTrader Cloud, its compatibility with the cloud environment is checked separately. We point these out before work starts and agree the closest cTrader equivalent with you.

Why manual

Manual vs. Automatic Conversion

A converter or an AI pass can produce C# quickly. The risk is not the tool but an unchecked result: code can compile and still trade differently from the original, because MetaTrader and cTrader size, identify and protect trades in different ways. We start from how the MT4 version behaves and rebuild it for cTrader.

Automatic conversionManual conversion at Nordman Algorithms
Starting pointOften the MQL syntax, statement by statementHow the MT4 version behaves
Platform differencesOften found later, if at allIdentified before work starts and agreed with you
Trade size and positionsLots and magic numbers copied as they areConverted to units and labels for your account type

Where unchecked conversions usually go wrong

  • Lots copied as unitsA size of 0.10 lots copied as 0.10 units is rejected or opens a tiny position — sizes have to be converted with the symbol’s settings.
  • Stops off by a factor of tenFor EURUSD with a pip size of 0.0001 and a point of 0.00001, a 200-point stop in MT4 is 20 pips; copied as 200 pips, it sits ten times further from the price.
  • cBots touching each other’s tradesTwo instances with the same label treat each other’s positions as their own — and on a netting account even different labels share one position per symbol.
  • Built-in indicators that don’t matchThe same indicator name can hide a slightly different calculation, so signals drift apart from MetaTrader.
  • Signals shifted by one barMetaTrader series count back from the current bar, while cTrader counts forward from the oldest; a missed offset moves every signal by a bar.
  • iCustom buffers mixed upMT4 code often reads other indicators by buffer number; a wrong buffer or shift gives values that look plausible but are wrong.

Have an MT4 EA or indicator you want in cTrader?

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 MT4 original and the cTrader 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
  • 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

  • C# source code — the full code of the cBot or indicator
  • .algo file — ready to install in cTrader; 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 an MT4 to cTrader Conversion Works

  1. Send the MQL4 code

    Share the .mq4 source with its .mqh include files, the source of any custom indicators it calls and your .set file if you have one — plus a short description.

    You sendSource + dependencies
  2. Review and fixed quote

    We analyse the code, point out anything that works differently in cTrader, check whether the cBot will run locally or in cTrader Cloud, and agree settings, acceptance criteria, price and timeline.

    You getFixed price + criteria
  3. Rewrite in C#

    The EA or indicator is rebuilt as a cBot or cTrader indicator, including any extra features you asked for.

    We buildThe cTrader version
  4. Check against the criteria

    The cTrader 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 getC# source + .algo
Scope

What Affects the Price and Timeline

Every EA 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 EAs: how orders, positions, stops and partial closes are managed.

Other Timeframes & Symbols

Data the code reads from other timeframes or instruments.

Visual Elements

Objects, panels and dashboards drawn on the chart.

DLLs & External Libraries

Each dependency is checked: whether it can be used in cTrader as it is or needs a replacement.

Only an .ex4 File?

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

FAQ

MT4 to cTrader Conversion — Common Questions

No. cTrader runs cBots written in C#; MQL4 code — .mq4 or .ex4 — has to be rewritten.

Yes. The EA’s trading rules are kept and its trade handling is rebuilt for cTrader — sizes in units, trades identified for your account type, protective levels set through cTrader’s methods — with sizing and risk agreed with you.

Most MT4 indicators can be rebuilt in C#. DLLs and other dependencies are checked one by one — some can be used in cTrader as they are, others need a replacement; we tell you about any such differences before work starts.

Not always exactly. Your MT4 and cTrader brokers provide different prices, and some built-in indicators are calculated slightly differently on the two platforms. How closely values must match is agreed before work starts, and any difference is traced to its cause.

Not exactly. The two testers use different data and model fills differently. What we check is that entries and exits follow the agreed rules.

Conversion needs the .mq4 source code. Without it, we can assess recreating the EA or indicator from your description, settings and examples of how it behaves — but an exact match with the original can’t be promised in advance.

No. Our developers write the C# version themselves, based on how the MT4 version behaves.

Yes. cBots and cTrader indicators can be rewritten in MQL4 as Expert Advisors and indicators; parts that rely on cTrader-only features are agreed before work starts. See our cTrader to MT4 conversion page.

It depends on the size of the code, the trade handling, data from other timeframes or symbols and any external libraries. After reviewing your .mq4 code we give you a fixed price and an estimated timeline before work starts.

Send Your MQL4 Code for a Quote

Share the .mq4 source code with its include files and the custom indicators it uses, and a short description of what it 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