← All articles

Strategy Graveyard, chapter 44 — other people’s signals, channels and ready-made systems

Copy trading: 1,920 signals, 2 candidates and a result without a rule

11 min read · Published 27 Oct 2026

On a platform with signals to copy, we went through 1,920 public signals and, before seeing a single equity curve, mechanically selected those with a long history on gold. Two candidates were left. The first was eliminated by the test for increasing the lot size after a loss. While writing this piece, we found that the test had read the history backwards; after the fix, the candidate still does not meet the condition, but the word “martingale” would be too strong. The second had a real, positive result even after adding our own cost, but no simple rule reproduced its entries: to catch more than 90% of them, a rule would have had to flag more than 20 times as many candles as the criterion allowed.

Abbreviations: PF (profit factor) is total gains divided by total losses; 1.00 means breaking even. Lot is position size. Martingale means increasing the position after a loss so that a single win recovers a series of losses. Coverage tells you what share of the trader’s real entries a rule catches, and precision what share of the rule’s flags hit a real entry. M15 is a fifteen-minute candle, ATR is the average candle range, and VWAP is the day’s average price weighted by volume.

Hypothesis

Copy trading promises a shortcut: instead of building your own strategy, you copy someone who is already making money. We were interested in something other than the copying itself. Since a signal’s trade history is public, perhaps a rule can be read from it and then tested on our own data and at our own cost, without depending on someone else’s account.

We froze the hypothesis before downloading any data. Among public gold signals run on a real account and with a long history, there is one whose entries can be explained by a simple rule (at most three thresholds) based on market features we already have. That rule gives a PF of at least 1.25 on our data in training and does not fail in the holdout sample. We also wrote down in advance what we were not testing. We do not evaluate the trader’s result itself, because the list shows only those who survived, and we do not copy their orders.

How we tested it

Selection before seeing results. We took the first 1,920 entries of the public signal list (40 pages). A signal went through only if it met all the conditions at once:

  • at least 150 weeks of history;
  • at least 300 closed trades and a maximum drawdown below 20%;
  • at least 70% of trades on gold;
  • a real account, not demo;
  • no increase in lot size after a loss: the lot of the trade following a losing one at most 1.5 times the previous one in at least 95% of cases. An equal lot when averaging into a position was allowed; martingale was not.

Test 1: is there anything to reconstruct? On this platform, the full history of closed trades could be downloaded for free after logging in; only the last 24 hours were hidden. The tab with the message about a required subscription concerned the live view of positions. First we ran step zero, the lot-increase test. Then we merged trades opened in the same M15 candle and in the same direction into a single event. To a result that already included the trader’s broker costs, we added our entire spread on top, so cost was counted with a large margin. A signal was eliminated with fewer than 100 events, a PF below 1.25, a PF without the three best events below 1.0, or p above 0.05 in a bootstrap that resampled whole days.

Test 2: can it be written down as a rule? For every M15 candle in the signal’s lifetime, we asked: does the trader enter here? Each candle was described by features we already had: the hour, the day of the week, the distance from yesterday’s high and low and from VWAP (in ATR units), the position of price relative to the previous day’s range, and ATR itself. We looked for a decision tree with a depth of at most 3. Passing required the rule to explain at least 80% of entries and to give at most twice as many flags as the trader had entries. Before that, we checked the clock: at zero offset, 98.5% of the trader’s entry prices fell within the range of our M15 candle, and at the next best offset only 27.6% (we write about clock traps in chapter 2).

Test 3, the rule on our data with a placebo using the same exit and a single shot at 2026, was to start only after Test 2 had passed.

Result

Selection:

step left
first 40 pages of the public list 1,920
at least 150 weeks of history 77
at least 300 trades and drawdown below 20% 11
at least 70% of trades on gold 2
real account 2

The first candidate traded several dozen instruments, with 72% of its trades on gold, and in the part of the history we reviewed, its lot ranged from 0.01 to more than 20 lots. In step zero, only 85.1% of trades following a loss met the lot condition (threshold 95%), so we rejected it without calculating PF. While writing this chapter, however, we noticed that the platform’s export starts with the most recent trade, and our script had not sorted it by time. So the test compared a loss with the lot of the earlier trade, not the later one. We recalculated it after sorting the trades by time. The condition was met by 89.9% of trades following a loss, still below the frozen 95%, so the decision to reject does not change. The picture, however, is different from “martingale”: the typical change in lot after a loss was zero (the median ratio of the next lot to the previous one was 1.00, the same as after a win), and the lot grew more than one and a half times in one case in ten after a loss. In the part we reviewed from September 2026, the lot after a losing streak actually shrank. A pattern like this fits position sizing based on stop distance, or adding to positions, better than doubling up after a loss. Our 1.5 times threshold does not tell these apart, so all we say is that the candidate did not pass the condition we had written down.

