Armada Quant FX Portfolio Trader: setup manual

14 October 2026, 22:32
Sable Pacific LLC
0
38

Product page: Armada Quant FX Portfolio Trader MT5

Updated October 14, 2026

Before you start. This manual holds far more than you need to run the program. We wrote it that way on purpose: we would rather give you too much than too little. You do not have to read it all. The first part, the Fast Start, is all it takes to get the program running. The second part, the Details, is there for later: come back to it when a question comes up, and skip whatever you do not need.

Trading foreign exchange on margin carries a high level of risk and is not suitable for every investor. Every result in this manual is simulated; the Disclaimer at the end applies to all of it.

Fast Start

Attach it to one chart: it trades all eleven currency pairs from there, in one account, and adds them to Market Watch itself: EURUSD, GBPUSD, AUDUSD, USDCAD, USDCHF, EURGBP, AUDCHF, AUDCAD, CADCHF, GBPCHF and EURCHF.

  1. In MetaTrader 5, sign in to the MQL5 account you bought the program with (Tools, Options, Community). Open the Market's Purchased list and click Install (that uses one activation). The program then appears in the Navigator window, under Market.
  2. Open one chart and drag the program onto it. The chart's symbol and timeframe do not change what it trades, because it reads the hourly bars of its pairs itself; EURUSD H1 is a good choice.
  3. On the Common tab, tick Allow Algo Trading. On the Inputs tab, set "Capital (0 = account balance)": type the money the program may trade with, in the account's currency, or leave it at 0 to use the account's own money. Leave every other input at its default, then click OK.
  4. Switch Algo Trading on in the terminal's toolbar. Then read the panel in the chart's top left corner: its first line should say "Armada Quant FX 2.01 | Running", and the lines below it show the Capital and size the program uses and how many pairs are trading.
  5. Keep the terminal running, on a computer that stays on or on a VPS. The program decides once an hour for each pair, so the first position can take hours or days to appear.

That is all it takes. From then on, the panel in the chart's top left corner tells you whether anything needs your attention; the Details below explain every line it can show.

Details

Everything from here on is reference: the inputs, every line the program shows on its chart, the questions buyers ask most, running it on a VPS, how the size is worked out and the test behind the published figures. Post questions in the Comments section of the product page, or send a private message on MQL5.

Inputs at a glance

Leave every input at its default except Capital, which you type or leave at 0; the headline results use the defaults.

The table lists the inputs in the order the Inputs tab shows them, each with its default and what it does.

