EA31337: a multi-strategy Forex expert advisor for MetaTrader
🤖📈 EA31337 Lite, Advanced and Rider - Forex multi-strategy trading robot for MT4/MT5 platforms
At a glance
- What is it?
- EA31337 is a free, GPL-licensed MQL expert advisor for MetaTrader 4 and 5 that ships three variants, Lite, Advanced and Rider, each with its own filter, risk and strategy configuration. It suits a trader who wants to test and automate a technical-analysis strategy inside MetaTrader, and the documentation is unusually explicit that backtesting cannot predict the future.
- Who is it for?
- Adopt EA31337 if you work in MetaTrader and want a framework of technical-analysis strategies, filters and risk rules to backtest and automate rather than a single black-box robot. Skip it if you need something that has been recently verified against current market behaviour, because the last push was on 2026-04-07 and the newest published release is v3.000-rc2 from 2024-01-20.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Activity is slowing. The repository last received commits 6 months ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Three expert advisors, one framework
EA31337 is a free and open-source Forex autonomous trading robot for the MetaTrader 4 and 5 platforms, written in MQL with a C++ primary language recorded for the repository. The project description names three variants, Lite, Advanced and Rider, and the build system treats them as separate products. The Makefile in the repository root defines a target for each of them and for each of four build flavours, Release, Backtest, Optimize and All, so each variant has Release, Backtest and Optimize build targets plus an All aggregate that runs them. The Advanced variant is the one that unlocks configuration, since the documentation says you are free to customize the filters using the Advanced version of EA. The framework is split across related repositories for the classes, the indicators, the strategies and the strategy metas, and the main repository holds the assembled robot.
Filters are the entry and exit decision layer
The filtering system is described as the unique part of the design, offering precise control over trade entry and exit timing. Filters can be configured around account metrics, chart data, market volatility, active orders, and indicators such as Moving Averages or RSI. That separation of strategy and filter is a notable design choice. Here the strategy decides what to look for and the filter decides whether the conditions permit acting on it, which means a strategy can be reused across different account states or market regimes without being rewritten. The other half of the same machinery is risk control, with configurable price and trade stop limits plus filters for opening or closing trades based on market conditions, and a dynamic price stop system that is described as helping risk mitigation in rapidly moving markets.
Strategies are self-contained and mixable
Each expert advisor's strategy includes self-contained algorithms that analyse the markets using popular technical indicators across multiple timeframes, and the documentation says traders can mix and match strategies or write custom logic using the included functions and events. The list of capabilities describes dozens of pre-built algorithmic trading strategies across various timeframes and technical indicators, along with dozens of tunable input settings for risk limits, position sizing and indicators. One design detail is easy to miss and changes how you read a backtest. The EA reads data from multiple timeframes independently of the current chart, so any timeframe can be used for the trading purposes, and the timeframe you are looking at is not the timeframe the strategy is working on. That is a common source of confusion in MetaTrader, and it means the chart in front of you is a view, not the input.
SET files are per-release and versioned on purpose
The SET files hold the best performing input values found during pre-release optimization testing, and the documentation repeats that point twice, which tells you how often it gets ignored. The EA ships with parameter files tailored specifically for EURUSD, the default parameters being optimized for that pair. The rule for using them is precise: each release could have slightly different parameters, so do not mix old SET files between different releases, and use the SET files included with your downloaded release package rather than older versions. The reason given is that optimization is performed before major updates, so parameters evolve across releases to adapt to changing market dynamics. In other words a SET file is a snapshot of a specific market regime, and pairing it with a different build is how a backtest produces a number that means nothing.
The build compiles MQL through Wine and the MetaEditor
Compiling this on a non-Windows machine is not a normal C++ build, and the Dockerfile shows why. The base image is `ea31337/ea-tester:dev`, the working directory is `/opt/EA`, and the build downloads the MetaTrader platform itself, a 5.0.0.2361 archive, then copies the `metaeditor*.exe` binaries into the image. The compile targets then invoke the MetaEditor under Wine, with the Makefile setting `MTE=metaeditor64.exe` and `WINEDEBUG=fixme-all` to keep the Wine output quiet. The make targets are explicit, for example building the Lite variant means running `make Lite`, `make Lite-Release`, `make Lite-Backtest` and `make Lite-Optimize`, and the same four for Advanced and Rider. A `requirements` target checks for git, ex and wine64 with `type -a`, and the Makefile is written for bash via `SHELL:=/usr/bin/env bash`. The version string is scraped out of the source at build time with a grep over `src/include/common/define.h`.
Getting the source and the binaries
Compiled binaries are available from the GitHub release page, and the installation steps live on a wiki page. For the source, the documented Git command is:
git clone --branch master --recursive https://github.com/EA31337/EA31337.gitThe `--recursive` flag matters, because the repository has a `.gitmodules` file and the framework, indicators and strategies live in sibling repositories that have to be fetched as submodules. After cloning, you place the EA31337 directory into the `Experts` folder located in the MetaTrader platform's MQL directory, and the compilation wiki page covers the rest. The repository root also carries a `sets/` directory for the SET files, a `src/` directory for the MQL sources, a `docker/` directory for the container images, and a `Makefile` with the full target matrix described above.
What the project says about risk
The documentation on customization and risk is where this project is most careful, and it is worth reading in full before anything else. The default parameters are optimized for EURUSD, and there are many adjustable inputs allowing customization across symbols, with modifications able to optimize performance for alternate currency pairs when rigorously backtested. The advice is to do thorough demo testing or backtesting before attempting live trading with new settings, because each symbol and broker combination can behave differently, and parameter changes should be optimised carefully based on evidence from extensive simulations across diverse market conditions. Live execution should be considered only once the risk-adjusted profile proves robust during demo trading or backtesting, and the request is to trade live at your own risk, only with full confidence in the strategy's integrity across settings, brokers and pairs based on your own rigorous testing. The bluntest line is in the testing section, which states that backtesting cannot reliably simulate the future outcome. That is the correct prior to hold, and the reason the SET files are per-release.
The maintenance question, stated plainly
The repository is not archived, but the last push was on 2026-04-07, and the published releases are v3.000-rc2 from 2024-01-20, v2.013.1 from 2023-08-02 and v2.012.1 from 2023-05-18. A release candidate from early 2024 as the newest tagged artefact tells you where the project stands. The v3.000 RC2 tag in particular suggests the 3.x line was in a release-candidate state rather than shipped, and since the SET files are described as evolving per release, a build without matching parameters is the practical risk. Nothing in the documentation suggests the project is closed, and the wiki, the Telegram channel and the discussion pages are all live, but a reader evaluating this for live trading should plan on a build from the current master with its own optimisation rather than assuming a maintained release pipeline exists. The project is licensed GPL-3.0, and the four sub-projects it builds on are listed in the README for anyone who wants to extend the framework rather than use the robot.
Editorial conclusion
Adopt EA31337 if you work in MetaTrader and want a framework of technical-analysis strategies, filters and risk rules to backtest and automate rather than a single black-box robot. Skip it if you need something that has been recently verified against current market behaviour, because the last push was on 2026-04-07 and the newest published release is v3.000-rc2 from 2024-01-20. Before running it live, use the SET files that ship with the release you downloaded rather than older ones, backtest on MetaTrader 5, and treat the project's own warning as binding, since the documentation states plainly that backtesting cannot reliably simulate future outcomes.
Frequently asked questions
What is EA31337 and which platforms does it run on?
It is a free and open-source Forex autonomous trading robot written in MQL for MetaTrader 4 and 5, shipped in Lite, Advanced and Rider variants. The README also links to wiki pages for About, Features, Best practices and IMPORTANT-NOTES.
How do I get the EA31337 source code?
Run `git clone --branch master --recursive https://github.com/EA31337/EA31337.git`, then place the EA31337 directory into the Experts folder in your MetaTrader platform's MQL directory. The recursive flag is needed because the framework, indicators and strategies are submodules.
Why should I not use older SET files with a newer EA31337 release?
Each release can have slightly different parameters, and optimization is performed before major updates so the parameters evolve across releases. Use the SET files included with the release package you downloaded.
How is EA31337 compiled outside MetaTrader?
Through a Docker image based on ea31337/ea-tester:dev that downloads MetaTrader 5.0.0.2361 and compiles with the MetaEditor under Wine. The Makefile targets are make Lite, Advanced or Rider plus the Release, Backtest and Optimize variants.
Does the EA31337 filtering system decide when trades are opened?
Yes. Filters can be configured around account metrics, chart data, market volatility, active orders and indicators such as Moving Averages or RSI, and they control the timing of trade entry and exit. Customizing them is done with the Advanced version of EA.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ea31337-ea31337)Was this useful?