The second candidate had about 1,800 trades from several years in the export, exclusively on gold, with a small lot. Most trades were opened by an automated system, and positions usually lasted a few hours. The lot check came out well in both orders: 99.7%.

Test 1 result threshold
events after merging 978 at least 100
PF after our cost 1.88 at least 1.25
PF without the 3 best events 1.78 at least 1.0
p (bootstrap by days, 301 days) 0.0005 below 0.05
profitable events 77.6% —

So the result was real: it did not rest on a single lucky trade or on a handful of particular days.

Test 2. An entry occurred in 980 of 75,037 M15 candles, or 1.31% of them, and the flag limit was 1,960. Trees of varying “greediness” gave:

rule flags entries hit coverage precision
596 150 15.3% 25.2%
1,207 211 21.5% 17.5%
5,484 423 43.2% 7.7%
43,438 920 93.9% 2.1%
50,258 946 96.5% 1.9%
required: at most 1,960 at least 784 at least 80% at least 40%

Within the limit, the best tree caught 21.5% of entries. To catch more than 90%, it had to flag 43,000–50,000 candles, or 22–26 times more than the criterion allowed. In line with the frozen decision table, Test 3 did not start, and the year 2026 on our data stayed untouched.

Why it doesn’t work

The arithmetic of rare events. Imagine 76 candles, in one of which the trader enters. A rule has to find 4 out of 5 such candles and at the same time flag at most two candles per trader entry. From these two conditions it follows that at least 2 out of 5 of its flags must be hits. Picking candles blindly, we hit in 1 case out of 76, or 1.3%. So the rule had to be about 30 times better than random picking. Market features don’t give you that much. In the busiest hour, the trader entered in 4% of candles, three times more often than on average. The tree was able to find a narrow niche where it hit one time in four, but that niche covered 15% of entries. The more entries we wanted to catch, the closer precision fell to the level of random picking. The required precision has to be calculated before the criterion is frozen, and we have written that lesson into our rules. The criterion was not impossible by design, either: we reproduced the rule of the paid indicator from chapter 19 at 100%, because it was built from the same building blocks we use to describe the market.

The rule exists, just not in our language. Since most of the trades were opened by an automated system, some rule exists. Our result says only that it cannot be expressed in contextual features: the session, the hour, the day’s levels, VWAP and ATR. It may use an indicator on a shorter timeframe, market microstructure, the calendar or data from outside price. Reading the export also suggests that some entries were add-ons to positions already open, later closed together. An entry like that depends on what the trader already holds, not just on the market.

Statistics counted per trade lie. Of this signal’s trades, 46% were add-ons in the same candle and in the same direction, so the trade count overstated the number of independent decisions almost twofold. Every measure counted per trade (hit rate, PF, significance) then looks more certain than it should.

A result is not an edge you can take over. The PF of 1.88 belongs to the trader’s decisions and exits. When you copy, you are buying the future of someone else’s automated system, which cannot be checked in advance, and you don’t know how you will tell that it has stopped working. The list we selected from, moreover, shows only the signals that exist today; the ones that blew up are no longer on it. Out of 1,920 entries, 11 met the basic quality conditions.

The lesson for you

A signal’s history can tell you quite a lot, usually more about risk than about the rule.

Before you start copying:

  1. Download the history and check the lot after losses. Sort the trades by time (this is exactly what we missed) and compare the lot after a losing trade with the lot after a winning one. A lot that grows after losses is a warning sign.
  2. Count events, not trades. Merge entries from the same candle and in the same direction; only then calculate the hit rate and PF.
  3. Add your own cost and the copying delay. The signal’s result includes its broker’s costs, not yours.
  4. Decide in advance how you will recognize the end. Since you don’t know the rule, you need a criterion for when to stop copying, for example a maximum drawdown, or a number of trades after which you compare the result with the history.
  5. If you want to reconstruct someone else’s rule, calculate the required precision first. With rare entries, a rule has to be many times better than random picking before it even starts to count.

The “Luck or edge?” calculator will show whether the signal’s result, after merging the add-ons and with your cost, stands out from chance, and what is left without the three best events. In your trading journal, record the original’s price for every copied trade; after a few dozen entries you will see how much the delay costs you.


Educational content, not investment advice. Past results do not guarantee future results. We describe the result of our selection and reconstruction on the public data of a single platform, with our criteria and costs. We do not assess specific signal vendors, or signal copying in general.

Check it on your own trades

Free tools, no sign-up, your data stays in your browser.

← All articles