Group Setting Default What it means and what to do
Size Capital (0 = account balance) 0 The money the program sizes its trades from, in the account's currency. 0 uses the account's own money: the balance just before the program's first trade on this account, changed by later deposits, withdrawals, charges and corrections. Trading results, credit and bonuses are not counted. A typed amount above the account's own money is not used: the program then uses the account's own money and the panel says so. A negative amount counts as 0.
Size Compounding, % of profit (0 = off) 100 How much of the program's own results is added to Capital when it sizes a new position. At 100 all of them are added, so sizes grow after gains and shrink after losses, down to the smallest size the broker allows. At 0 the size stays fixed. The results are the profit, swap, commission and fee of the program's deals on this account; open positions are not counted. Each new position is sized when it opens and keeps that size for all of its adds. Values from 0 to 100.
Exits Drawdown filter level (0 = off) 10 The drawdown filter watches each pair's result on its own, open positions included, and decides once a day. When a pair's result has fallen below its high by the exit amount and is still going against you, the program closes that pair's positions and stops trading it; whether the pair holds buy or sell positions makes no difference. It keeps tracking the positions it would have held, adds included, and re-enters when that result is back within half the exit amount of its high and its trend has turned in your favor. At the default 10 the exit amount is about 17.6% of Capital. 0 switches the filter off. Values from 0 to 100; 10 is the level used in the tests.
Exits Stop loss after N entries (0 = off) 100 Limits how deep a position can go. When a position holds this many entries (its first entry and its adds), the program adds no more; if the price then moves one more add step against it, the whole position is closed at a loss. 0 switches this off. Values from 0 to 1000.
Exits Loss limit, % of Capital (0 = off) 0 Stops all trading after a set loss. When the program's results, open positions included, have fallen by this percent of Capital from the peak its closed results reached (with compounding on: Capital plus the compounded results at that point), the program closes every position it holds on every pair and opens nothing new. It closes at market prices, so a price gap can take the loss past the limit. It stays on the chart and the panel shows the date. To trade again, set a different Loss limit; the program then starts fresh on every pair. 0 switches the limit off, as in the tests. Values from 0 to 100.
Controls Open new positions (No = finish) Yes Yes trades normally. No opens no new positions and does not step back in after the drawdown filter, but keeps managing the positions already open: it still adds to them and closes them by its rules, and the stop loss, the drawdown filter's step-outs and the loss limit keep working. Use No to wind down; the panel shows how many positions are left.
Controls Phone notifications Off On sends a short message to the MetaTrader app on your phone when the drawdown filter steps a pair out or back in, when the loss limit is reached, when another copy is found trading the account with the same magic number, and when the margin level falls below 90% and pairs are closed (only below the smallest account). It uses MetaTrader's own notification service: enter your MetaQuotes ID in the terminal under Tools, Options, Notifications. At most one message per decision and 10 a minute; nothing is sent in the Strategy Tester. Off by default.
Advanced (leave as tested) Pairs to trade (empty = all 11) empty Leave empty to trade every one of the 11 pairs your broker offers. The program finds each pair under the broker's own name (for example EURUSD.a) and adds it to Market Watch. To trade fewer, type their names separated by commas, for example EURUSD, GBPUSD. A pair outside the 11 runs with the EURUSD settings, which were not tested on it. A name the broker does not have is shown as not found; if none of the typed names is found, the program trades all 11. If the broker has none of the 11, the program trades the chart's own symbol with the EURUSD settings.
Advanced (leave as tested) Add size multiplier (1 = tested) 1.0 Changes how fast the size of each add grows as a position adds. The first entry of a position is not changed. 1 is the tested setting; values from 0.1 to 10. Leave it at 1.
Advanced (leave as tested) Max adds per position (0 = no adds) 100 The limit on adds the program makes to one position after its first entry. 100 is the tested setting; 0 trades the first entry only. Values from 0 to 1000. Leave it at 100.
Advanced (leave as tested) Magic number (tags this EA's trades) 20260917 A number the program writes on its trades so it can tell them from your own trades and from other programs. Keep the default unless another program on this account uses the same number. Do not change it while the program holds positions: positions under the old number are no longer managed, and the account's own money and the program's results are worked out again from the new number's first trade. A second copy with the same number on the same account opens nothing new. Values from 1 to 2147483647.

There is no set file to load: the defaults are the tested settings. Every input in detail, below, adds what the tests showed for each one.

What the panel says

The program writes a short panel in its chart's top left corner: first its state, the Capital and size it uses, the smallest account for your broker and how many pairs are trading; then one line for each pair; then any notice that applies. The table lists every line the panel can show, as the panel shows it (a word in italics stands for the value it fills in), and what to do.

The panel shows What it means and what to do
Armada Quant FX version | Starting The program has just started and is reading the account and the pairs. Nothing to do.
Armada Quant FX version | Running The program is trading normally. Nothing to do.
Armada Quant FX version | Finishing open positions Open new positions is set to No: the program opens nothing new and finishes the positions it holds.
Armada Quant FX version | Stopped by loss limit The loss limit was reached: every position was closed and nothing new opens. Set a different Loss limit to trade again.
Armada Quant FX version | Algo Trading is off Trading is switched off in the terminal or for this program, so no orders are sent. Switch on Algo Trading in the toolbar and allow it in the program's settings.
Capital amount currency (source) | Size size | Compounding percent% What the program sizes from: the amount and its currency, typed when it comes from the Capital input and account balance when it is the account's own money; then the size each new position gets, and the compounding percent. Check that the amount is what you expect.
Smallest account for this broker: amount currency The smallest account this broker's minimum order size allows at the tested proportions. Below it, orders use the smallest size and the risk is higher than tested.
Pairs: number of number trading How many pairs are trading, out of the pairs the program is set to trade. A pair the broker does not have shows as not found.
pair: flat The pair has no open position. Nothing to do.
pair: long lots The program holds a buy position on this pair, of this many lots in total. Nothing to do.
pair: short lots The program holds a sell position on this pair, of this many lots in total. Nothing to do.
pair: out since date (drawdown filter) The drawdown filter stepped this pair out on this date: its positions were closed and the pair is not traded. The program keeps tracking the pair and steps back in by itself. Nothing to do.
pair: waiting for history number/needed The pair's hourly price history is still loading: the first number is the bars available, the second the bars needed. This pair waits; the other pairs trade. Keep the terminal connected; this clears by itself once the history has loaded.
pair: not found The broker has no symbol for this pair, so it is not traded. The other pairs trade as usual.
pair: not readable on this chart In a Strategy Tester run on a chart above H1, this pair's hourly data cannot be read in that test mode, so the pair is left out of the run. Test on an H1 chart, the tested setup, to include it.
pair: unconfirmed order An order on this pair was accepted but the broker has not reported a result yet. The program sends nothing more on this pair and reads its positions again for up to 60 seconds, then carries on with what the account shows. If this stays, check the terminal's connection.
pair: order refused: reason The broker refused an order on this pair, for the reason shown. A passing refusal, such as a price change, is tried again within the same hour; closes are tried again until they are done. If it repeats, check the reason with your broker.
pair: closed, margin level under 90% date The account's margin level fell below 90% while the notice that this account is below the smallest account was showing, so the program closed this pair (it closes the pairs with the largest open loss first) to keep a broker's stop-out from closing positions. The pair trades again on its next signal. While that notice is off, this never happens.
Algo Trading is off: switch it on in the toolbar and in this program's settings. Trading is switched off in the terminal or for this program, so it sends no orders. Switch on Algo Trading in the terminal's toolbar, and tick Allow Algo Trading in the program's settings (Common tab).
Capital is above the account's own money: using amount currency. The Capital you typed is more than the account's own money, so the program uses the account's own money, the amount shown. Type a Capital at or below that amount, or 0.
This account is below the smallest account for this broker: orders use the smallest size and risk is higher than tested. The account's money, or the Capital you typed, is less than this broker's minimum order size allows at the tested proportions. Every new position then uses the smallest size, so the risk is higher than tested. If the margin level then falls below 90%, the program closes the pair with the largest open loss, and the next one while the level stays under 90%. The panel line Smallest account shows the amount this broker needs.
Waiting for the account history. The account's deal history does not yet add up to its balance, and the program needs it to work out the account's own money. Until then it opens and adds nothing; exits keep running. After 10 minutes it uses the figure it has so far and keeps this notice. Keep the terminal connected.
Waiting for a conversion rate: add pair to Market Watch. The account is not in US dollars and the program needs a dollar rate to size its orders. Add the pair shown to Market Watch. Until then it opens and adds nothing; exits keep running.
The drawdown filter cannot run for pair: no conversion rate. The drawdown filter cannot convert this pair's results because a conversion rate is missing, so the filter does not watch this pair while this notice shows. Check that your broker's pairs for the account currency are in Market Watch.
Orders are being reduced to fit the free margin. There is not enough available margin for the full order size, so orders are made smaller to fit. Positions are then smaller than tested. A lower Capital keeps orders within the margin.
An order was capped at the broker's maximum order size. An order was above your broker's maximum order size and was cut to that size. With a large Capital, check your broker's maximum order size.
Another copy is trading this account with the same magic number: this copy opens nothing new. Remove one copy and restart. A second copy of the program is trading this account with the same magic number. This copy opens and adds nothing and does not step back in; it still closes its positions. Remove one copy and restart the other.
pair: a position was closed or changed outside the program and was re-read from the account. A position of the program on this pair was closed or changed from outside the program: by hand, by a stop loss or take profit set on it, or by the broker (for example a stop out). The program read the account again and carries on with what is left. Do not close the program's positions by hand.
Loss limit reached on date: all positions closed. Set a new Loss limit to resume. The loss limit was reached on this date: the program closed every position it held and opens nothing new. It stays on the chart. To trade again, set a different Loss limit (0 switches the limit off); the program then starts fresh on every pair.
New positions are switched off: finishing number open positions. Open new positions is set to No: the program opens nothing new and finishes the positions it holds, still adding to them and closing them by its rules. Set it to Yes to trade normally.
The broker's limit on open positions was reached: an order was skipped. The account reached the broker's limit on open positions and orders, so an order was skipped. Positions and orders of other programs and your own trades on this account count toward the limit; ask your broker about it.
This account closes trades oldest first: do not trade the same pairs by hand or with another program. This account closes trades in the order they were opened, oldest first, so the program can close its trades only when no older trades are open on the same pair. Do not trade the same pairs by hand or with another program on this account.
pair is not one of the 11 tested pairs: it runs with the EURUSD settings. A pair typed in Pairs is not one of the 11 tested pairs. It trades with the EURUSD settings, which were not tested on it. Remove it from Pairs unless you mean to trade it.
The 11 pairs cannot be read here: trading the chart's symbol with the EURUSD settings. None of the 11 pairs can be found or read here, so the program trades only the chart's own symbol with the EURUSD settings. Check that your broker offers the pairs. In the Strategy Tester, use the test settings in this manual so that all 11 pairs load.

Each time a line or a notice appears or clears, the program also writes one line to the Experts tab of the terminal's Toolbox. When it starts, it writes "Armada Quant FX version started on pair timeframe: number of number pairs trading"; when a notice clears, it writes "Cleared: notice". A Strategy Tester run without visual mode has no chart, so it shows no panel; its journal gets the start line and the notices.

With "Phone notifications" set to On, the program sends these messages to the MetaTrader app on your phone, through MetaTrader's own notification service (the input is off by default):

  • Armada Quant: the drawdown filter stepped pairs out.
  • Armada Quant: the drawdown filter stepped pairs back in.
  • Armada Quant: loss limit reached, all positions closed.
  • Armada Quant: another copy is trading this account.
  • Armada Quant: margin level fell below 90%; pairs were closed, largest open loss first.

In the account's history, the program's own orders carry a comment only in these cases: "drawdown filter out" when the drawdown filter closes a pair's positions, "drawdown filter in" when it steps back in, "drawdown filter sync" when, while stepping back in, it closes what no longer matches the positions it tracks, "loss limit percent" when the loss limit closes every position, and "margin level close" when the program closes a pair because the margin level fell below 90% (below the smallest account only). Ordinary entries, adds and exits carry no comment.

Questions and answers

Getting started

I bought it. What do I do next?
Follow the Fast Start at the top of this manual: one chart, Capital typed or left at 0, every other input at its default, Algo Trading on, and the terminal kept running. To see it work first, test it in the Strategy Tester as described under Testing and results below.

Why has it not traded yet?
It decides once an hour for each pair, and most hours bring no new position: a pair can go days, sometimes weeks, without one. That is normal. If nothing happens for longer, read the panel. Its first line should say "Armada Quant FX 2.01 | Running", the pairs line should show the pairs trading, and no notice should be asking you to act. A pair whose line says "pair: waiting for history number/needed" is still loading its hourly history; the other pairs trade meanwhile. What the panel says, above, gives the action for every notice.

How do I change the size?
Change Capital. Click the chart and press F7 to open the program's settings, go to the Inputs tab, type the new amount in "Capital (0 = account balance)" and click OK. New positions use the new size; a position that is already open keeps its own size for all of its adds. The panel's Capital line then shows the amount and the size the program uses. Leave the other inputs as they are: they do not set the size.

Is there a set file?
No. The defaults are the tested settings, so there is nothing to load. Capital is the only input you set.

How it trades

Why did a pair close at a loss?
A pair's positions close at a loss in one of these ways:

  • The drawdown filter exited the pair: at its once-a-day check the pair's result, open positions included, had fallen about 17.6% of Capital below its high and was still going against you, so the filter closed that pair's positions. Those closes carry the comment "drawdown filter out", and the pair's line on the panel says "pair: out since date (drawdown filter)". The filter keeps tracking the pair and steps back in by itself, while the other pairs trade on. The drawdown filter, below, gives the full rule.
  • The stop after a set number of entries, "Stop loss after N entries (0 = off)", closed a position that had gone that deep.
  • The loss limit, "Loss limit, % of Capital (0 = off)", if you set one, closed every position.
  • A position closed at its profit exit can still end at a loss after spread, swap, commission or a price gap.

Why is there no stop loss on each trade? What limits a loss?
A position closes in one of these ways: the profit exit (the whole position closes at an hourly close where it shows a profit and its exit signal fires), the drawdown filter's exit, the stop counted in entries (MaxEntryStopLoss, 100 entries by default, which never fired in the test) and, when you set it, the loss limit (off by default and not part of the tested results). There is no other stop loss: the program adds to a position that moves against it, so a position can stay open for a long time and the account can fall far below its high meanwhile. A stop loss on each trade would close the positions the method is built to hold through a fall, so the program does not use one. What limits a loss is the drawdown filter, for each pair; the stop after a set number of entries, for each position; and, if you want one, the loss limit for the whole program, which is off by default.

Does it add to losing positions?
Yes. When the price moves against an open position and the entry signal occurs again, the program adds to that position, and each add is normally larger than the one before. Each add needs a minimum move against the last fill. The position, its open loss and its margin grow while it is under water, and the whole position closes together, at its profit exit or at one of the exits above. This is the core of how it trades. Be at peace with it before you run it.

How long can it stay below its high, and how long are positions held?
Activity in the test: 16,668 positions, about 78 a month; average hold 3.1 days, median 10 hours; most positions (84%) are a single entry. In the test the longest hold was 383 days (a EURCHF short, July 2020 to July 2021); on Alpari and FXTM data a EURCHF short was held 643 days (August 2011 to May 2013), until the drawdown filter stepped it out. The account spent up to 141 days below a previous high in the test (June to November 2015), and up to 306 days on Alpari data (April 2013 to February 2014) and up to 260 days on FXTM data (April 2013 to January 2014).

These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under-or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

Running it

How do I stop it?
Use the finish switch: set "Open new positions (No = finish)" to No. The program opens nothing new and does not step back in after the drawdown filter, but it keeps managing the positions already open: it still adds to them and closes them by its rules, and the stop after a set number of entries, the drawdown filter's step-outs and the loss limit keep working. The panel's first line says "Armada Quant FX 2.01 | Finishing open positions", with the notice "New positions are switched off: finishing number open positions." When every pair's line says "pair: flat", you can remove the program from the chart. Removing it earlier, or switching Algo Trading off, leaves the open positions with no exits, no drawdown filter and no loss limit. If you must stop at once, remove the program first, then close its positions yourself.

What does each status line mean?
What the panel says, above, lists every line and notice the panel can show and what to do about each.

Can I update it, restart it or move it with positions open?
You can update it or restart the terminal with positions open. The program keeps its memory in the terminal's global variables (the Global Variables window, F3), so it carries on after a restart of the same terminal. Start it where it will keep running; on a VPS, migrate before its first trade. A move to another computer or VPS does not carry that memory, so move it only when no position is open, and start it there with a new MagicNumber.

After an update or a restart it carries on managing the open positions, each with its own size. A restart rebuilds each pair's trend reading from the recent hourly bars, so the first exits after a restart can differ by a few hours from those of an uninterrupted run.

Do not move it while positions are open. A new computer, a new terminal, a move to a VPS or a new migration does not carry that memory, and the program is not built to take over its open positions without it. To move it later, set "Open new positions (No = finish)" to No and let every position close: the panel then shows every pair's line as "pair: flat" or "pair: out since date (drawdown filter)". (On a VPS, where a change of inputs needs a new migration, close the positions in your terminal instead and migrate right away, because until the new migration the VPS copy keeps trading; then check in your terminal that none of its old positions is left open, and close any that is.) Switch Algo Trading off in the old terminal (on the MQL5 VPS, remove the program from its chart and migrate, which stops the VPS copy), and start the program in the new one with a new "Magic number (tags this EA's trades)". Letting every position close can take weeks or months; closing them in the terminal is the quick way. Under a new Magic number the program starts fresh: with a typed Capital its compounding counts again from that amount, and a pair the drawdown filter had taken out can trade again.

