Our promise in one line
The AlfaTactix strategy builder turns the rules you choose into code for one platform: MetaTrader 5 (MQL5) or TradingView (Pine Script v6). You choose the platform in Step 1.
Our promise is narrow on purpose: we build exactly your rules, and we show the tests that prove it. We do not promise that a strategy will make money. No test on this page measures profit.
The builder has 7 steps, 47 indicator types, up to 3 timeframes and up to 8 filters.
The numbers at a glance
| What we checked | Result |
|---|---|
| Golden test strategies | 106 documents, all give the expected result |
| Specification checks | 516: 509 pass, 7 skipped by design |
| Platform facts checked against the vendors' sources | 112: 100 verified, 12 marked as assumptions |
| Indicator values on MetaTrader 5 | 1,159 of 1,159 exact |
| Indicator values on TradingView | 461 of 461 exact |
| Golden Expert Advisors compiled in MetaEditor | 29 of 29: 0 errors, 0 warnings |
| Signals equal to the MetaTrader 5 tester | 29 of 31 golden strategies (the other 2 cannot run on MetaTrader 5) |
| Trades equal or explained in the MetaTrader 5 tester | 29 of 31, 0 unexplained differences |
| Re-checked on MetaTrader 5 build 6294 | 35 of 35 files compile clean; no difference from build 6104 |
| AI feature groups switched on | 8 of 8 |
| Recorded test results | 516: 435 green, 79 red, 2 other |
| Last run of both test suites | 8,770 backend and 2,165 frontend tests passed |
Each line is explained below, with its limits.
One strategy document for every part
Every strategy is one versioned JSON document. The form writes it. Tactix Studio, the AI assistant, proposes a small change to the same document; the server applies it and runs the same validator as the form. The backtest engine and the generator for your platform read that document.
The document follows a JSON Schema (draft 2020-12, version 2.3). It has 10 top-level parts, 7 of them required. Its field catalogue has 302 fields, and each field has a help entry.
The older builder had 67 indicator configuration files and 375 condition types. The current one replaces them with typed indicators and one rule tree. The form, the AI, the engine and both generators read that same tree.
The golden set and the specification checks
A golden set is a fixed list of test strategies whose right answers are known. Ours has 106 documents:
- 31 valid strategies;
- 75 invalid ones that must be refused: 52 break the schema and 23 break a rule that only code can check.
All 106 give the expected result. The same golden strategies later run on the platforms themselves (see below).
On top of that, 516 specification checks define what every part of the product must do. They were written before the engine: at the start there were 436 checks and 30 passed, while most of the rest waited for the engine. Now every full run shows the same line, the last one: 516 checks, 509 pass, 7 skipped.
The 7 are skipped by design, and none of them fails. Six test features the platforms do not offer. One tests a feature of a later release.
Checking the platforms themselves
Our code can only be as right as our reading of the platforms. So before writing the generators, we checked 112 facts about MetaTrader 5, TradingView, prop-firm rules and the generators themselves against primary sources. 100 are verified and 12 are marked as assumptions. Where a fact disagreed with our own specification (11 cases), or the specification said nothing (9 more), we wrote a proposed change to the specification.
The sources were MetaQuotes' own example indicator sources (56 files), the MQL5 reference and the MetaTrader 5 help, the Pine Script v6 reference, StockCharts ChartSchool, and the FTMO and Topstep help pages.
One limit is worth saying plainly. MetaQuotes does not document that its built-in indicators, such as iRSI or iMA, give the same values as those example sources. So the generated code uses no platform indicator built-in, on either platform. Every indicator is written out in the code, statement for statement as in our reference library. Only the test runs in the next section prove that this code is right.
Indicators to the last bit
For each indicator we compute test values twice, with our reference library and with the generated code on the platform, and compare them.
- On MetaTrader 5, "exact" means bit for bit: each number is compared as its 64-bit pattern, with no tolerance at all.
- On TradingView, it means zero tolerance: the absolute tolerance is 0, and the log that carries the values is checked against a SHA-256 fingerprint.
The results:
| Platform | Indicator test values | Result |
|---|---|---|
| MetaTrader 5 | 1,159 (142 from the specification, 963 covering every choice value, 54 clock values) | 1,159 of 1,159 exact |
| TradingView | 461, in 10 scripts | 461 of 461 exact |
All 47 indicator types are covered on both platforms: 29 types in the first set of tests, 16 in the second, and the candle and swing patterns in the rule tests. The rule tree, the patterns and the filters have their own test values, and all of them match: 151 of 151 on MetaTrader 5 and 160 of 160 on TradingView, plus the clock and session tests, 190 of 190 and 181 of 181.
One case is left out on purpose: bars with a missing volume are not tested on MetaTrader 5, because a MetaTrader bar always has a volume.
How the generators write these indicators out, and what else they are tested for, is in MQL5 and Pine generators: exact on both platforms.
Clean compiles
The main complaint about AI tools that write trading code is code that does not compile. So every Expert Advisor is compiled in MetaEditor, MetaQuotes' own compiler.
All 29 golden Expert Advisors compile with 0 errors and 0 warnings, in the product build. Before that run, all 36 customer-facing Expert Advisors of the time (28 golden ones, six reference strategies and the example on our home page) also compiled with 0 errors and 0 warnings.
TradingView has no command-line compiler. Each Pine script was checked by hand in the Pine Editor, in a private script that was never published, and each check showed 0 problems. Because the checks were manual, there is no single total for all scripts, and we do not claim one.
Same signals as MetaTrader 5
Exact indicators are not enough. The question a trader asks is: does the Expert Advisor trade like the strategy I built? We answer it at two levels:
- signals: on every bar, do each entry and exit condition and each rule in the tree give the same answer?
- trades: is the list of trades the same?
A difference in a trade list is either one of twelve named causes, each checked row by row, or a bug. "Explained" means that every difference has a named cause and the net result reconciles with a remainder of 0.00. How the backtest engine itself fills orders, charges costs and rounds is on Backtest engine v2.
Golden strategies in the MetaTrader 5 tester
The golden strategies run on synthetic bars loaded into a MetaTrader 5 custom symbol, so the engine and the Expert Advisor read identical bars. On 31 golden strategies:
- Signals: the same on 29. The other 2 are strategies MetaTrader 5 cannot run: one uses every filter at once, and one uses a fundamental filter that only Pine offers. We refuse to generate them for MetaTrader 5.
- Trades ("1 minute OHLC" mode): 7 equal and 22 explained, so 29 of 31, with 0 bugs.
Six common strategies on real prices
We then built six common strategies: an EMA 20/50 cross with a 2 × ATR stop; RSI(14) mean reversion with an SMA 200; a Bollinger (20, 2) breakout with a volume filter; MACD on H4 with a daily EMA 200 filter; a London range breakout with FTMO limits; and a Donchian 20 breakout with a trailing stop that closes 50% at 1R. We ran them on ten months of real EURUSD H1 prices in the MetaTrader 5 tester ("1 minute OHLC" mode).
- Signals: 0 differences on every bar, in every run.
- Trades: the same number in all six (89, 16, 127, 17, 71 and 170). One strategy is equal trade for trade. In the other five, every difference has a named cause, mainly the tester's modelling mode and the end of the test.
Most of these six strategies lost money over this period. That is not what the test measures: these runs prove sameness, not profit.
On TradingView
TradingView has no command-line tester, so fewer cases ran there: signals for 7 of the 31 golden strategies and trades for 5, all equal or explained. In TradingView, on EURUSD H1, four of the six strategies gave the same trades as the engine run on the same bars. The Donchian breakout had one named cause that then carried into later trades. The H4 MACD strategy made no trades, because its warm-up needed more bars than TradingView loaded for the test.
The limits
- On a custom symbol, the MetaTrader 5 tester never charges commission, slippage or the limit-order fill offset. We leave them out of both sides and name them in each case. So the golden trade comparison does not prove commission and slippage on MetaTrader 5.
- TradingView models no spread, swap or currency conversion, and its log reports no commission. These are left out of both sides too.
- The real-price runs used one symbol, about ten months and the "1 minute OHLC" mode. Not run: the real-tick mode, a 12-month TradingView run, and live or forward trading.
A new MetaTrader 5 build, re-checked
MetaTrader 5 updates itself, so the terminal you use may be newer than the one we tested on. Every MetaTrader 5 record on this page was first made on build 6104. We then updated to build 6294 and ran the key checks again, without changing any code:
- Compile: the 29 golden Expert Advisors and the six common strategies, 35 files, compile with 0 errors and 0 warnings, in the file you download and in our test version of it.
- Indicators: the first indicator test set is still exact on the new build: 175 of 175 values from the specification and 525 of 525 values covering every choice.
- Trades: on two golden strategies, the trade logs are the same line for line as on build 6104 (2,024 and 1,420 lines), with the same verdicts.
- The file you download: its deals (17 and 199) match the build 6104 reports row for row.
No difference was found, so the build 6104 records on this page stay valid on build 6294.
Restarts and crashes
An Expert Advisor must recover after a restart. In the MetaTrader 5 tester we restarted, crashed or removed the Expert Advisor every 397, 401 or 1,191 ticks, then compared the result with a run without any restart.
- The trades were the same, in netting accounts and in hedging accounts (20 hedging runs).
- A strategy shared by two charts also gave the same result.
Not proven: the live tick-history call CopyTicksRange (the tester refuses it), two real charts, and a second terminal.
The backtest engine and its guards
The backtest engine runs a strategy on past bars. It is also the reference that the MetaTrader 5 and TradingView code is checked against, for signals and for trades (the comparisons above). Its bar model, the rules for what fills first inside one bar, has a test library of 25 cases, and 25 of 25 pass. How it fills orders, charges costs and rounds is on Backtest engine v2.
Tests run in the background, with their progress
A backtest you start on the Backtest page runs in the background, so you do not have to wait on the page:
- Tests wait in one line on the server and run one at a time. You can have one waiting or running test at a time.
- The page shows your place in line, then the percent done, with a Cancel button.
- You can leave or reload the page. The test goes on, and the page finds it again.
Showing the progress changes no result. With the progress report on, three golden strategies and one run on 1-minute bars give their stored results byte for byte, and a queued test returns the same result as the page used to wait for.
Server guards
Each of these is covered by a test:
- A test that you cancel while it runs, or that passes the server's time cap, is stopped, so it does not hold up the line.
- If the server restarts during a test, that test is marked as interrupted and is not counted. The tests waiting keep their places.
The limit: these background tests are proven by our test suites. They have not yet run on the live server.
Faster, with identical values
A speed change must not change a single value. The session range (the high and low of a trading session) is now computed once per session day instead of once per bar. Its values are identical bit for bit: a SHA-256 fingerprint of the values for every session-range rule in the golden strategies, plus six extra shapes, on test bars over five weeks around daylight-saving changes, at 5 minutes and 1 hour, equals the fingerprint taken before the change. In one measurement, a 400-day test on 5-minute bars of the golden strategy that trades an opening range went from 448.6 s to 5.5 s.
The AI is tested too
Tactix Studio is the AI assistant of the builder. It never writes code. It fills the same form you use; you see every change and save it yourself. The code always comes from the generators described above.
An AI feature group is switched on only after three live runs out of three with no blocked strategy, at least 90% of the facts right, every safety case right and no silent substitution. All 8 groups are on. The last one, advanced operands (slope, between, arithmetic, previous-period values, the session range), was switched on that day. In its three runs, with 28 test cases each, 100%, 97.8% and 97.3% of the facts were right, with no blocked strategy, no silent substitution and no wrong question.
In those runs, every answer but one came from the AI models Studio calls first. When those models do not answer, Studio falls back to other models; with them, the advanced operands did not pass three runs out of three (15 runs).
The AI never builds grid or martingale strategies and never sets risk above 10% per trade.
How Studio works, what it refuses and how its feature groups are switched on is on its own page: Tactix Studio, the AI trading strategy builder. How this compares with AI tools that write the code themselves is in AI strategy builders compared.
Every change is tested before it lands
Every change to the product goes through the same gate. A separate record holds only test requests and results, never code. A request names one exact commit (one saved version of the code) and the test suites to run. The runner checks out that commit, runs the suites and writes the result. A change is accepted only on a green result for its last commit.
The record holds 516 results: 435 green, 79 red, 1 that could not run (an error) and 1 withdrawn before it ran. Red results are never deleted or edited; a new attempt is a new file. So the 79 red results stay in the record.
The suites grew with the product. At the start, the backend suite passed 2,357 tests and the frontend suite 872. The last run of both passed 8,770 backend tests (67 skipped, 0 failed) and 2,165 of 2,165 frontend tests in 107 files. When asked, the frontend suites run three times in a row, to catch tests that pass only some of the time.
These runs include accessibility tests. Every screen of the builder is checked automatically for WCAG A and AA errors, in English and Spanish and at phone width: 0 errors.
Tests that need a real platform (the MetaTrader 5 tester or TradingView) cannot run in the automatic test runs. They run on the platform itself. Their outputs are recorded and replayed in the automatic runs by SHA-256 fingerprint.
What we do not claim, and how to check our work
What we do not claim
- No profit. No test here measures profit, and we do not say that any strategy will make money.
- No perfect AI. The bar is at least 90% of the facts right, known misses are still open, and the last feature group passed only with the AI models Studio calls first.
- Not identical in every respect. Costs the testers do not charge are left out of the comparison, and the TradingView coverage is small (7 of 31 golden strategies for signals, 5 for trades).
- "Bit for bit" is for indicator and session-range values only. Trades are equal, or differ for a named and listed cause.
- No MetaTrader 4. The builder generates MQL5 for MetaTrader 5 and Pine Script v6 for TradingView.
- No real-money test. Only the MetaTrader 5 tester and TradingView backtests were run; live trading was not tested.
- Background tests not yet on the live server. They are proven by our test suites.
- No outside certificate. These are our own engineering tests, not a legal review and not a privacy certificate.
Check it yourself
You do not have to take our word for it. The generated file is plain source code. It uses no platform indicator built-ins: every indicator is written out in the code, so you can read it. Its header names the generator version (1.0.0).
The generated file is the product build: it leaves out the test inputs and logs. On the cases checked, the product build and the test build gave identical trades. You can compile the file in MetaEditor or in the Pine Editor and run it in the platform's own Strategy Tester.
The public demo runs the same 7-step builder that this page describes.

