SMC combo: order block, FVG, sweep and volume spike
12 min read · Published 27 Oct 2026
We assembled four popular elements of Smart Money Concepts into a single mechanical rule and tested it twice, on six instruments and with two different ways of exiting. With a tight target, the signals were slightly better than random entries but too weak to cover costs: PF from 0.73 to 1.13, and none of the 12 combinations survived the correction for multiple testing. With a wide trend-following exit, they did worse than random entries on all six instruments.
Abbreviations: R is a trade’s 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; a PF of 1.00 means breaking even. ATR is the average candle range over the last 14 candles, a measure of current volatility. H1 is the hourly chart.
Hypothesis
Smart Money Concepts (SMC) is a set of ideas that describe the chart from the point of view of the “big players”. According to the popular narrative, institutions leave traces on the chart that can be read. Four elements are combined most often:
- an order block is the last opposite-colored candle before a strong impulse; it is supposed to mark the place where someone big was building a position;
- an FVG (fair value gap) is a gap between candles that price moved through so quickly that it “did not fill” the orders;
- a sweep is price moving beyond an obvious level, such as yesterday’s low, below which other traders’ stops are sitting; it is supposed to be a “liquidity grab” before a move in the opposite direction;
- a volume spike in the impulse is supposed to confirm that someone big took part in the move.
Our version came from the code of our own EA, which at the time scanned charts and fed setups like these to our system (today it works only as a data collector). We called it the “combo”, because it brought four conditions together at once. The buy rule was as follows (sells were the mirror image):
- Within roughly the last 97 H1 candles there is a bullish impulse with a body larger than 1.5 ATR and volume more than 20% above the average of the 20 preceding candles.
- The candle just before the impulse is bearish (the order block), and a gap (the FVG) remains between it and the candle after the impulse.
- Since then, price has not once come back down to the top of the order block.
- At the moment of decision, price is below the Asian session range (hours 0–8 server time) or below yesterday’s low (the sweep).
- Entry is at market on the open of a new candle, at any hour.
We wrote the hypothesis down before the first run: after costs, these signals have a PF of at least 1.25 on at least one instrument. We also honestly wrote down our expectation, which was failure. Every component of this setup had already failed in our tests on its own: support and resistance (chapters 12–14), direction read from price alone, and high volume at reversals.
We have three caveats about the definition, so that nobody credits us with testing more than we did. First, our “sweep” meant only that price was beyond the level. We did not require a return back inside the range. Second, the rule did not wait for price to come back to the order block zone; it entered at market while the untouched zone still lay lower down. If you enter with a limit order inside the zone itself, or wait for confirmation on a lower timeframe, you are trading a different rule. Third, CFDs have no exchange volume, so a “volume spike” meant a spike in the number of price changes at the broker.
How we tested it
It started on a demo account. The system received 17 signals on EUR/USD from this scanner, and a language model rejected almost all of them. Executed mechanically, they would have given a PF of 0.59. Nothing can be settled on 17 signals, so we ran a backtest.
Attempt 1 (September 2026). We copied the rule from the EA code one to one. We ran it on six instruments: bitcoin, EUR/USD, gold, the German index, USD/JPY and the US technology index. The training sample covered 2024–2025, and 2026 was the holdout sample, to be read only if something passed training. The EA code did not specify an exit, so before the start we froze two variants. In variant A the stop was about 0.5 ATR (no less than 0.1% of price) and the target about 1 ATR (no less than 0.2%). In variant B the stop and the target were 1 ATR each. A position lived for at most 48 candles, and the cost was the current spread. We checked the result with a direction permutation, a placebo (random entries at the same hours, with the same exit), a correction for 12 simultaneous tests (6 instruments × 2 exits) and PF without the three best trades. Passing required, among other things, PF ≥ 1.25, significance after the correction and a result better than 95% of placebo draws.
Attempt 2 (October 2026). Under our rules, a topic gets at most two attempts, and the second only with a change of mechanism, not of parameters. There was one justification. In the first attempt the signals mostly did better than random entries, so perhaps the tight target was cutting off every big move. The entry stayed unchanged, and we switched the exit to a trend-following one: a wider stop, no fixed target, profit protection after a large move and a time limit of a few days. Each instrument could have one position open at a time. We ran it on 2018–2023, years that no earlier test of this rule had seen. We excluded 2024–2025 as already used and kept 2026 for a single shot. Costs came from ticks and included the account markup, and swap was added too. We charged swap at today’s rates, which are higher than in those years, so PF had to exceed 1.25 without swap as well. Two more criteria were added: a result better than “always buy” at the same moments, and at least 60% of years in profit.
Before looking at the result, we checked the tool itself. The number of signals in 2024–2025 matched the first attempt exactly, signal for signal, on every instrument. The data truncation test showed 0 differences on 300 random candles per instrument, and a stop without a price gap gave exactly −1.000 R. We froze the script and the pre-registration with a checksum and did a single run.
One weakness of the first attempt only came to light while we were writing the second. The same setup could produce a signal on several consecutive candles, and we counted each of them as a separate trade. That inflates the number of observations and the strength of the statistical tests. In the second attempt, the one-position-at-a-time rule applied. It does not change the conclusion, because the result was negative anyway.
Result
Attempt 1, 2024–2025, tight exits:
| instrument | trades | PF, variant A | PF, variant B |
|---|---|---|---|
| bitcoin | 498 | 1.01 | 1.13 |
| EUR/USD | 760 | 0.83 | 0.81 |
| gold | 537 | 0.96 | 0.94 |
| German index | 501 | 0.73 | 0.73 |
| USD/JPY | 468 | 0.98 | 0.87 |
| US technology index | 906 | 0.74 | 0.78 |
The best cell, bitcoin in variant B, had a PF of 1.13 and p = 0.079 before the correction; after correcting for 12 tests, p = 0.94. No cell met the criteria, so we left 2026 unread. In 8 cells out of 12 the signals did better than the average of random entries, but in only 3 did they beat 95% of draws. So the entry carried a little information — just too little relative to the cost.
Attempt 2, 2018–2023, trend-following exit:
| instrument | trades | PF | PF without swap | total | random entries, average | “always buy” |
|---|---|---|---|---|---|---|
| bitcoin | 420 | 0.68 | 0.69 | −104.0 R | −38.8 R | +276.6 R |
| EUR/USD | 789 | 0.79 | 0.80 | −119.1 R | −43.3 R | −145.6 R |
| gold | 528 | 0.80 | 0.82 | −75.2 R | −15.6 R | −73.5 R |
| German index | 595 | 0.70 | 0.75 | −137.2 R | +5.6 R | −128.8 R |
| USD/JPY | 411 | 0.76 | 0.79 | −74.1 R | −0.2 R | +119.7 R |
| US technology index | 787 | 0.72 | 0.79 | −164.3 R | −43.1 R | −19.4 R |
No instrument came close to the PF 1.25 threshold, even without swap. Between 0 and 3 of the 6 years ended in profit. On all six instruments the signal did worse than the average of random entries. The year 2026 stayed untouched, and we closed the topic for good.
Why it doesn’t work
A sweep starts a move more often than it ends one. Our interpretation of both results is descriptive and was not tested separately. With a target 1 ATR away, the signal was slightly better than chance, so after the “liquidity grab” there is sometimes a short snap-back lasting a few hours. When the exit gives the position a few days, the edge goes to the other side: a market that has broken through yesterday’s low more often keeps going down. This fits chapter 24, where trading against breakouts did not give an edge either.
A tight exit hands the information to costs; a wide one hands it to the market. The snap-back was too small to cover the spread with a stop of 0.5–1 ATR. The wide exit could not profit from it, and instead exposed the position to the further move in the wrong direction. Both exits fixed in advance lost, so the problem lies in the entry.
Four weak elements do not add up to one strong one. Combining conditions reduces the number of signals, but it does not create information that none of the components contains. Support and resistance, direction from price and high volume gave no edge when tested separately, and combining them gave none either.
Tick volume is not an institution’s signature. On CFDs we measure activity at a single broker. That measure usually rises together with volatility, so a “volume spike” in the impulse may largely repeat the “big candle” condition.
Reversing it is tempting, but it is a choice made after the fact. If the signal is worse than chance, why not trade it the other way? A description of the same years, 2018–2023, showed that the reversed setup loses on 5 instruments out of 6 (PF 0.69–0.88). The only exception, bitcoin (+85.9 R, PF 1.38), lost to simply buying at the same moments (+276.6 R). So it was the bitcoin bull market, not the signal. We tested this one cell, chosen after seeing the result, with a single shot on the unseen year 2026. It gave 49 trades, +5.3 R and a PF of 1.15, but a PF of 0.33 without the three best trades, while “always buy” made +12.5 R at the same moments. There is no proof, and we did not deploy the strategy. In chapter 7 we explain why the best cell out of many is overestimated by definition.
The lesson for you
SMC offers a rich vocabulary for describing a chart. Our test does not refute every possible version of the concept, but it shows what you have to do before it can be tested at all: write the rule down so that a computer can repeat it. Only then can you know whether the setup adds anything.
How to check your setup:
- Write every element down in numbers: how big the impulse is, how many candles back, what an “untouched zone” means, exactly when the entry happens. If two people would draw the same order block differently, the rule does not exist yet.
- Compare the result with random entries at the same hours, with the same stop, target and cost. A setup that doesn’t beat chance is just a way of choosing what time to enter.
- Fix two exits before the test, a tight one and a wide one. If both lose, the problem lies in the entry, not in position management.
- Count each setup once. If the same setup gives a signal on several consecutive candles, in the test that is one trade, not several.
- Don’t reverse the signal after the fact. If you are tempted, write the reversal down as a new hypothesis, test it on data you haven’t looked at yet, and compare it with simply holding the instrument.
In your trading journal, record for each trade which elements of the setup were present; after a few dozen entries you will see whether the full “combo” does better than a version with two elements. The “Luck or edge?” calculator will show whether the result stands out from chance and how much of it is left without the three best trades.
Educational content, not investment advice. Past results do not guarantee future results. We describe the result of our reconstruction of a single, strictly defined rule built from SMC concepts, on our data and with our costs — not an assessment of every way of trading this concept.