With "Drawdown filter level (0 = off)" at zero, the drawdown filter is off and the program keeps no saved memory of its open positions. A restart still carries on, but if you changed Capital or compounding while a position was open, that position's remaining adds use the current settings.

Install an update the way you installed the program, from the Market in your terminal. Do not change "Magic number (tags this EA's trades)" while positions are open: positions under the old number are no longer managed.

The loss limit stopped it. How do I start it again?
Set a new value in "Loss limit, % of Capital (0 = off)": the program then trades again under the new limit. One case needs one more step. Some brokers remove order comments, and after a start without its saved memory under the same Magic number, the program then cannot tell which limit stopped it, so a new value alone can leave the panel's first line at "Armada Quant FX 2.01 | Stopped by loss limit". In that case set "Loss limit, % of Capital (0 = off)" to 0 (off) and start it: it trades again, and its first new position clears the old stop. Once that position is open, set the loss limit you want.

Do I need a VPS?
You need a terminal that runs around the clock with the program on its chart: a computer that stays on and online, or a VPS. While the terminal is off, the program manages nothing: no exits, no drawdown filter, no loss limit. When it starts again it carries on from the current hour; it does not go back over the hours it missed. Running on a VPS, below, has the steps for MetaTrader's own VPS.

Which account type should I use?
Hedging and netting accounts both work. On a netting account, positions on the same pair merge, so run other programs on other pairs. The program closes only the share of a position it opened itself. Standard and raw spread accounts both work; on a raw spread account the broker charges a commission per lot, and Testing and results, below, says what that changed in the test. Accounts in a currency other than US dollars work too: Capital is typed in the account's own currency, and the program measures the dollar conversion itself. The smallest account for each account type is listed under How the size is worked out, below, and the panel shows it for your broker. Cent accounts are offered mostly by brokers outside the EU, the UK, Australia and the US, and the program has not yet run on a real cent account. It has not yet run on US accounts. On large accounts, above about $450,000, check your broker's maximum order size.

