Advance Block Candlestick Pattern: Bearish, Not Bullish
Advance block candlestick pattern: three rising green candles read as a warning, the rules each source states, and the two thresholds nobody publishes.
The advance block is three green candles that each close higher than the last but gain less ground each time: the bodies get smaller, the upper wicks get longer, and the rise looks like it is running out of room. The sources read it as bearish, and TA-Lib's function emits only a bearish value, never a bullish one.
It is also the same three rising candles as three white soldiers, read the other way round.
What is the advance block pattern?
Three white candles with consecutively higher closes whose advance is weakening. The weakness shows up as shrinking real bodies, as lengthening upper shadows, or both.
TA-Lib publishes it as CDLADVANCEBLOCK: "Three-candle bearish reversal pattern: three white candles with consecutively higher closes whose advance weakens (progressively smaller bodies and/or lengthening upper shadows). Signals that an uptrend's advance is being blocked".
thinkorswim's candlestick library states it as four conditions, which is the fullest version anyone publishes:
- All three candles are bullish and continue the uptrend.
- Each candle's Open price is within the previous candle's body.
- The second candle's body is smaller than the first, and the third smaller than the second.
- "Both second and third candles have long upper shadows."
Condition 2 is not in TA-Lib's sentence at all. TA-Lib states no opening rule for this pattern, and the counts below separate it out.
Is the advance block bullish or bearish?
Bearish, in every source here. TA-Lib emits -100 on a hit and, in its own words, "never emits +100", so there is no bullish setting to turn on.
People do search for a "bullish advance block", and it does not exist as a named pattern. If that is what you are after, you probably want one of two other things.
The clean version of these same three candles, where the bodies hold their size and the tops stay clean, is three white soldiers: a separate function with the opposite sign, +100 and never negative, and a different set of rules.
Or the bearish mirror, three falling candles. ForexEduLine tells its readers "The opposite of the Advance Block candlestick pattern is the Descent Block candlestick pattern". There is no Descent Block in TA-Lib's own function index, which lists every CDL function it ships, so treat that name as that page's rather than a standard one.
One more thing TA-Lib will not do for you: it "Does not verify the prior uptrend the pattern classically assumes for significance". A scanner built on it will flag three weakening rising candles anywhere, including in a downtrend where the pattern means nothing. thinkorswim's version does check, through a "trend setup" input that counts preceding bars. TA-Lib has no such input.
How is it different from three white soldiers?
Same three rising white candles, opposite conclusion. The clean advance has candles that keep their size and close near their highs with very short upper shadows. The advance block has candles that shrink and leave long upper shadows behind.
TA-Lib turns the sign over between them: CDL3WHITESOLDIERS gives +100 and never a negative, CDLADVANCEBLOCK gives -100 and never a positive. Each names the other in its See Also row, so the library treats them as a pair.
On our data the spoiled version is the commoner one. Counted on identical bars, the advance block in the form four sources publish fires 64 times and three white soldiers in TA-Lib's form fires 39. Three rising green candles in our sample were more likely to be the bearish shape than the bullish one.
We counted shapes, not what happened afterwards. It says something about how often each name applies and nothing about which way price went next.
Do the bodies have to shrink and the wicks grow, or either?
TA-Lib says "and/or". Every explainer says "and". That one word is the largest disagreement anywhere in this pattern, and it is worth more than either threshold people do argue about.
| Who | How the two weakening tests are joined |
|---|---|
| ta-lib.org (CDLADVANCEBLOCK) | "progressively smaller bodies and/or lengthening upper shadows" |
| thinkorswim | and: two separate conditions, both required, the fourth reading "Both second and third candles have long upper shadows" |
| hdfcsky.com | and, and it calls the wick decisive: candle two "Crucially, it leaves a long upper shadow", candle three "It also has a very long upper shadow" |
| cryptohopper.com | and: "three candles have progressively shorter bodies, while the wick of the candle becomes progressively longer with every candle" |
| forexeduline.com | and, described candle by candle: smaller bodies with upper wicks that "stretch higher" |
Counted on our own cleaned data, EURUSD (246,778 one-minute bars) and a euro-quoted German index (225,951 one-minute bars), 1 January to 31 August 2026, aggregated to the 15-minute, 1-hour, 4-hour and daily timeframes, eight symbol-and-timeframe cells and 42,252 bars in all, prices held in whole ticks:
| Rule | Hits across the eight cells |
|---|---|
| Bodies shrink and both upper shadows are long (thinkorswim, hdfcsky, cryptohopper, forexeduline) | 64 |
| Bodies shrink or the upper shadows lengthen (TA-Lib's "and/or") | 304 |
| For scale: three white soldiers, TA-Lib's form, same bars | 39 |
The join is worth 4.75 times the count.
Both instruments show the same effect on their own, so it is not an artefact of one market: EURUSD on the 15-minute chart gives 28 against 153, and the German index on the same timeframe gives 12 against 79.
The opening rule nobody attributes to TA-Lib
Because TA-Lib states no opening condition, those counts are stricter than its own words. The 64 and the 304 both carry thinkorswim's "Open price is within the previous candle's body", which is the sensible frame for comparing the sources, but it is not in the library's sentence.
Drop it, take TA-Lib literally, and the counts roughly triple: 213 on the "and" reading and 1,127 on the "and/or" reading. A scanner that implements TA-Lib's sentence word for word and a scanner that implements thinkorswim's four conditions are not approximately the same thing. The opening rule and the join multiply together, so end to end the strictest reading and the loosest are more than seventeen times apart.
How much smaller does each body have to be?
Nobody says. thinkorswim is the only source that admits the question exists: it exposes a "body factor" input, described as "The factor by which candles' body heights are multiplied. Each of the last two candles cannot have body height greater than that of the previous candle multiplied by this factor", and gives no default for it.
So we swept it. On the "and" reading:
| body factor | Hits |
|---|---|
| 1.0 (each body strictly no larger than the one before) | 64 |
| 1.1 | 66 |
| 1.2 | 77 |
Moving it across a fifth of its plausible range changes the count by 20 per cent. That is real, and it is small next to the 4.75 the join is worth.
How long is a "long upper shadow"?
TA-Lib publishes a number for it, and it is simpler than you would expect: an upper shadow longer than that candle's own real body.
The library states its thresholds as a range type, an averaging window and a factor. The one here is ShadowLong = RealBody, 0, 1.0, and its Candlestick Settings page explains that the averaging window is "how many prior bars to average", with 0 meaning the current candle alone and no averaging. No window, no average, nothing to tune: the shadow above the body has to be taller than the body.
No explainer page prints that sentence. HDFC Sky calls the long wick crucial twice without saying how long is long. thinkorswim names a "shadow factor" input and leaves it blank.
TA-Lib does not simply fill thinkorswim's blank. thinkorswim's own wording is a different test: "A shadow is considered long if its length exceeds the average body height multiplied by this factor", where the average is taken over its "length" input. TA-Lib measures against the candle's own body; thinkorswim measures against an average of several bodies. Those two tests are not the same shape, and on our bars they are not close. Using thinkorswim's wording with a ten-bar average and a factor of 1.0, the "and" reading gives 14 hits rather than 64, and the "and/or" reading gives 265 rather than 304.
So the fair answer to "how long is a long upper shadow" is that TA-Lib answers it one way, thinkorswim's page asks for something else and lets you set it, and the two readings are more than four times apart on the same data. Decide which one your scanner implements before you compare counts with anybody.
What is the stalled or deliberation pattern, and is it the same thing?
They are two names for one function, and it is a third pattern, not this one.
TA-Lib's See Also row on the advance block page lists CDL3WHITESOLDIERS, CDLDELIBERATION and CDLSTALLEDPATTERN, and the middle entry is plain text while the other two are links. There is no CDLDELIBERATION function: the library's function index does not list one. What it does list is CDLSTALLEDPATTERN, whose aliases are given as "Stalled Pattern, Deliberation Pattern". So the deliberation pattern and the stalled pattern are the same function under two names, and the dangling reference is a navigation artefact rather than a missing feature.
What the stalled pattern asks for is narrower than the advance block. Its summary describes "three white candles with consecutively higher closes where the third loses momentum (a small body riding on the shoulder of the second's long body)". The advance block wants the weakening spread across candles two and three; the stalled pattern wants it concentrated in candle three, sitting on the shoulder of a long second candle. Same family, different test.
Two rules the explainers get wrong
All three candles have to be bullish. That is condition one in every rule set, not a preference, and one page lets candles two and three be red "at times" or "occasionally". If you take your rules from that page you will count a different pattern.
And a candle inside a three-candle shape is not a pattern of its own. One page describes the third candle as "having the shape of an Inverted Hammer", which is a separate named pattern with its own function in the same library. Describing the candle is fine; naming it as a pattern inside a pattern is not.
We are not quoting any reliability figure from these pages. TA-Lib's own note on this function is the reason to be careful: it flags research we are not in a position to reproduce here, and that research reads the pattern the opposite way from its label. If a page tells you what the advance block does next, ask it where the data came from.
How do you test the advance block yourself?
The counts above tell you how often each version of the shape appears. They do not tell you whether you can spot one in real time. That part needs replay.
ChartLabs has Advance Block built in, as one of the switches in the Candlestick Patterns indicator: open the chart's Indicators menu, look under Standard, and add Candlestick Patterns. Advance Block is on when you add it, and it marks the third candle with ADB above its high, the side bearish marks go. It follows TA-Lib's code, which asks for more than the sentence quoted above: candles two and three each have to open inside or near the body before them, and the first candle needs a long body and a short upper shadow. Any one of TA-Lib's four weakening tests is enough, and the thresholds are TA-Lib's defaults, which you cannot change. Like TA-Lib, it does not check the trend before the three candles. If you want the "and" reading or your own body factor, write it as an indicator in the Pine Script editor. "Example: Mark bars by a rule" on the Pine Scripts tab opens a copy you can edit, and Save & Apply puts it on the chart. Pine reads each bar's open, high, low and close, so a script can compare the three bodies, measure each upper shadow against its own body, and mark the third bar with plotshape, plotchar or a label. Running your version next to the built-in is the fastest way to see the gap between the two readings. There is no scanner, no price alerts and no Pine backtesting in ChartLabs, so the marks show you where a rule fires and you judge it yourself on the chart.
Then the manual pass:
- Write your rules down first, all of them: the join, the body factor, which shadow test, and whether you require the opening to sit inside the prior body. Change one of those and you are counting a different pattern.
- Pick one symbol and one timeframe and stay there. Our instruments are forex, indices, commodities and crypto, on data sourced from Dukascopy at tick level where it is available, cleaned to remove anomalies and built into 1-minute candles as the lowest timeframe. Depth runs up to around 22 years on the oldest forex pairs, with other instruments starting later.
- Replay bar by bar instead of scrolling back through finished charts. The whole claim of this pattern is that you can feel an advance losing steam while it is still advancing, and you only find out whether that is true for you if the third candle has not formed yet.
- Mark each one you think you see, including the ones that turn out not to qualify. The near-misses are the useful part: a rising sequence whose bodies shrink without long upper wicks is exactly the case TA-Lib's "or" admits and every explainer's "and" rejects.
- Tag each trade as you take it and filter the analytics by tag afterwards, so the "and" form and the "or" form stay separable. A note on the trade saying which reading fired and how confident you were follows it through to the trades CSV export.
Per occurrence, the columns that pay for themselves are the body ratios of candles two and three against candle one, and each candle's upper shadow as a fraction of its own body. Those let you answer the threshold question for your own market instead of borrowing somebody's blank input. Record the prior trend too, up, down or flat, because neither TA-Lib nor your eye will do it for you, and the pattern's name only makes sense inside an advance.
After a few hundred practice trades, logged with entry, stop, target and outcome in your own risk units, you will know how often this shape shows up where you trade and whether you can call it before the third candle closes. You will not have a success rate, and nothing published about the pattern can honestly give you one. The general method is in our beginner's guide to backtesting a strategy, and if you are weighing this against running a scanner, manual versus automated backtesting covers what each one can and cannot tell you.
Start testing it
Step through real historical charts bar by bar, mark the advances that run out of room, and take the practice trades by hand. One plan, $20 a month or $200 a year, with a 7-day free trial.
Related Topics
Related Guides
Manual vs Automated Backtesting: Which One Should You Use?
Automated backtesting tells you whether a set of rules made money. Manual backtesting tells you whether you can trade them. A practical comparison of what each one tests, what it costs you in time and skill, and which to reach for first.
Backtesting a Trading Strategy: A Beginner's Guide
What backtesting is, why it matters, and how to run one step by step: defining your rules, choosing clean historical data, stepping through the chart trade by trade, logging results, and reading the metrics that tell you whether your strategy has a real edge.
Forex Backtesting: Test Your Strategy on Real Data
A practical guide to backtesting forex strategies: why session dynamics, spread variation, and pair-specific behavior change your results, what clean historical data actually means, and a five-step process for testing a strategy before you risk real capital.