Take a daily breakout strategy on gold that has been profitable for five years. Keep the exact moments it enters the market. Replace its direction with a coin flip. Keep its trade management. Run it 100 times with 100 different coins. All 100 runs are profitable, median profit factor 2.06, about half the profit of the original. Now keep the coin flip and remove the trade management. On real ticks, every single run loses.
That pair of results is what this article is about. A profitable breakout system turns out to be three separable things, when it trades, which way it trades, and how it handles the trade afterwards, and they do not contribute to the profit the way most of us assume. The rest of the post is the method, the numbers, what I think they mean, and a backtest-only EA so you can check the main result against your own broker's data (free download for MT4, MT5 and cTrader).
The question
For two months I reverse-engineered commercial gold EAs from their trade lists, rebuilt the common engine behind a family of them as my own cBot/EA, and matched it trade for trade against the originals (195 of 195 trades over five years on one parameter set). Once the engine matched, I could start taking it apart. The first question was the obvious one:
Where does the profit come from, the entry or the management of the trade after entry?
I had a hypothesis, and it was the fashionable one: the entry barely matters. Three pieces of evidence pointed that way. Measured fifteen minutes after a fill, with no management, the strategy's entries were a coin flip: median move about zero, 44–55 % winners. A machine-learning model I trained to predict the direction of gold over the next 100 minutes scored AUC 0.47–0.52, which is noise. The same features predicting whether a large move was coming, in either direction, scored 0.85. So: you can tell that something is about to happen, you cannot tell which way, and a good exit should be able to monetise the first without the second.
The hypothesis was half right. The experiment is more interesting than the hypothesis.
Method
Everything runs on one dataset: XAUUSD, raw-spread account, July 2021 to October 2026, 10,000 USD, 0.1 lots scaled by price (about 0.05 lots at 4,000 USD gold). Two data modes: 1-minute bars with four ticks per bar for the 100-seed runs, and the full 257-million-tick archive with real spread for a confirmation pass.
The strategy is a daily-level breakout with a rich management layer. Parameters are the published defaults of a widely sold EA family; I did not tune anything.
| Layer | Rule |
|---|---|
| Entry | Daily swing highs and lows (higher than 24 bars to the left, not lower than 3 to the right). Buy stop placed 275 pips inside the high, sell stop 160 pips inside the low. Up to 5 pending orders per side, 35-hour expiry. All distances scale with the price level. |
| Stop / target | Stop 3.05 % of price, target 0.725 %. |
| Breakeven | At +0.93 % profit the stop moves to entry +0.12 %. |
| Trailing stop | From +1.8 % profit, trail 1.8 % behind price. |
| Pulled target | When a trade is 1.6 % under water, the target is pulled to price +0.7 %: exit on the first bounce. |
| Reversal cut | If the M1 or M15 candle containing the fill closes against the trade, close it. |
| Filter | No trading around the monthly US jobs report. |
"Management on" means all of it. "Management off" means the original stop and target only. The entry was then replaced by three alternatives, each run with management on and off:
- Coin flip, full. At each 15-minute bar, enter with a probability calibrated to the original's frequency (37 trades a year). Direction by coin flip. Market order.
- Original timing, coin-flip direction. Keep the exact instants the original's stop orders fill. At each one, with probability 0.5, open the opposite trade instead, with stop and target distances mirrored.
- Original timing, opposite direction. Probability 1. Every breakout is faded.
Random variants run 100 seeds on bars, 10 on ticks. The generator is a deterministic xorshift that produces the same sequence in the C#, MQL5 and MQL4 builds, so seed 7 is the same experiment on every platform. Before any of this, the engine's "no change" configuration was checked to reproduce the original trade list exactly.
Result 1 — management does not turn noise into money
Random timing, random direction, full management: median PF 0.95, 45 % of seeds positive, median result −132 USD on 10,000. Win rate 19 %. The management layer does what it is designed to do, it cuts losers at breakeven or on the first bounce, which is why a 19 % win rate is nearly break-even rather than a catastrophe. It is not a source of profit.
The blue cloud is 100 random seeds, the red line is the original strategy. No seed approaches it. Over 2025 in isolation the cloud drifts positive (median PF 1.16, 60 % of seeds), because gold rose 60 % that year and the trailing stop rode part of it. That is the market, not the method. So the first thing the experiment did was refute my own hypothesis: "any entry plus good management" does not work.
Result 2 — timing alone is worth half the profit, even with a coin flip for direction
Keep the 195 moments the original entered, flip a coin for direction: 100 of 100 seeds profitable, median PF 2.06, median profit +3,663 USD. Original timing, original direction: PF 2.45, +7,414. Original timing, every trade faded: PF 0.74, −409.
The three lines decompose the edge. With the break: +7,414. Against it: −409. Coin flip: +3,663, almost exactly the average, as arithmetic says it must be. The entry's value therefore splits into two roughly equal halves:
- Timing — being in the market right after a daily level breaks, when a large move is likely. This half survives the coin flip entirely. It is also the half the volatility model could predict.
- Direction — trading with the break rather than against it. Worth another +3,700 over five years. Real, but it is the thin half, and the fade line is what getting it wrong looks like.
Note the win rates. The fade wins 77 % of its trades and loses. The coin flip wins 69 %. The original wins 61 %. Win rate ranks these three in exactly the wrong order.
Result 3 — management is what converts timing into money
Same three entries, management off, stop and target only:
Original timing, coin-flip direction, no management: median PF 0.72, median result −6,088 USD, 6 of 100 seeds positive, median drawdown 9,738 USD on a 10,000 account. Same entries with management: +3,663, 100 of 100 seeds, drawdown 622.
This is the finding. Trade management does not create an edge. It is the mechanism that lets you collect an edge you can only half see. You know a move is coming and not its direction. Without breakeven, pulled targets and reversal cuts, the wrong-way half of your trades runs to the 3 % stop and consumes the right-way half. With them, the wrong-way half costs a fraction of a percent and the right-way half pays.
Result 4 — when the entry is already right, management buys drawdown with profit
The original strategy with management off makes more: +11,494 against +7,414. It also holds trades for a median 22 hours instead of 3.8, rarely reaches its 3 % stop, and takes a 2,683 USD drawdown instead of 674. Profit per unit of drawdown falls from 11.0 to 4.3. At equal drawdown you could run the managed version at roughly four times the size.
Two cautions. These bars have no spread and no swap, so a 22-hour hold is free here and is not free in a live account. And the drawdown ratio, not the profit, is the number that decides position size. Which brings us to the tick data.
Confirmation on 257 million real ticks
Same account, same lots, same period, the full tick archive with real spread. Fewer seeds because each run takes longer.
| Entry | Management on: PF · net · DD · % runs positive | Management off: PF · net · DD · % runs positive |
|---|---|---|
| Coin flip, full (10 seeds, median) | 0.98 · −71 · 866 · 40 % | 0.78 · −3,302 · 4,806 · 0 % |
| Original timing, coin-flip direction (10 seeds, median) | 1.70 · +2,896 · 825 · 100 % | 0.78 · −4,830 · 9,138 · 0 % |
| Original timing, original direction | 2.36 · +7,292 · 674 | 2.40 · +11,879 · 2,683 |
| Original timing, faded | 0.22 · −1,936 · 2,077 | 0.34 · −22,998 · 23,938 |
Real ticks are harsher on everything except the original with management, which is unchanged (+7,292 against +7,414 on bars). The coin-flip-direction variant keeps all 10 seeds profitable but drops from PF 2.06 to 1.70: spread and slippage come out of the wrong-way half. The fade collapses to PF 0.22. The conclusion sharpens: on real ticks, every run without management lost money, including all 16 random seeds.
While the ticks were loaded, I removed the management layers one at a time, original entries, original direction:
| Layer removed | Net | PF | Drawdown | Win rate |
|---|---|---|---|---|
| none (full strategy) | +7,292 | 2.36 | 674 | 60 % |
| breakeven | +7,793 | 2.18 | 674 | 55 % |
| trailing stop | +7,292 | 2.36 | 674 | 60 % |
| pulled target | +8,092 | 2.53 | 1,178 | 65 % |
| reversal cut | +9,516 | 2.62 | 1,223 | 80 % |
| swing trailing | +7,000 | 2.24 | 686 | 60 % |
| jobs-report filter | +6,808 | 2.17 | 826 | 59 % |
Three observations. The trailing stop never fires: its activation level (1.8 %) lies above the take-profit (0.725 %), so the published defaults ship a dead parameter that no backtest would ever reveal. The two layers that do the work are the pulled target and the reversal cut: remove either and drawdown nearly doubles while profit rises. And every layer in the table costs profit and buys drawdown. That is what trade management is for, and it is why it cannot be evaluated with a profit figure.
What I take from this
- Direction is the thin half. Neither the strategy's own logic nor my models predict it at these horizons. Spend the optimisation budget on when to be in the market.
- Win rate measures nothing here. 77 % won and lost money; so did a night-scalping EA I examined that wins 96 % of its tester trades and made +605 USD on 10,000 in 5.8 years.
- "Any entry plus a trailing stop" is false. 100 seeds on bars, 10 on ticks.
- Evaluate management by drawdown. Switching it off looked better on profit and was four times worse on drawdown.
- Check which layers actually fire. One of the five in this system never did.
A related observation from the same reverse-engineering work: one EA I took apart matched its own published backtest on 90 % of entries in live trading and kept 24 % of the backtested profit. Entries identical, exit layer behaving differently live, three quarters of the money gone. Exits are where backtests and live accounts diverge.
Limitations and the objections I expect
"So entries do matter." Timing does, a lot; the first chart is the evidence against my own starting hypothesis. Direction matters much less than the attention it receives.
"This needs a trending market." Yes. The second half of 2021 was negative for every configuration including the original. The method needs volatility, not direction.
"The parameters are in-sample." They are the vendor's published defaults, tuned on data that overlaps this period. I tuned nothing. The coin-flip and flipped-direction runs are, by construction, something no vendor optimised for, and they are where the result lives.
"One parameter set, one instrument." Correct. The next post repeats this on H4 and H1 variants of the same engine and on the two layers that carried the table, with their parameters swept on real ticks.
"Bars, not ticks." The 100-seed charts are bars. The tick table is not, and it says the same thing more sharply.
Downloads: repeat the experiment
The engine used in every test above is available as a free, backtest-only build for cTrader, MetaTrader 5 and MetaTrader 4, with this article's settings built in. It runs in the strategy tester (backtest and optimisation); on a live or demo chart it refuses to start.
Free, no account needed, one download per terminal (MT5, MT4, cTrader): download Notus from the original article.
To check the main result, run XAUUSD 2021–2026 with the default inputs, tick data if your broker provides it. That is the red line. Daily bars start at 00:00 UTC; on MT4/MT5 enter your broker's UTC offset if its server isn't on UTC. If your curve disagrees with mine, I want to see it in the comments.
The coin-flip and management-off runs used a research build of the same engine with every layer exposed as a switch. That build isn't distributed.





Top comments (0)