Which pairs does it trade? Can I add gold or yen pairs?
It trades EURUSD, GBPUSD, AUDUSD, USDCAD, USDCHF, EURGBP, AUDCHF, AUDCAD, CADCHF, GBPCHF, EURCHF, all from the one chart it is attached to. It is built and tested for these eleven pairs. On any other symbol, yen pairs and gold included, it runs with the EURUSD settings, never tested there; we advise against it. To trade fewer of them, list the ones you want in "Pairs to trade (empty = all 11)", under Advanced (leave as tested); the published results are for all of them together. The terminal keeps at most 255 characters of that input and cuts the rest, so type the pairs by name, separated by commas, about 30 names at most.

Can I trade the same pairs by hand, or run other programs?
On a hedging account, other trades on the same pairs do not disturb it: the program manages only the positions that carry its magic number. Do not close or change its positions by hand; if one is closed or changed from outside, the program reads the account again and the panel shows "pair: a position was closed or changed outside the program and was re-read from the account." The one exception is a move, when you close its positions yourself just before migrating, as Running on a VPS, below, describes. On a netting account, do not trade the same pairs by hand or with another program: positions on the same pair merge into one. The same holds on an account that closes trades oldest first, as US accounts do; there the panel shows "This account closes trades oldest first: do not trade the same pairs by hand or with another program." Run one copy of this program per account: with a second copy on the same magic number, both copies stop opening and adding until you remove one and restart the other.

