Research

Does a sweep + MSS work mechanically? 88 BTC, ETH and SOL trades, 2023–2026

Short answer: no. The mechanical liquidity sweep + MSS + FVG retest model, across the whole sample the detector found, hit target on 25 of 88 trades (28%), totaling −13.27R with a profit factor of 0.79. The pretty +2R examples are real — they come from the 28% of trades that reached target.

What was tested

The model from a Trading OS Academy lesson, in mechanical form with no human judgment. Liquidity is two swing highs (or lows) 6–60 candles apart, no more than half an ATR from each other, with price never trading beyond them in between. A sweep pierces that level by at least 0.1×ATR(14) of the same timeframe (ATR over the 14 candles before the sweep candle) and closes back inside on the same candle. The MSS is a body close beyond the last swing of the leg that came into the sweep, within 12 candles.

Entry is a limit order at the near edge of the FVG between the sweep and the MSS, placed only after the MSS candle closes; the retest has to happen within 12 candles. The stop sits exactly at the sweep extreme, with no buffer. The target is the far edge of the range, with a planned R of at least 1.5. The outcome is whichever price touched first: stop or target.

Data

Binance spot (GET /api/v3/klines), BTC, ETH and SOL against USDT, 15m, 1h and 4h, UTC, from the first sweep on April 2, 2023 to the last exit on September 6, 2026. Each of the 88 trades was machine-checked against the candles: the sweep closed back, the MSS was a close, the limit filled, and which came first — stop or target.

Trades where the order of events can't be read from candles (stop and target in one candle, the entry candle touching the stop, the target inside the entry candle) were dropped. The full trade table is below and in a JSON file you can check.

Result

88 trades, 25 reached target (28%). Total −13.27R, −0.15R per trade on average, profit factor 0.79. Winners paid between 1.53R and 3.59R; at the average winning R the model needs a win rate around 34% just to break even — the actual one is 28%, below that bar.

The worst run was 10 stops in a row, and the deepest fall of the curve from its peak was 24.13R. Longs made +5.48R (13 targets out of 34), shorts −18.75R (12 of 54). At this size that's not proof that “shorts don't work” — it's a reason to test each side separately.

Survivorship bias in one chart

The best 10 trades in a row — from September 25, 2023 to February 23, 2024 — made +9.16R with a profit factor of 4.05: in that window the model looks like it works. Windows like that end up in screenshots and lessons. The same model over the whole sample: −13.27R.

Ten trades aren't statistics. A verdict on a model comes from the whole sample, collected without picking a window, and from several dozen trades at least.

Limitations

The sample is only what the detector catches: equal extremes and a retest within 12 candles. A human trading a setup with the same name selects differently. The stop sits exactly on the sweep extreme with no buffer, and the target is the far edge of the range, with no partial exits or break-even stops; with a nearer target or a stop buffer the result would differ and has to be recomputed the same way.

The data is spot, with no fees, spread or funding — those would make the result worse, not better. 88 trades are enough to say “in this form the model doesn't make money”, but too few to slice by coin and timeframe hunting for a piece that “works”.

Conclusion: a model without filters isn't an edge

Sweep + MSS is a language for describing a chart, not an advantage in itself. An edge, if there is one, lives in a particular trader's filters and execution — and can only be tested on that trader's own complete sample.

In the Trading OS journal, trades are tagged with a setup and stats are sliced by it: win rate, average R and profit factor across the setup's whole sample, not its best screenshots.

Breakdown

By side

GroupTradesTargetsTotal R
short5412−18.75R
long3413+5.48R

By coin

GroupTradesTargetsTotal R
ETH276−7.93R
SOL305−15.84R
BTC3114+10.50R

By timeframe

GroupTradesTargetsTotal R
15m6118−7.31R
1h175−1.39R
4h102−4.56R

Every trade in the sample

