MQL4 is a powerful programming language used for creating custom indicators, expert advisors, and scripts in the MetaTrader 4 platform. While the executable files are all that’s necessary to use an EA or indicator, traders may want to access the original source code in MQ4 format for various reasons. That’s where decompiling comes in. In this article, we’ll explore the process of decompiling an EX4 file to MQ4 format, when to use decompiling, and some tips for using decompiling tools responsibly and ethically.
Important Notice
This article is for informative purposes only and does not endorse the decompilation of files or offer decompilation services. Decompilation can violate MetaQuotes Software Corp’s intellectual property and copyright laws. We advise readers to refrain from contacting us for any decompilation services or related requests.
What is Decompiling?
Decompiling is the process of converting a compiled binary file, like an EX4 file, back into its original source code. The resulting code may not be perfect, but it can still be useful for gaining insights into how a particular indicator or expert advisor works.
MQL4 and EX4/MQ4 Formats
MQL4 is a programming language used for creating custom indicators, expert advisors, and scripts in the MetaTrader 4 platform. MQL4 code is compiled into EX4 format, which is the machine-readable format that is executed by the MetaTrader 4 platform. There are two file formats in MetaTrader 4: ‘.ex4’ for the executable files and ‘.mq4’ for the source code. The MT4 platform only uses the executable files, so only these files are necessary to use an EA, an indicator, or any other MT4 program. The source code is only used by a programmer to make corrections, adjustments, modifications, or improvements in the MT4 program.

When to Use Decompiling
Traders may want to decompile an EX4 file into MQ4 format for various reasons, such as modifying the code or understanding how a particular expert advisor or indicator works. Common reasons include:
- Modifying, correcting, or improving an MT4 program where the original developer is unavailable
- Recovering lost source code when only the compiled EX4 exists
- Learning MQL4 programming by studying how existing EAs are structured
- Converting an MT4 program to MT5 when starting from scratch is impractical
Using a Decompiler Tool
To decompile an EX4 file to MQ4 format, traders need to use a decompiler tool. There are several decompiling tools available online, but it’s important to choose a reliable and trustworthy one to ensure the safety of your computer and the quality of the resulting code, and to be realistic about output quality — in our experience working with hundreds of MT4 EAs, decompiled MQ4 code typically requires significant cleanup before it’s workable, and complex logic (nested switches, global variable state machines) often decompiles poorly. However, it’s important to note that decompiling can violate MetaQuotes Software Corp‘s copyrighted works and intellectual property, so it’s important to use decompiling tools for legal and ethical purposes only.
Additional Tips
Traders don’t need the source code (mq4 file) to build an MT4 Expert Advisor (EA) based on an indicator. In fact, an MT4 EA only uses the compiled file (ex4 extension). Additionally, a skilled MT4 programmer can develop a new indicator that gets the signals from the original indicator and sends alerts and notifications whenever a signal is triggered, even without the mq4 file.
What About MQL5 and EX5 Files?
With MetaTrader 5 now the dominant platform for new EA development, the equivalent question arises for MQL5: can EX5 files be decompiled back to MQ5 source code?
The short answer: significantly harder than MQL4. EX5 files use a more sophisticated compilation architecture, and MetaQuotes has progressively hardened the format against reverse engineering in recent versions. While experimental decompiler tools exist for EX5, the output quality is considerably worse than for EX4 — in most cases, what emerges is difficult to interpret and requires substantial manual reconstruction.

For practical purposes, if you’re working with an MT5 EA and have lost the source code, the realistic options are:
- Contact the original developer for a re-delivery or migration
- Commission a rebuild from scratch, starting from the compiled EA’s observed behaviour
- Use signal-based wrapping — writing a new EA that reads signals from the existing compiled EA rather than modifying its internals
If you’re developing new EAs for MT5, protecting your EX5 source code from the start is more straightforward than trying to recover it after the fact.
Can You Protect Your Own MQL Code from Decompiling?
A significant portion of readers arrive at this page with the opposite concern: not how to decompile others’ code, but how to prevent their own EX4 or EX5 files from being decompiled.
This is a legitimate technical concern. Standard EX4 compilation does not prevent reverse engineering — a motivated party with the right tools can extract meaningful code structure, logic flow, and parameter ranges from a compiled file. For developers who sell or distribute EAs commercially, this represents a real IP exposure.
Several approaches address this:
- Code obfuscation: Renaming variables and restructuring logic before compilation. Reduces readability of decompiled output, but adds no encryption.
- Dedicated licensing tools: LicenseShield ties each licence to a trading account (broker and account number), not to a computer: your EA checks in with the licence server when it starts on a chart and at regular intervals while it runs, and any account you disable from your dashboard stops at its next check. It controls who may use the EA; it does not encrypt the EX4 or prevent it from being decompiled.
For developers managing multiple client installations — or selling EAs commercially — our MetaTrader license management service provides the complete distribution and key management infrastructure.
Final Thoughts
Decompiling an EX4 file into MQ4 format can be a useful tool for traders who want to modify or understand the inner workings of a particular expert advisor or indicator. However, traders should use decompiling tools for legal and ethical purposes only, and they should be aware that decompiling may not always produce perfect or readable code. It’s also important to have a good understanding of programming principles to be able to make sense of the decompiled code. By using decompiling tools responsibly and with caution, traders can gain valuable insights into their MT4 programs and improve their trading strategies.
If decompiling concerns you because you’re worried about your own EX4 files being reverse-engineered — the answer is EA protection, not decompiling others. LicenseShield adds account-based licence verification to your MQL4/MQL5 programs with a few lines of code: each new trading account that runs your EA or indicator appears in your dashboard automatically, on a trial by default, you activate or disable each one remotely, and you distribute only compiled EX4/EX5 files, never your source code. For client projects or commercial EAs, our MetaTrader license management service handles multi-client distribution and key management. Both approaches address the real concern beneath most decompiling questions: keeping your trading tools under your control.
For a deeper look at source code vulnerabilities, read: How to protect your MT4/MT5 EA from piracy.

Leave a Reply