What Changed
Every TFM result on this site so far has placed the stop-loss the same way: take the take-profit target (from a detected support/resistance zone), measure the distance from entry to it, and set the stop at half that distance on the other side. With the reward:risk ratio configured at 2.0, that’s what “half” means - risk = reward ÷ 2, always, by construction. The stop never had any relationship to how much the instrument actually moves.
This page covers two different experiments that both start from replacing that fixed stop with an ATR-based one instead. ATR (Average True Range) measures how much an instrument typically moves per candle - a genuinely different, structural input, rather than a fixed geometric fraction of wherever the take-profit zone happened to land. The stop is placed a configurable multiple of ATR away from entry, independent of the reward distance entirely.
Experiment one (the original version of this post) sweeps that multiplier - 1.0x, 1.5x, 2.0x - keeping the take-profit completely unchanged (still the real support/resistance zone edge, same NEAREST selection as baseline #150). Experiment two takes the best multiplier from that sweep and changes the take-profit as well: instead of riding to the full zone edge, it caps the target at the more modest price that makes the reward:risk ratio come out exactly at the configured minimum. Both experiments are laid out below, with a full results table covering all four runs against baseline #150.
How This Filters Trades
The reward:risk ratio (2.0) still matters in both experiments, but its job changes from how it worked in every prior TFM result. Previously it was the formula the stop was built from, so a trade’s reward:risk always came out at exactly 2.0 - the site’s existing minimum-ratio check could never actually reject anything, because it was checking a number against itself. With an independently-calculated ATR stop, that’s no longer true: reward and risk are now genuinely unrelated numbers, and the ratio between them can land anywhere.
That’s where TFM’s existing risk rule finally does real work for the first time: if the ATR-derived stop makes a trade’s reward:risk ratio fall below 2.0, the trade is rejected outright and never entered - not resized, not flagged, just discarded before it ever reaches execution. This is a hard rule, not a judgement call: a setup that looks good on its take-profit target alone still gets thrown out if the volatility-based stop it implies is too risky for the reward on offer.
A smaller multiplier means a tighter stop, which clears that bar more easily - so the multiplier controls not just how wide the stop is, but how many trades survive to be taken at all.
Experiment One: Sweeping the Multiplier
Three multipliers were tested, all against the same 9,227 entry signals, same 42-stock scope, same 1,286 signals rejected for having no valid take-profit zone at all (identical in every run, since take-profit logic never changes here):
| Multiplier | Rejected: reward:risk too low | Average rejected ratio | Trade plans surviving |
|---|---|---|---|
| 1.0x (#153) | 5,928 | 0.91 | 2,013 |
| 1.5x (#154) | 7,268 | 0.79 | 673 |
| 2.0x (#152) | 7,683 | 0.65 | 258 |
Rejections rise steadily with the multiplier, exactly as expected - a wider stop breaches the 2.0 floor more often. 1.0x came out clearly ahead of 1.5x and 2.0x (see the full table below), so it’s the multiplier experiment two builds on.
Experiment Two: Capping the Target Instead of Riding the Zone
Instead of asking “is the zone’s real take-profit far enough away to clear the reward:risk floor,” this run flips the question: use ATR to size the stop as before, then calculate the ideal take-profit that would sit exactly at the 2.0 ratio - entry plus (ATR-derived risk × 2.0) - and only take the trade if that ideal target is within reach of the real zone. When it is, the trade targets the modest, RR-exact price instead of however far the zone actually extends.
There’s a neat mathematical wrinkle here worth being upfront about: “is the RR-ideal target within reach of the zone” turns out to be exactly the same condition, algebraically, as “does the zone’s own reward:risk ratio already clear 2.0” - the check experiment one already runs. That means this variant accepts and rejects the identical set of trades as the 1.0x run above (2,013 trade plans, 1,760 entered, 5,928 rejected - all matched exactly in the real results). The only thing that changes is what price a winning trade actually exits at.
| 1.0x, zone take-profit (#153) | 1.0x, RR-ideal take-profit (#155) | |
|---|---|---|
| Take profit hit rate | 22.16% | 32.33% |
| Stop loss hit rate | 59.66% | 57.33% |
| Timeout rate | 18.18% | 10.34% |
| Profit factor | 1.26 | 1.22 |
| Average R | 0.1559 | 0.1253 |
| Net result | £15,087.76 | £10,112.00 |
The modest target gets hit far more often - roughly 46 extra wins, and timeouts nearly halve, since a nearby target is much easier to reach inside the 14-day expiry window than a distant one. But each win is worth less: average profit per winning trade dropped from about £191 to about £166. That reduction outweighs the extra hit rate - net result fell by a third. Riding the full structural zone beat capping the target at this multiplier and ratio.
Results
| Category | Metric | RR-derived (#150) | ATR 1.0x, zone TP (#153) | ATR 1.5x, zone TP (#154) | ATR 2.0x, zone TP (#152) | ATR 1.0x, RR-ideal TP (#155) |
|---|---|---|---|---|---|---|
| Trade Activity | Trade plans | 5,189 | 2,013 | 673 | 258 | 2,013 |
| Trades entered | 4,433 (85.43%) | 1,760 (87.43%) | 581 (86.33%) | 223 (86.43%) | 1,760 (87.43%) | |
| Not triggered | 756 (14.57%) | 253 (12.57%) | 92 (13.67%) | 35 (13.57%) | 253 (12.57%) | |
| Execution Outcomes | Take profit | 1,368 (30.86%) | 390 (22.16%) | 70 (12.05%) | 11 (4.93%) | 569 (32.33%) |
| Stop loss | 2,457 (55.43%) | 1,050 (59.66%) | 311 (53.53%) | 89 (39.91%) | 1,009 (57.33%) | |
| Timeout | 608 (13.72%) | 320 (18.18%) | 200 (34.42%) | 123 (55.16%) | 182 (10.34%) | |
| Ambiguous | 0 (0.00%) | 0 (0.00%) | 0 (0.00%) | 0 (0.00%) | 0 (0.00%) | |
| Position Sizes | Total position value | £21,408,105.59 | £8,231,020.90 | £1,848,475.14 | £472,167.66 | £8,231,020.90 |
| Average position value | £4,829.26 | £4,676.72 | £3,181.54 | £2,117.34 | £4,676.72 | |
| Largest position value | £9,386.75 | £9,100.52 | £5,891.80 | £4,407.26 | £9,100.52 | |
| Capital turnover | 4,281.62x | 1,646.20x | 369.70x | 94.43x | 1,646.20x | |
| Profitability Cross-Check | Wins | 1,775 (40.04%) | 653 (37.10%) | 232 (39.93%) | 100 (44.84%) | 699 (39.72%) |
| Losses | 2,658 (59.96%) | 1,107 (62.90%) | 349 (60.07%) | 123 (55.16%) | 1,061 (60.28%) | |
| Breakevens | 0 (0.00%) | 0 (0.00%) | 0 (0.00%) | 0 (0.00%) | 0 (0.00%) | |
| Profit & Loss | Gross profit | £282,382.88 | £124,913.13 | £30,558.94 | £8,865.74 | £115,891.82 |
| Gross loss | £234,570.23 | £99,265.37 | £29,744.44 | £8,811.95 | £95,219.82 | |
| Profit factor | 1.20 | 1.26 | 1.03 | 1.01 | 1.22 | |
| Total commission | £26,598.00 | £10,560.00 | £3,486.00 | £1,338.00 | £10,560.00 | |
| Average R | 0.1157 | 0.1559 | 0.0118 | −0.0043 | 0.1253 | |
| Net result | £21,214.65 | £15,087.76 | −£2,671.50 | −£1,284.21 | £10,112.00 |
Summary
Did any of this beat baseline’s profit? No - not in absolute £ terms. All four ATR variants net less than baseline #150’s £21,214.65. That’s worth stating plainly rather than letting the strong profit-factor numbers imply otherwise.
But on a per-trade basis, ATR sizing at 1.0x is a genuine improvement. Profit factor 1.26 and average R 0.1559 (#153) both beat baseline’s 1.20 and 0.1157 - the signal, on the trades it takes, is better quality than baseline’s. The reason net £ still falls short is almost entirely trade count: 1,760 entered versus baseline’s 4,433, at a similar average position size. That’s the same distinction Average R and Net Result draw elsewhere on this site - Average R answers “was the signal good,” Net Result answers “did this make money,” and they don’t have to move together. Here they point in different directions.
Capping the take-profit made things worse, not better. Experiment two’s extra hit rate (32.33% vs 22.16%) didn’t make up for the smaller size of each win - profit factor, average R and net result all came in lower than just riding the zone. Worth being honest that this is one configuration (1.0x multiplier, 2.0 minimum ratio) - it doesn’t rule out the idea working better at a different multiplier or ratio, just that it didn’t help here.
1.5x and 2.0x both land close to flat, and not in the order you’d guess. More trades survived the risk filter at 1.5x (673) than at 2.0x (258), yet 1.5x’s net result (−£2,671.50) is worse than 2.0x’s (−£1,284.21) - a reminder that “more trades passed the risk check” doesn’t by itself mean “better sample.”
None of this has been through a permutation test yet, unlike TFM’s main baseline - until it has, “1.0x’s profit factor beats baseline” is a statement about which of several backtests produced the bigger number, not yet a statement about genuine signal. If a future scenario here does beat baseline on both quality and total profit, that’s the natural next step before trusting it.