#MarketSideSweep (UTC)EntryStopTargetOutcomeR
1ETH 15mshort2023-04-02 06:451818.981824.811809.73target+1.59R
2SOL 15mlong2023-04-24 08:3021.3421.1322.02stop−1.00R
3SOL 1hlong2023-04-25 08:0021.120.7322.02target+2.49R
4BTC 15mlong2023-05-06 06:0029366.8229250.6529820stop−1.00R
5ETH 15mlong2023-05-07 19:001912.881903.381933.33stop−1.00R
6ETH 15mshort2023-06-04 04:151892.891896.141881.6stop−1.00R
7BTC 15mshort2023-06-09 09:4526612.7626685.4326269.91stop−1.00R
8SOL 15mshort2023-06-15 20:0014.714.8614.18stop−1.00R
9BTC 15mshort2023-06-24 12:30307203080030552.01target+2.10R
10BTC 15mlong2023-07-26 11:4529222.5129160.3329320.84target+1.58R
11BTC 15mshort2023-08-14 08:3029430.129495.7629102.45stop−1.00R
12SOL 15mshort2023-09-25 14:0019.5519.6819.34stop−1.00R
13SOL 15mlong2023-10-22 11:3028.4928.0929.17target+1.70R
14SOL 15mlong2023-10-26 00:4532.4431.7333.9stop−1.00R
15ETH 15mlong2023-12-03 06:452162.142152.922177.41stop−1.00R
16BTC 15mlong2023-12-03 19:1539592.5339430.0139841.1target+1.53R
17SOL 15mshort2023-12-11 11:1569.0969.9667.73target+1.56R
18BTC 15mshort2023-12-26 14:1542619.6342827.6842150target+2.26R
19BTC 15mshort2024-01-14 09:4542891.994307942562.56target+1.76R
20ETH 15mshort2024-02-11 08:152530.292539.632514.76target+1.66R
21BTC 4hlong2024-02-23 20:0051437.845052152985target+1.69R
22BTC 1hshort2024-03-17 22:006777568904.464533stop−1.00R
23SOL 15mshort2024-04-14 20:00141.83143.76133.44stop−1.00R
24BTC 1hlong2024-04-16 10:0063613.716160066867.07stop−1.00R
25BTC 15mlong2024-05-11 23:3060926.5760743.5161515stop−1.00R
26ETH 15mshort2024-05-22 17:153747.637983653.15stop−1.00R
27SOL 15mlong2024-05-23 01:00177.33175.62185stop−1.00R
28ETH 15mshort2024-05-30 04:303785.33801.653742.59target+2.61R
29SOL 15mlong2024-06-03 11:00165.07164.51166.85stop−1.00R
30SOL 1hshort2024-06-03 13:00165.31167.21161.32stop−1.00R
31BTC 15mlong2024-06-19 15:4565003.2364756.2865727.54stop−1.00R
32SOL 15mlong2024-06-25 18:00138.09137.01139.9stop−1.00R
33SOL 15mlong2024-06-26 10:15136.72136.03140.41stop−1.00R
34ETH 1hlong2024-06-30 02:003389.83352.663487.7target+2.64R
35SOL 4hshort2024-07-10 04:00139.01146.2127.77stop−1.00R
36BTC 1hlong2024-07-11 03:0057872.895705059470stop−1.00R
37BTC 1hlong2024-07-12 01:0057688.956542.4759650target+1.71R
38BTC 15mlong2024-09-02 00:4557490.235712858788.93target+3.59R
39SOL 1hlong2024-09-06 07:00129.8127.41135.58stop−1.00R
40ETH 15mlong2024-09-19 22:002465.42452.262494.95stop−1.00R
41BTC 15mlong2024-09-20 01:0062959.616260663850target+2.52R
42SOL 15mshort2024-10-06 03:15143.07143.68141.06stop−1.00R
43ETH 15mshort2024-10-08 21:452441.762466.662401.18stop−1.00R
44SOL 15mlong2024-10-28 17:00174.87172.45178.59target+1.54R
45SOL 15mshort2024-12-06 20:15238.82240.73230.92stop−1.00R
46BTC 15mshort2025-01-02 20:1597251.2797839.596325.44target+1.57R
47BTC 1hlong2025-01-12 09:0094173.4893711.1995050.94target+1.90R
48ETH 15mshort2025-02-04 14:302792.042846.32663.21stop−1.00R
49ETH 15mshort2025-04-09 10:451468.351496.551385.05stop−1.00R
50BTC 4hshort2025-04-19 12:008478585677.9983275stop−1.00R
51ETH 4hshort2025-04-19 16:001597.611631.811538.07stop−1.00R
52ETH 1hshort2025-04-26 08:001799.281841.161722.9stop−1.00R
53BTC 1hshort2025-05-16 16:00103360.01104550.33101383.07stop−1.00R
54SOL 4hlong2025-05-17 00:00170.56164.01184.88stop−1.00R
55ETH 15mshort2025-06-18 08:002528.112548.422492.07target+1.77R
56SOL 1hshort2025-06-25 13:00145.66147.95140.93stop−1.00R
57ETH 15mlong2025-07-01 00:302490.552477.442522.17stop−1.00R
58BTC 15mshort2025-07-31 03:45118435.73118600117981.02stop−1.00R
59BTC 15mshort2025-08-12 02:30118860119275.46118050.11stop−1.00R
60SOL 15mshort2025-08-16 03:15187.35188.36184.14stop−1.00R
61SOL 15mshort2025-08-19 22:45178.14179.54175.69stop−1.00R
62SOL 4hshort2025-08-25 00:00200.8213.6175.69stop−1.00R
63ETH 15mshort2025-08-27 05:154607.314645.934538.69stop−1.00R
64BTC 1hshort2025-09-07 14:00111063111412109977stop−1.00R
65BTC 15mlong2025-09-07 18:30111053.76110861.2111412target+1.86R
66SOL 15mlong2025-10-27 23:00198.6197.34203.25stop−1.00R
67BTC 15mshort2025-10-28 11:30114394.45114673.68113483.3stop−1.00R
68BTC 4hshort2025-12-03 20:0090498.599415083822.76stop−1.00R
69ETH 15mshort2025-12-07 04:003049.623058.013026.16target+2.80R
70ETH 15mshort2025-12-16 23:452956.52965.732938.08stop−1.00R
71BTC 4hshort2025-12-22 12:0088833.3390588.2384450.01stop−1.00R
72SOL 4hshort2025-12-29 00:00125.41130.16116.88stop−1.00R
73ETH 15mshort2026-01-10 02:153088.073094.613074.4stop−1.00R
74ETH 1hshort2026-01-27 04:002915.72957.042787stop−1.00R
75ETH 1hshort2026-02-07 04:002055.72119.461747.8stop−1.00R
76ETH 15mlong2026-02-22 00:151972.641967.751982.79stop−1.00R
77SOL 15mshort2026-04-02 16:3079.1179.8876.7stop−1.00R
78ETH 15mlong2026-04-11 01:152241.472234.812257.14stop−1.00R
79ETH 15mlong2026-04-16 01:002359.022345.042380.45stop−1.00R
80BTC 15mshort2026-05-05 21:0081474.8581791.4880939.87target+1.69R
81SOL 15mshort2026-05-21 04:0086.8887.2285.53stop−1.00R
82ETH 1hshort2026-07-20 00:001860.231891.711803.05stop−1.00R
83SOL 15mshort2026-07-25 04:1574.0674.3673.44stop−1.00R
84BTC 4hlong2026-08-01 16:0063415.266227565409.56target+1.75R
85SOL 15mshort2026-08-09 08:0076.3376.5875.73stop−1.00R
86ETH 15mshort2026-08-11 04:001878.21882.181870.12stop−1.00R
87SOL 1hshort2026-08-15 21:0075.575.7475.05target+1.88R
88BTC 15mshort2026-09-06 21:1579837.478003479233stop−1.00R

The detector and sample builder are internal Trading OS Academy 2.0 tools; outcomes were checked against Binance candles when the sample was built. The numbers on this page are recomputed from the sample file on every site build.

Frequently asked questions

So SMC and liquidity sweeps don't work?
This backtest says one thing: this specific mechanical version of the model lost money on this sample. It doesn't test discretionary trading with extra filters — only a journal of those trades, taken whole, can test that.
Why not just pick the best timeframe or coin?
Because that's the same window-picking as “the best 10 trades”: split 88 trades into parts and each part is too small, so the “best” one is almost certainly best by chance.
Can I check the data?
Yes. The table of every trade is on this page and the sample file is linked: entry, stop, target, sweep time and outcome of each trade. Candles can be checked against Binance's public API.

Test your setup on your own sample

Tag trades with a setup in the Trading OS journal — setup stats are computed across all its trades, not the best ones.

No sign-up — the journal runs in your browser; an account is only needed for sync.

Open the journal