Arrows that disappear: repainting hidden in the chart history
9 min read · Published 27 Oct 2026
The indicator draws an arrow, and the chart history looks like a textbook: the arrows sit just before the move. We measured what a trader actually gets by entering at the moment the arrow appears. The same set of signals scored on the saved history gave a PF of 1.33; on real ticks it gave a PF of 0.54, or −0.30 R per trade. The difference comes from arrows that live for about a minute and then vanish from the history.
R is a result in units of risk (−1 R = a loss equal to the distance to the stop). PF (profit factor) is total gains divided by total losses; below 1.00 the strategy is losing money.
Hypothesis
We tested a paid arrow indicator running on a brick (renko-style) chart. On such a chart every candle covers the same price range, regardless of time. The bricks are meant to filter out noise, and the arrow is meant to mark the entry point once the direction is confirmed. Stated at its best, the hypothesis is this: an arrow visible on a closed brick gives a positive directional edge on bitcoin (BTCUSD), measured in R, after real costs and with an exit fixed in advance.
We declared the direction before the start: we expect a positive result. A negative result closes the topic. We do not “flip the signal” after the fact.
Arrow indicators are sometimes described as “non-repainting”. We do not accept that claim without measuring it, no matter who makes it.
How we tested it
What exactly we measured. We measured only the arrow as an entry signal. We did not test the whole paid package with its other modules and settings, because a set of many modules — one of which, after the fact, always “fits” — cannot be fairly refuted.
No backtest. The brick history only existed from the moment the chart generator was started, and the rule that draws the arrow could not be read, because the indicator file is encrypted. That left a forward test. A program recorded the signals live, and we scored them offline, without placing any orders.
Exit fixed in advance, in two variants written down before the first signal: - A: stop and target at the same distance, 0.63 of a brick’s height (settings from a ready-made configuration we had, converted into bricks); - B: the same stop, with the target twice as far away (1.27 bricks).
A brick was about $32–40, so the stop was about $20–25. The spread alone on bitcoin had a median of about $5. The cost was therefore roughly one fifth to one quarter of the risk per trade.
Repainting test. For about 50 hours, every 15 minutes, we recorded all the arrows on the chart and compared consecutive snapshots. The share of arrows that changed was 0.68%, below the 1% threshold, so the test was passed. We should say honestly that we invalidated the first measurement window after seeing a bad result. During that window the terminal was restarted and the indicator recalculated its history. We made that decision only after seeing the result, and we recorded it openly; the thresholds stayed unchanged. As it later turned out, this test was measuring something other than what we thought.
Measuring tool 1: the terminal’s history file. We scored the first 59 signals on candles from the history file (.hst). Variant A showed a hit rate of 72.9% and an average of +0.21 R, which looked like an edge. The same signals on ticks from a second terminal gave a hit rate of 39–44% and an average of −0.12 to −0.22 R. So we switched the primary measuring tool to ticks. That is exactly the price stream an automated system would see on an execution account.
Measuring tool 2: the moment of appearance. We measured that an arrow becomes visible on average 7.4 minutes after its brick closes. By then, price has already moved about 0.88 of a brick in the signal’s direction. Entering “at the brick’s close” would therefore be look-ahead: using information from the future. In the final version the program scanned the chart about every 2 seconds and recorded the moment each arrow appeared, including those that later disappeared. We counted the entry from the first tick after that moment: buys at the ask, sells at the bid.
Controls. The placebo is random entries with the same distribution of hours and the same exit: 6,464 draws on 1.54 million ticks. On top of that, a permutation in daily blocks, 2,000 draws. We froze the stopping criterion beforehand: an average R below zero with at least 60 signals ends the topic, and the holdout sample stays untouched.
Result
| September 16–22, 2026, scored on ticks | variant A | variant B |
|---|---|---|
| number of entries | 1,293 | 1,293 |
| hit rate | 35.1% | 24.5% |
| average per trade | −0.298 R | −0.261 R |
| PF | 0.54 | 0.65 |
| PF without the 3 best | 0.54 | 0.65 |
| random entries (placebo) | −0.246 R | −0.219 R |
| the same set on the history file | PF 1.33 | PF 1.67 |
We exceeded the 60-signal threshold more than twentyfold. The arrow did worse than a random entry at the same hour, by 0.05 R in variant A and 0.04 R in variant B. The permutation gave p = 1.00 and 0.99: randomly flipping the direction of whole days produced a result at least as good as the signal. Both weeks ended in the red. Removing the three best trades does not change PF, because the loss is spread evenly rather than being the result of a few unlucky events.
Three numbers explain the gap between the history and the ticks: - the median lifetime of a disappearing arrow is 1 minute: half of them vanish in under a minute, and 92% in under 15 minutes; - our repainting test, with snapshots every 15 minutes, saw only 8% of the disappearances, because the rest appeared and vanished between snapshots; - the arrows that disappeared (581) had a PF of 0.27, and those that stayed (712) a PF of 0.86.
Why it doesn’t work
History shows only the survivors. The history file keeps the arrows that survived. The ones that vanished within a minute are mostly those after which price went the other way. So the history keeps the better part of the signals, while a trader who enters the moment an arrow appears gets both parts. On the chart after the fact, the strategy looks great, because the losing signals have evaporated from it.
The arrow is confirmed by future price. The arrow appears once the move is already under way, and disappears when the move fails to develop. Counting from the brick’s close, price was on the arrow’s side after 5 minutes in 77% of cases. Counting from the moment the arrow could actually be seen, only in 55%. Ordinary bricks with no indicator at all, chosen only because price continued after them, gave 75%. To a large extent, the arrow describes what has already happened.
Even knowing which arrows survive is not enough. If you knew in advance which arrows would stay on the chart and traded only those, you would get a PF of 0.86 — still a loss.
Geometry loses to cost. With a stop of 0.63 of a brick, almost every trade is decided by the next brick. It is a bet on the direction of a single candle, minus a spread that eats one fifth to one quarter of the risk. That is why random entries lose too (about −0.25 R), and reversing the arrow would not rescue the result. The problem is not the sign of the signal but the ratio of the move’s range to the cost.
An instrument that cannot see the phenomenon shows a clean result. Our repainting test was carried out properly; its resolution (15 minutes) was simply 15 times coarser than an arrow’s lifetime (1 minute). The “0.68% changed” result was true for what the instrument could see: on closed, confirmed bricks, the arrows’ direction and price did not change. We had no right to conclude from it that the indicator does not repaint.
The lesson for you
An arrow indicator should be judged by what you can see at the moment of decision, not by what is left on the chart in the evening. A screenshot of the history, yours or someone else’s, is not proof, even if the arrows “do not change on closed candles”.
How to check this yourself:
- For a few days, record your screen or log the arrows the moment they appear, with the time and price. In the evening, compare this with the history: how many arrows disappeared, and how entries on them would have turned out.
- Count the entry from the moment the signal was visible, at a price you could really have got, not from the close of the candle the arrow “sits” on.
- Run a placebo: random entries at the same hours, with the same stop, target and cost. If the placebo loses as much as the signal, the problem is cost, not the signal.
- Calculate cost as a percentage of the stop. If it runs into double-digit percentages, the signal would have to be exceptionally accurate just to break even.
- Match the measurement frequency to the phenomenon. Check for repainting every few seconds, not every quarter of an hour.
In your trading journal, record the time you actually saw the signal and the entry price. After a few dozen trades, the “Luck or edge?” calculator will show whether the result stands out from chance. We also describe the result of this strategy on its own, without the measurement thread, in the chapter on arrows on a brick chart.
Educational content, not investment advice. Past results do not guarantee future results. We describe the result of our reconstructed measurement of a single element (the arrow as an entry signal), on our data and with our costs — not an assessment of the product as a whole.