Every Trade.
Four Coins.
Published.
What this is: a test of the CAP trading rules on the past prices of Bitcoin, Ethereum, Solana and Chainlink, with every fee included. It is historical data, not a live account.
The rules were run on 10,899 trades from January 2018 to September 2026, counting only the two best setup grades, S and A. On every coin, most of those trades finished in profit after all costs: from 74.2% on Solana (n=2,026) to 80.1% on Bitcoin (n=3,031). The average trade finished at about three times the amount risked. Every one of those trades is listed in a file you can download and check against Binance’s own price history, minute by minute.
High win rate, low trade count: only top-graded setups, with the trend, taken a handful of times a year.
What These
Numbers
Are.
Most trading sites show a win rate and leave you to guess where it came from. Here is what every number on this page means, in plain words, before you see a single table.
A backtest: the CAP rules were applied to real past prices from Binance, one minute at a time, as if each trade were being taken back then. Every fee, the cost of holding a position overnight and a little extra slippage are taken off every trade.
They are not account statements, not Charles’s personal trades and not a third-party-audited live record. A backtest shows what the rules did on past prices. It cannot promise what they will do next.
Results are measured in R, the amount risked on the trade. Risk $100 and a result of +3R is a $300 gain; −1R is the $100 loss. Measuring in R lets a $100 account and a $100,000 account read the same table.
A trade is a win only if it finished above zero after every cost. A trade that ended exactly at break-even is counted as a loss. Win rates on this page are simply wins divided by trades.
Every setup gets a grade, from S (best) through A, B, C and D down to F, depending on how many independent signals line up and how early it is in the move. Only S and A are counted here, because only S and A are traded.
Charles decides the direction (up or down) by reading the bigger move. A computer can’t read his mind, so his calls were modelled from his own measured past calls, including how late he usually is and how often he sits out, and the test was run ten times. Every figure combines all ten.
Four Coins.
Side By Side.
The same rules on all four coins, with one thing scaled: each coin’s percentages were stretched by how much more it moves than Bitcoin, measured once (Ethereum 1.35×, Chainlink 1.74×, Solana 1.98×). Nothing was tuned coin by coin to make the numbers look better.
Taking one position at a time, the deepest losing stretch averaged 2.8R across the ten versions and reached 3.8R in the worst one, with a longest run of 4 losses in a row. The best grade alone, S, won 84.0% on n=1,056. What is Bitcoin?
Taking one position at a time, the deepest losing stretch averaged 3.9R across the ten versions and reached 7.4R in the worst one, with a longest run of 8 losses in a row. The best grade alone, S, won 82.2% on n=1,145. What is Ethereum?
Taking one position at a time, the deepest losing stretch averaged 4.3R across the ten versions and reached 8.8R in the worst one, with a longest run of 9 losses in a row. The best grade alone, S, won 71.8% on n=799. What is Solana?
Taking one position at a time, the deepest losing stretch averaged 3.5R across the ten versions and reached 6.1R in the worst one, with a longest run of 5 losses in a row. The best grade alone, S, won 80.9% on n=1,041. What is Chainlink?
| Coin | Period | Trades | Won | Average | Median | One at a time, won | Deepest losing stretch* |
|---|---|---|---|---|---|---|---|
| Bitcoin | Jan 2018 – Sep 2026 | 3,031 | 80.1% | +3.28R | +1.59R | 78.3% of 863 | 3.8R |
| Ethereum | Jan 2018 – Sep 2026 | 2,981 | 79.9% | +3.16R | +1.68R | 75.2% of 926 | 7.4R |
| Solana | Aug 2020 – Sep 2026 | 2,026 | 74.2% | +3.14R | +1.33R | 76.9% of 594 | 8.8R |
| Chainlink | Jan 2019 – Sep 2026 | 2,861 | 78.6% | +2.91R | +1.51R | 76.8% of 889 | 6.1R |
*One position at a time, worst of the ten versions. “Trades” counts all ten versions together, so each version on its own took about a tenth of them. The median is the middle trade: half did better, half did worse. The average is pulled up by a few very large winners, so the median is the more honest picture of a typical trade.
Fewer Trades,
By Design.
These numbers come from far fewer trades than most traders are used to, and that is the point. Charles is a semi-retired trader. He spends most of his time on the sidelines and only comes out of his cave when a setup earns it: a high-grade trade where many layers of confluence line up, almost always in the direction of the bigger trend. On each coin that has meant roughly ten S or A grade trades a year, one position at a time (10 to 12, depending on the coin). Long quiet stretches are part of the method, not a gap in it. If you want constant action, this isn’t that. If you want fewer, better decisions, it is.
Coin By Coin
Every Year
Pick a coin. Each one shows its year-by-year record, the worst single versions, what a typical trade looked like, and the file with every trade in it.
Bitcoin — BTCUSDT · 80.1% won on n=3,031
01 · Year By Year▾
| Year | Trades | Win rate | Average result |
|---|---|---|---|
| 2018 | 607 | 69.7% | +2.27R |
| 2019 | 311 | 84.2% | +3.49R |
| 2020 | 302 | 85.4% | +5.71R |
| 2021 | 963 | 79.9% | +2.33R |
| 2022 | 400 | 82.8% | +3.54R |
| 2023 | 22 | 90.9% | +11.76R |
| 2024 | 167 | 91.0% | +4.44R |
| 2025 | 196 | 83.2% | +3.40R |
| 2026 (to Sep) | 63 | 81.0% | +6.72R |
S + A grades, held to the end of the move, all ten versions combined. The weakest year was 2018 at 69.7% on 607 trades; every year cleared the 55% floor the rules had to meet.
02 · The Weak Spots, Volunteered▾
The yearly figures combine all ten versions, which smooths out the bad ones. These are the single versions that fell below 55% in a year, worst first:
- 2018, version 4: won 34 of 68 (50%)
- 2023, version 3: won 1 of 2 (50%)
- 2025, version 2: won 8 of 16 (50%)
Each version on its own won between 75.9% and 86.2% across the whole test.
03 · A Typical Trade, And Which Way It Worked▾
Taking one position at a time, the typical Bitcoin trade had its stop 4.2% from the entry and lasted 4.7 days. Wide stops and long holds are why the position size has to be small: risk is set by the distance to the stop, not by leverage.
Shorts won 86.8% of the time (n=1,245) and longs 75.5% (n=1,786). The rules trade with the bigger move in either direction.
04 · Every Bitcoin Trade, Downloadable▾
cap-backtest-btc-trades-v1.csv: 3,031 trades, 328 KB. SHA-256 32e130482b92103821c0a831cb933a71f55f14c787fb7d55d379bdfe53138217. How to read and check it is explained in The Trade Ledger below. New to the coin? Read What is Bitcoin?
Ethereum — ETHUSDT · 79.9% won on n=2,981
01 · Year By Year▾
| Year | Trades | Win rate | Average result |
|---|---|---|---|
| 2018 | 750 | 84.1% | +2.53R |
| 2019 | 370 | 75.7% | +3.03R |
| 2020 | 309 | 78.3% | +2.60R |
| 2021 | 705 | 73.2% | +2.96R |
| 2022 | 346 | 81.5% | +3.63R |
| 2023 | 21 | 100.0% | +7.48R |
| 2024 | 167 | 83.2% | +4.22R |
| 2025 | 260 | 87.7% | +3.58R |
| 2026 (to Sep) | 53 | 79.2% | +8.59R |
S + A grades, held to the end of the move, all ten versions combined. The weakest year was 2021 at 73.2% on 705 trades; every year cleared the 55% floor the rules had to meet.
02 · The Weak Spots, Volunteered▾
The yearly figures combine all ten versions, which smooths out the bad ones. These are the single versions that fell below 55% in a year, worst first:
- 2026, version 2: won 4 of 10 (40%)
- 2020, version 4: won 12 of 23 (52%)
- 2019, version 4: won 17 of 32 (53%)
- 2020, version 6: won 15 of 28 (54%)
Each version on its own won between 67.5% and 85.3% across the whole test.
03 · A Typical Trade, And Which Way It Worked▾
Taking one position at a time, the typical Ethereum trade had its stop 4.8% from the entry and lasted 4.7 days. Wide stops and long holds are why the position size has to be small: risk is set by the distance to the stop, not by leverage.
Shorts won 85.5% of the time (n=1,268) and longs 75.7% (n=1,713). The rules trade with the bigger move in either direction.
04 · Every Ethereum Trade, Downloadable▾
cap-backtest-eth-trades-v1.csv: 2,981 trades, 316 KB. SHA-256 c4e16d04b44e08b531c54a689235fca237ce552c5a453daa0e29a1868badf156. How to read and check it is explained in The Trade Ledger below. New to the coin? Read What is Ethereum?
Solana — SOLUSDT · 74.2% won on n=2,026
01 · Year By Year▾
| Year | Trades | Win rate | Average result |
|---|---|---|---|
| 2020 | 351 | 72.1% | +1.66R |
| 2021 | 625 | 65.8% | +2.06R |
| 2022 | 399 | 84.7% | +3.51R |
| 2023 | 191 | 93.7% | +10.32R |
| 2024 | 260 | 58.1% | +1.89R |
| 2025 | 168 | 83.3% | +2.54R |
| 2026 (to Sep) | 32 | 100.0% | +5.95R |
S + A grades, held to the end of the move, all ten versions combined. The weakest year was 2024 at 58.1% on 260 trades; every year cleared the 55% floor the rules had to meet.
02 · The Weak Spots, Volunteered▾
The yearly figures combine all ten versions, which smooths out the bad ones. These are the single versions that fell below 55% in a year, worst first:
- 2024, version 5: won 13 of 31 (42%)
- 2024, version 3: won 13 of 29 (45%)
- 2024, version 8: won 13 of 29 (45%)
- 2024, version 9: won 16 of 32 (50%)
- 2024, version 2: won 17 of 33 (52%)
- 2024, version 4: won 14 of 27 (52%)
- 2021, version 5: won 39 of 74 (53%)
- 2025, version 7: won 7 of 13 (54%)
Each version on its own won between 66.7% and 80.8% across the whole test.
03 · A Typical Trade, And Which Way It Worked▾
Taking one position at a time, the typical Solana trade had its stop 7.8% from the entry and lasted 5.4 days. Wide stops and long holds are why the position size has to be small: risk is set by the distance to the stop, not by leverage.
Shorts won 83.5% of the time (n=933) and longs 66.3% (n=1,093). The rules trade with the bigger move in either direction.
04 · Every Solana Trade, Downloadable▾
cap-backtest-sol-trades-v1.csv: 2,026 trades, 211 KB. SHA-256 5c2fd8c680a21ba9c4f54ac6d2f7f95b5a80196797ea9ecf6adbcc9d2f1c7dec. How to read and check it is explained in The Trade Ledger below. New to the coin? Read What is Solana?
Chainlink — LINKUSDT · 78.6% won on n=2,861
01 · Year By Year▾
| Year | Trades | Win rate | Average result |
|---|---|---|---|
| 2019 | 450 | 79.3% | +2.97R |
| 2020 | 523 | 86.0% | +3.09R |
| 2021 | 775 | 70.6% | +2.68R |
| 2022 | 374 | 71.9% | +2.11R |
| 2023 | 92 | 85.9% | +4.74R |
| 2024 | 279 | 89.2% | +3.22R |
| 2025 | 323 | 83.0% | +2.93R |
| 2026 (to Sep) | 45 | 64.4% | +4.98R |
S + A grades, held to the end of the move, all ten versions combined. The weakest year was 2026 at 64.4% on 45 trades; every year cleared the 55% floor the rules had to meet.
02 · The Weak Spots, Volunteered▾
The yearly figures combine all ten versions, which smooths out the bad ones. These are the single versions that fell below 55% in a year, worst first:
- 2026, version 1: won 0 of 3 (0%)
- 2022, version 9: won 15 of 44 (34%)
- 2026, version 2: won 4 of 9 (44%)
- 2026, version 8: won 2 of 4 (50%)
- 2019, version 8: won 15 of 28 (54%)
- 2022, version 6: won 20 of 37 (54%)
- 2025, version 4: won 12 of 22 (54.5%)
Each version on its own won between 74.1% and 86.7% across the whole test.
03 · A Typical Trade, And Which Way It Worked▾
Taking one position at a time, the typical Chainlink trade had its stop 6.4% from the entry and lasted 5.4 days. Wide stops and long holds are why the position size has to be small: risk is set by the distance to the stop, not by leverage.
Shorts won 83.2% of the time (n=1,271) and longs 74.8% (n=1,590). The rules trade with the bigger move in either direction.
04 · Every Chainlink Trade, Downloadable▾
cap-backtest-link-trades-v1.csv: 2,861 trades, 303 KB. SHA-256 57b44d84bd2f6f8ce117450bbdcccb7900869ff2559ea58e31a7a5c31b481995. How to read and check it is explained in The Trade Ledger below. New to the coin? Read What is Chainlink?
How It
Trades
These are the exact rules behind every number above, the same on all four coins. If a word is new, the picture below shows the whole trade.
Direction: The Bigger Move
Up or down is decided by Charles’s read of the bigger wave count, his map of where the larger move is heading. In the test it is modelled from his measured blind calls: he calls a move only after it has turned, 2 to 38 hours late, and sits out about half of them.
Setup: The Pullback
A strong move in the bigger direction (at least 2% on Bitcoin, scaled for each coin) pulls back into the OTE zone on the CAP’s inverted Fibonacci, where 0 is the start of the move: 0.382 to 0.236, with the sweet spot at 0.295. On the way it dips just under an earlier swing, and that dip may wick past 0.236 as long as the 0 holds. That dip is the sweep, and it is required.
Entry: The Close Back
The trade is entered at market on the first 1-minute close back beyond the sweep candle, a change of character or range break. No resting orders.
Stop: Real Structure
The stop sits just beyond the last 4-hour swing: 0.3% past it on Bitcoin, scaled by each coin’s volatility (0.45% Ethereum, 0.52% Chainlink, 0.6% Solana). Tighter stops were tested and failed, see below.
Exit: Hold The Whole Move
The full position is held until the bigger move it belongs to has finished. No profit-taking along the way, no adding, never hedging, and one position at a time.
Grade: S And A Only
Each setup is graded from S to F by how many independent signals line up (wave count, structure, and several kinds of zone confluence) and how early it is in the move. S needs six or more early; A needs five.
Costs: All Of Them
0.10% fee plus 0.02% slippage on the way in and the way out, the real Binance funding paid or received while the trade is open, and an extra 0.03% slippage on any stop. Before a coin’s perpetual funding history begins, funding is charged at the long-run average of 0.01% every 8 hours.
One Setting Per Coin
Bitcoin’s settings are percentages, and a 3% move means far less on Solana than on Bitcoin. So every percentage was multiplied by one volatility factor per coin, measured once on 2020–2026 daily data. That is the only difference between the four tests.
If His Calls
Were Wrong
The direction call does most of the work, so the test was run again with some of those calls deliberately flipped to the wrong side. If the results held up no matter what, the rules would be too good to be true. They don’t, and that is the honest answer.
| Coin | Calls as modelled | 1 in 10 wrong | 1 in 5 wrong | 3 in 10 wrong |
|---|---|---|---|---|
| Bitcoin | 80.1% · +3.28R | 71.0% · +2.71R | 58.5% · +2.02R | 51.6% · +1.54R |
| Ethereum | 79.9% · +3.16R | 69.1% · +2.58R | 59.3% · +1.98R | 50.4% · +1.50R |
| Solana | 74.2% · +3.14R | 66.4% · +2.65R | 56.2% · +2.03R | 48.0% · +1.58R |
| Chainlink | 78.6% · +2.91R | 70.0% · +2.51R | 58.4% · +1.89R | 48.3% · +1.39R |
Win rate and average result, S + A grades, all ten versions combined. With one call in five wrong, every coin still finished above zero on average, but the win rate dropped to between 56% and 59%.
A stop just past the sweep wick on every trade won only 20–35% of the time on Bitcoin, and a mix of tight and wide stops about 55%. Both failed the 55% floor, so the wide structural stop stayed.
Replacing Charles’s direction with a mechanical rule left about +0.02R per trade on Bitcoin, which is no edge at all. The entry alone does not carry these numbers. The read of the bigger move does, with the entry on top of it.
The rules on this page are learnable, but the direction read is a skill. That is why the method is taught one-on-one in the 90-Day Mentorship rather than sold as a signal or a bot.
How It
Was Checked
Every one of the 10,899 trades was replayed a second time by a separate program, straight from Binance’s public 1-minute price files and funding history: the entry price, every minute the trade was open, the stop, the exit and the result. All matched, to within half a thousandth of an R.
That replay found a rounding error in the first run: prices were cut to one decimal place, which is harmless on Bitcoin but distorted Ethereum, Solana and Chainlink. It was fixed and those three coins were re-run before anything was published. Bitcoin’s figures did not change.
It uses 1-minute candles, so it can’t see the order of prices inside one minute; when a stop and the exit could both have been hit, the stop is counted. Real fills can be worse than the slippage allowed for. Charles’s calls are modelled, not recorded live. The rules were chosen and tested on the same prices, January 2018 to September 2026; no years were held back for a separate test, so the figures may look better than the rules would do on prices they have never seen. Assume real results will be worse than any backtest.
The Trade
Ledger
Every number on this page can be rebuilt from these four files. They open in Excel or Google Sheets. Nothing is left out: every S and A trade from all ten versions, winners and losers, with the exact prices. The SHA-256 code under each file is its fingerprint: if a single character in the file changed, the code would too.
cap-backtest-btc-trades-v1.csv
3,031 trades · 328 KB · CSV
SHA-256 32e130482b92103821c0a831cb933a71f55f14c787fb7d55d379bdfe53138217
cap-backtest-eth-trades-v1.csv
2,981 trades · 316 KB · CSV
SHA-256 c4e16d04b44e08b531c54a689235fca237ce552c5a453daa0e29a1868badf156
cap-backtest-sol-trades-v1.csv
2,026 trades · 211 KB · CSV
SHA-256 5c2fd8c680a21ba9c4f54ac6d2f7f95b5a80196797ea9ecf6adbcc9d2f1c7dec
cap-backtest-link-trades-v1.csv
2,861 trades · 303 KB · CSV
SHA-256 57b44d84bd2f6f8ce117450bbdcccb7900869ff2559ea58e31a7a5c31b481995
What Each Column Means
| Column | What it tells you |
|---|---|
| coin, version, grade | Which coin, which of the ten versions (1–10), and the grade, S or A. |
| direction | LONG (betting the price rises) or SHORT (betting it falls). |
| entry_candle_utc, entry_price | The 1-minute Binance candle the trade was entered on, named by its opening minute in UTC, and its closing price. |
| stop_price, stop_distance_pct | Where the stop was, and how far that is from the entry. |
| exit_candle_utc, exit_price, exit_reason | The candle the trade closed on, the price (that candle’s close, or the stop price if the stop was hit), and why: stop, count end, or a 120-day limit. |
| hold_days, funding_rate_sum_pct | How long the trade was open, and the sum of Binance funding rates over that time. |
| result_R, win | The result after every cost, in R, and whether it counts as a win (above zero). |
Check Any Trade Yourself
- Pick any row. Note the coin, the direction, the entry candle and the stop.
- Open that coin on Binance (or download its free 1-minute history from data.binance.vision) and find the entry candle. Its close is the entry price.
- Step forward minute by minute. If the price touched the stop, that is the exit. If not, the trade closes on the exit candle at its closing price.
- Work out the result: the distance from entry to exit, divided by the distance from entry to stop. Then take off the costs below. You should land on the file’s result_R.
The exact cost formula. The entry is moved 0.02% against the trade for slippage. R = (exit − entry) ÷ |entry − stop| for a long (reversed for a short), minus a 0.14% round-trip fee measured in R, plus or minus the funding paid or received (when funding is received, only 75% is counted), minus another 0.03% in R if the trade was stopped. Recomputing every row this way reproduces the file to within 0.0005R.
Questions About
The Results
How to cite this study: The Chart Whisperer (2026). CAP Protocol Backtest: Bitcoin, Ethereum, Solana and Chainlink, January 2018 – September 2026. 10,899 trades, all costs included, trade ledger published. https://chartwhisperer.ca/protocol-results. Backtested results; past performance, including documented win rates, does not guarantee future results.
Ready to learn
the rules behind every trade?
The rules on this page are the ones Charles teaches. The CAPs and their matching journals come only inside the 90-Day Mentorship, where the whole method, including the direction read, is taught live on your own charts three times a week. The Chainlink version is being built now.
BACKTESTED PERFORMANCE · PAST RESULTS DO NOT GUARANTEE FUTURE RETURNS · FULL DISCLOSURE →