Testing and results

How do I test it, and in which mode?
Try it first with the free demo version, which runs in the MetaTrader 5 Strategy Tester. One test on one chart runs all the pairs together. In MetaTrader 5, add the 11 pairs to Market Watch first. Sign in to a MetaQuotes-Demo account, so the tester uses MetaQuotes data like the test. In the Strategy Tester choose the symbol EURUSD, the period H1, the model "Open prices only", leverage 1:100, the dates from January 1, 2009 to September 26, 2026 and a deposit of $175,000, and leave Capital at 0. That deposit repeats the test; it is not a suggestion for your account. To repeat the published results, keep that model: another test model gives other results. The first run is slow while the history downloads. Use the chart these steps name: on a chart with a timeframe above H1, the chart's own pair is left out of the run, and its line says "pair: not readable on this chart".

What changes with real ticks?
The test used the model "Open prices only". Run at a fixed size with "Every tick based on real ticks" from September 2024 to September 2026, the net result changed by −1.5% (−25.0% to +6.2% per pair) and the worst drop by +1.9%. With real ticks the spreads are wider in the hours around the broker's daily rollover, and most of the difference comes from those hours.

Why do my results differ from the product page?
Results on your broker will differ: price data, spreads, swap, the server clock and its rollover spreads differ between brokers. When you start matters too: a test started on another date meets other drops. A different deposit, a typed Capital, another compounding setting, another leverage or another test mode also changes the figures.

What does commission change?
On an account that charges commission, at $7 per lot round turn the fixed-size average full-year gain would be 23.5% of the starting balance instead of 24.3% (computed from the test's deals; at a fixed size the decisions do not change).

What leverage does it need?
The tests ran at leverage 1:100. For retail clients in the EU and the UK, eight of the eleven pairs are limited to 1:30 and AUDUSD, AUDCHF and AUDCAD to 1:20; in Australia all eleven are limited to 1:30. In the test the lowest margin level was 171% at 1:100, 97% at 1:50, 88% at 1:30 and 78% at 1:20; over the eight start dates the lowest was 89% at 1:30 and 94% at 1:20, with no stop-out. At 1:50 one order was reduced to fit the free margin, and the result was 4.0% lower than at 1:100. At 1:30 one order was reduced to fit the free margin, and the result was 52.3% lower than at 1:100. At 1:20 one order was reduced to fit the free margin, and the result was 27.6% lower than at 1:100.

These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under-or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

What it does not have

Is there a group chat or channel outside MQL5?
No. Questions and support go through the product page's Comments, in the open, or through MQL5 messages; we aim to reply within 24 hours.

Is there a MetaTrader 4 version?
No. It runs on MetaTrader 5 only.

Is there a prop-firm mode?
No. It is not built for prop-firm rules.

Does it have a news, time or spread filter?
No. It trades by its tested rules in every hour the market is open. Any such filter would be new trading behavior that was never tested.

Is there a Signal to follow?
No. Try it first with the free demo version, which runs in the MetaTrader 5 Strategy Tester.

Updates

How often is it updated?
Updates are published when a fix or an improvement is ready, with no fixed schedule. Install one the way you installed the program, from the Market in your terminal; the answer on updating with positions open, above, says what happens to them.

Running on a VPS

Any VPS that runs MetaTrader 5 around the clock works. MetaTrader's own VPS, the MQL5 virtual hosting, is the simplest; these steps are for it.

  1. If you want phone notifications (they use MetaTrader's own service), enter your MetaQuotes ID in the terminal first (Tools, Options, Notifications), and set "Phone notifications" to On.
  2. Attach the program as in the Fast Start, but leave the toolbar's Algo Trading button off on this computer: the VPS trades regardless, and this way nothing trades here before the migration. It adds its pairs to Market Watch itself, so there is nothing else to prepare.
  3. Move the terminal to the VPS (migrate) right away, before the program's first trade. A migration does not carry the program's memory, so it must start on the VPS before it trades.
  4. Keep Algo Trading off in the terminal at home, and never switch it on while the VPS copy runs. Two copies on one account each stop opening and adding, and the panel shows "Another copy is trading this account with the same magic number: this copy opens nothing new. Remove one copy and restart."
  5. The VPS has no screen, so its panel cannot be seen. Read the status in the VPS journal: the program writes one line each time a status or a notice appears or clears.
  6. Set the inputs before you migrate, and keep them: the VPS runs the inputs it received at the last migration, and a new migration does not carry the program's memory, so it counts as a move. Do it only when no position is open: with 11 pairs the program is rarely without one. So change the inputs and set a new "Magic number (tags this EA's trades)" in your terminal, close the program's positions there and migrate again right away, because until the new migration the VPS copy keeps trading. Then check in your terminal that none of its old positions is left open, and close any that is.

The VPS can restart on its own, for updates and maintenance; the program then carries on from the memory it saved there. Accounts that sign in with a one-time password cannot use the MQL5 VPS. If the loss limit had stopped the program before a move, there is nothing to clear: under its new "Magic number (tags this EA's trades)" it starts fresh.

How the size is worked out

Capital: type the money the program may trade with, in the account's currency, or leave it at 0 to use the account's own money (deposits and withdrawals included, never credit or bonuses). A typed Capital above the account's own money is capped at it, and the panel says so. CompoundPercent: at the default 100, every closed result of the program is added to the money each new position is sized from, so sizes grow after gains and shrink after losses. At 0 the size stays fixed. The headline results use the default; the fixed-size figures use 0.

The program turns that money into the size of each new position in the fixed proportion the tests used, and rounds it down to a whole size step, which depends on the account's contract size. A position keeps its size for all of its adds. On an account in another currency, the program needs a dollar rate to size its orders; until it has one, the panel shows "Waiting for a conversion rate: add pair to Market Watch."

The smallest account depends on your broker's minimum order, and the panel's line "Smallest account for this broker: amount currency" shows it for your broker. Below it, every new position uses the smallest size, so the account can lose far more than in the test. If the margin level then falls below 90%, the program closes the pair with the largest open loss, and then the next one while the level stays under 90%. A broker whose stop-out level is 90% or higher closes positions before the program does, and no program can act inside a price gap. By account type:

  • Cent account (contract size 100,000): $577.50
  • Micro account (contract size 1,000): $577.50
  • Contract size 10,000: $5,775
  • Standard account (contract size 100,000): $57,750

Every input in detail

  • DrawdownFilter: The level of the drawdown filter. At the default 10 a pair steps out after a fall of about 17.6% of Capital from its high; the amount scales with Capital, with compounding and with the level. 0 turns the filter off, and the program then trades exactly as it would without it. The results shown use 10, with 0 for comparison.
  • MaxEntryStopLoss: 0 turns it off. At the default 100 it never fired in the test (the deepest position held 16 entries, 20 on Alpari data). A low setting turns open drawdowns into realized losses, and the results shown were not tested that way.
  • LossLimitPercent: off by default (0). When you set it, the EA closes every position once its results, open positions included, have fallen that percent below the high its closed results reached, and opens nothing until you set a new limit. The percent is taken of Capital plus the closed profits compounding had added at that high. It closes at market prices, so a gap can take the loss past the limit. It is not part of the tested results.
  • OpenNewPositions: No opens nothing new and lets the open positions finish by their rules; this is how to stop the program.
  • PhoneNotifications: phone notifications use MetaTrader's own service and are off by default. On sends a short message to your phone when the drawdown filter or the loss limit acts, or a second copy is found; the program uses no other connection. It also sends one when the margin level falls below 90% and pairs are closed, which happens only below the smallest account.
  • Pairs: empty trades all eleven pairs; a list of names limits it to those.
  • AddSizeScale: Changes how fast the size of each add grows; the first entry is not changed. Only the default was tested; at any other value positions grow differently from the tests, so results will differ from them.
  • MaxAdds: The most times the program may add to one position. The deepest position in the test used 15 adds (19 on Alpari data), so at 100 it never limited anything.
  • MagicNumber: change it only if another program on the account uses the same number, or when you move the program to another terminal (see its memory, above); never while positions are open.

These input figures come from the same simulation as the test below.

These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under-or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

The drawdown filter

The drawdown filter watches each pair's result on its own, open positions included, and decides once a day. A pair is exited when two things are true: its result has fallen about 17.6% of Capital below its high (at the default setting), and that result is still going against you. It makes no difference whether the pair holds buy or sell positions, because the filter watches the pair's result, not the direction of the price. The program then closes that pair's positions at the next hourly open and stops trading it, while the other pairs keep trading as usual. While the pair is out, the program keeps tracking the positions it would have held, including the adds it would have made. Once that tracked result has recovered to within half the exit amount of its high and its trend has turned in your favor, the program re-enters and takes on the positions it would be holding at that moment. Because it decides once a day, a sudden price gap, or several pairs falling together, can still cause a large drop.

In the 17-year test on MetaQuotes data the drawdown filter acted three times: AUDUSD was out from July 2009 to September 2012, USDCAD from July 2015 to March 2016, and AUDUSD from March 16 to April 9, 2020. The other nine pairs never stepped out.

The test's worst drop with the drawdown filter was 30.9% of the account's value at its high, from February 5 to March 19, 2020. With the filter set to 0, the same test fell 87.7% from its high in the same weeks.

These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under-or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

The test behind the figures

All results are simulated: the MetaTrader 5 Strategy Tester on MetaQuotes demo data, January 1, 2009 to September 25, 2026, all eleven currency pairs traded together from one chart in one account, with compounding at its default, 100%, and the drawdown filter at its default, 10. Returns are in percent of the account's value at the start of each year, drops in percent of the value at the high.

Year by year with compounding at 100% (full calendar years; the return on the account's value at the start of each year): 2009: 29.5%; 2010: 38.9%; 2011: 43.5%; 2012: 18.9%; 2013: 18.3%; 2014: 10.5%; 2015: 84.9%; 2016: 42.5%; 2017: 22.5%; 2018: 13.1%; 2019: 25.3%; 2020: 17.6%; 2021: 16.8%; 2022: 13.9%; 2023: 20.8%; 2024: 31.5%; 2025: 16.5%. At a fixed size (compounding 0; percent of the starting balance): 2009: 24.3%; 2010: 35.8%; 2011: 36.1%; 2012: 17.4%; 2013: 17.5%; 2014: 10.1%; 2015: 70.4%; 2016: 38.2%; 2017: 20.7%; 2018: 12.4%; 2019: 23.2%; 2020: 15.5%; 2021: 15.4%; 2022: 13.6%; 2023: 20.2%; 2024: 26.5%; 2025: 15.6%. No full calendar year lost money in the test (2009–2025). That did not hold on every broker's data: from January 2011, FXTM data lost 2.6% in 2023. Your own results will also depend on when you start, on your broker and on the settings you choose.

2026 is a partial year (the test runs from January 1, 2009 to September 25, 2026) and is left out of the year-by-year figures. On Alpari and FXTM price data (2011–2025) the full years with the largest return were 2015 on Alpari data (+65.5%) and 2011 on FXTM data (+44.5%). In 2026 to September 25 (a partial year) the test made +7.7%, and Alpari and FXTM data −3.6% and −3.3%.

With compounding at 100% (the default), the account ended at 5,719% of its starting balance after 17.7 years; at a fixed size (compounding 0) it ended at 520%. Compounding also makes the drops larger in money. With compounding at 100% from January 2011, the account ended at 3,035% of its starting balance on MetaQuotes data, 1,881% on Alpari data and 1,480% on FXTM data. At a fixed size the average full-year gain was 24.3% with the drawdown filter and 26.3% with it set to 0 (2009–2025), and the worst drop was 31.0% and 88.2% of the starting balance; the nine pairs that never stepped out traded exactly as with the filter set to 0. Figures at a fixed size (compounding set to 0) are in percent of the starting balance.

These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under-or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

Other periods, including ones not tested here, can produce a much larger drawdown than shown.

Disclaimer

Trading foreign exchange on margin carries a high level of risk and is not suitable for every investor. You can lose part or all of your deposit. Only trade with money you can afford to lose.

Every result in this manual is simulated. Past results, on any feed, are not indicative of future results.

Nothing in this manual is investment, tax or legal advice, and nothing here is tailored to any individual's account, goals or circumstances. Armada Quant is not registered as a broker-dealer, investment adviser or commodity trading advisor with the CFTC, SEC, FINRA, NFA or any other authority.

Armada Quant is not affiliated with, endorsed by or sponsored by MetaQuotes Ltd., Alpari or FXTM; their price data is named only as the source of the test and comparison results. MetaTrader, MetaTrader 5, MQL5 and MetaQuotes are trademarks of MetaQuotes Ltd.

Armada Quant FX Portfolio Trader is developed and owned by Sable Pacific LLC.