Back to Guides
Guide

Three White Soldiers Pattern: Which Wick Is Short?

Three white soldiers candlestick pattern: the rules as each source states them, which wick actually has to be short, and how often each version prints.

Three white soldiers is three white candles in a row, each closing higher than the last, each opening inside or near the body of the candle before it, and each closing near its own high. That last part is where the explanations fall apart. TA-Lib puts the short wick at the top of the candle. TrendSpider puts it at the bottom. Four more pages ask for both ends at once.

Those are three different patterns, not three wordings of one. Counted on our own historical data they select different bars.

What is the three white soldiers pattern?

Three consecutive white candles with progressively higher closes, each opening within or near the real body of the one before it, and each with a very short upper shadow.

That wording is TA-Lib's. It publishes the function as CDL3WHITESOLDIERS and describes it as "A three-candle pattern of consecutive white candles with progressively higher closes, each opening within/near the prior body and each with a very short upper shadow". Its aliases are Three Advancing White Soldiers and Three White Soldiers.

"Within/near" is two different tests, not one. And it says nothing at all about how big the bodies have to be, even though the explainer pages require it: most call the candles long-bodied or "big bodies" outright, and WR Trading's construction list opens with "A solid bullish candle that closes well above its open".

Is three white soldiers bullish or bearish?

Bullish. Every source here says so, and TA-Lib emits +100 when the pattern is found and never a negative value, so the function has no bearish form.

What the sources do not agree on is whether it is a reversal or a continuation. TA-Lib calls it a bullish reversal signal, "most meaningful in a downtrend, which the code does not verify". Several explainers allow both readings: strike.money says traders use it "to identify potential trend reversals or the continuation of an existing uptrend", WR Trading's summary row reads "a reversal to the upside or continuation may follow", and TradingSim says it "signals a reversal from a downtrend or a continuation within an existing uptrend".

Which wick has to be short, the top or the bottom?

TA-Lib says the top. TrendSpider says the bottom. Four pages say both. On real bars those are not the same pattern.

Who asks for what, from each page's own words:

SourceWhich end the short wick is on
ta-lib.org (CDL3WHITESOLDIERS)upper only, "a very short upper shadow"; nothing asked of the lower one
fbs.comupper, with a reason: "Small or no upper shadows tell us buyers kept pushing until the session closed", and "Lower shadows can appear, but they should stay short"
wrtrading.comupper only, consistently: "The absence of long upper wicks suggests little resistance during the push"
trendspider.comlower only: "each candle has a small or no lower wick, emphasizing the strength of buyers"
strike.moneyboth ways on one page: "little to no shadow on the top or bottom" in its formation bullets, and "small or no upper wicks" in later sections
altfins.comboth ways, two lines apart: "small or no upper shadows", then "Minimal Shadows: The candles should exhibit small wicks"
tradingsim.comboth ends, hedged: "Ideally, you don't want long upper or lower wicks"
elearnmarkets.comboth ends, unquantified: candles that "do not have long shadows"
tastyfx.comboth ends: "big bodies and very small (or no) wicks"

A short lower wick and a short upper wick say opposite things about the session. A candle that closes near its high with no upper wick held its gain to the bell. A candle with no lower wick never dipped after it opened, which tells you nothing about the close. Only the upper version supports the usual explanation of the pattern, and FBS is the only page that puts that explanation next to the rule.

How short is "very short"?

A tenth of the recent range. TA-Lib states its thresholds as a range type, an averaging window and a factor, and the one this pattern uses is ShadowVeryShort = HighLow, 10, 0.1. The same page explains the model in its own words: "A candle characteristic is measured against an average of a chosen range over the previous avgPeriod bars, scaled by factor."

So a very short shadow is one no longer than 0.1 times the mean high-to-low range of the previous ten bars. No explainer page puts a number on it anywhere. Two more settings matter here: Near = HighLow, 5, 0.2, which turns "within/near the prior body" into a measurable tolerance, and BodyLong = RealBody, 10, 1.0, the condition the explainers add and TA-Lib's own sentence does not.

How often does each version actually print?

Each published rule, 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, which is eight symbol-and-timeframe cells and 42,252 bars in all. Prices were held in whole ticks so no threshold test turns on rounding.

With the strict reading of "within" the prior body:

Rule, and who states itHits across the eight cells
Three rising white candles opening inside the prior body, no wick rule1,354
plus a very short upper shadow (TA-Lib)39
plus a very short lower shadow (TrendSpider)53
plus a very short shadow at both ends (strike.money, TradingSim, eLearnMarkets, tastyfx)1
plus the upper shadow and long bodies (TA-Lib's rule plus the body-size condition the explainers add)5

With the other half of TA-Lib's own wording, "or near", using its published Near threshold:

RuleHits
no wick rule, opening within or near the prior body4,535
plus very short upper131
plus very short lower192
plus both ends7

The wick rule is the pattern. It removes 1,315 of the 1,354 candidates on the strict reading, and everything else in the definition is comparatively cheap.

TA-Lib's rule and TrendSpider's rule are not the same pattern, and neither one contains the other. On the strict reading they select 39 bars and 53 bars, and since the both-ends count is 1, the two sets overlap on exactly one bar in eight months of two instruments. On the "or near" reading it is 131 and 192, overlapping on 7.

The both-ends form, which four pages publish, fires once. One hit, strict reading, in 472,729 one-minute bars.

And one word in TA-Lib's own sentence is worth more than three times the count: "within" gives 1,354, "within or near" gives 4,535. If you scan for this pattern and your results look nothing like someone else's, that is the first place to look.

Every figure above answers how often a shape appeared, and nothing more than that.

How do you identify three white soldiers on a chart?

Three tests, in this order, with the thresholds named:

  1. Three white candles in a row, each closing above the previous close.
  2. Each of candles two and three opens inside the body of the candle before it, or within 0.2 times the mean high-to-low range of the previous five bars of it, if you are using the looser half of TA-Lib's wording.
  3. Each of the three has an upper shadow no longer than 0.1 times the mean high-to-low range of the previous ten bars.

If you want the version the explainers describe rather than the one the library codes, add a fourth test: each real body is longer than the mean real body of the previous ten bars. On our data that one condition takes the count from 39 to 5.

What is the opposite of three white soldiers?

Three black crows is the usual answer, and in TA-Lib the two are not mirror images. They differ in three ways at once.

Three white soldiersThree black crows
Bars in the patternthreefour: a white candle, then three black ones
Opening rule"within/near" the prior bodystrictly "inside the prior black's real body"
Shadow rulea very short upper shadow on all threenone of any kind

Counted on the same bars, the crows in TA-Lib's four-bar form print 814 times against the soldiers' 39 on the strict reading, twenty times as many, and in the three-bar form the explainers describe they print 1,625 times.

The comparisons published alongside them make it worse. strike.money gives the crows "three consecutive long bearish candles with small or no wicks", a wick rule the crows function does not have at all; add that rule and the three-bar crows drop from 1,625 to 2, fewer than the soldiers. WR Trading's comparison table gives the crows a different opening rule from the soldiers on the same row, "opens near the prior close" against "within the previous body", and never mentions that the two patterns are built from a different number of bars. If a page tells you the two are opposites, check whether it is comparing a pattern that has a wick rule with one that does not.

What happens after three white soldiers?

We do not know, and we did not measure it. Everything above counts how often the shape appears.

Several explainer pages publish an accuracy or success figure for the pattern. They disagree with each other, not one of them names the data set behind it, and the largest is credited on its own page to research we are not in a position to reproduce. None of the figures appears here, and TA-Lib's own notes flag the same problem from the inside about the figure they cite.

The shape is countable. The outcome is not, from anything published about it.

Does it work in a downtrend or an uptrend?

TA-Lib does not check. Its notes say it "Does not verify the prior downtrend the pattern classically assumes for significance", which means a scanner built on it will flag three rising candles in the middle of an uptrend exactly as readily as three at the end of a slide.

If the prior trend is part of your rule, you have to add it yourself. That is also where the vendor implementations differ: thinkorswim's candlestick library exposes a "trend setup" input that counts preceding bars to check the trend exists. TA-Lib has no such input.

How is it different from a marubozu?

A marubozu is one candle, three white soldiers is three, and only one end of each candle is constrained.

TA-Lib has a separate marubozu function, and its threshold set puts very short shadows on both ends of a marubozu plus a long body. The soldiers rule asks for a very short upper shadow only and says nothing about body length. TradingSim is the only page that draws the line at all, and it draws it from the other direction: the candles "can have small wicks but the bodies must dominate the range".

Practically: three candles with clean tops, clean bottoms and long bodies are three marubozu in a row, which is about the rarest thing in our sample. The both-ends shape alone appears once across the eight cells on the strict reading, and a marubozu wants a long body on top of that, so three in a row is rarer still.

There is also a version of these same three candles read as a warning rather than a buy. When the bodies shrink and the upper wicks grow, TA-Lib calls it the advance block and turns the sign over: the rules, the thresholds and the counts for that one are in the advance block pattern.

How do you test three white soldiers yourself?

Counting occurrences is a script's job. Deciding whether you can trade the thing is not, and that is what manual replay is for.

ChartLabs has Three White Soldiers built in, as a switch in the Candlestick Patterns indicator, which you add from the chart's Indicators menu under Standard. It is on when you add it and marks the third candle with 3WS below its low. It is TA-Lib's version: very short upper wicks on all three candles, each candle opening inside or near the body before it, and no trend check. There is no scanner and no price alerts. For a different wick or opening rule, the Pine Script editor will mark it as long as your script spells the pattern out, and "Example: Mark bars by a rule" on the Pine Scripts tab opens a copy to start from. Pine reads each bar's open, high, low and close, so a script can test three rising closes, the opening rule and the wick rule, then mark the third bar with plotshape or a label. There is no Pine backtesting here, so the testing stays manual.

The loop itself:

  1. Pick the version you are testing and write the three rules down before you start, including which wick and which opening test. Pick a different wick and you are testing a different pattern.
  2. Pick one symbol and one timeframe. We carry forex, indices, commodities and crypto, sourced from Dukascopy at tick level where it is available and cleaned to remove anomalies, then 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.
  3. Replay the chart bar by bar rather than scrolling back. You see the third candle form without knowing it is the third candle, which is the only honest way to find out whether you would have called it in real time.
  4. When you think the pattern is finished, mark it and take the practice trade your rules call for. Every trade captures a snapshot of your drawings, indicators and chart state at the moment of entry, so you can come back and see exactly what you were looking at.
  5. Tag each one as you take it, and filter the analytics by tag later, so "upper wick only" and "both ends" can be separated without rebuilding anything. A note on the trade saying which rule you applied and what made you hesitate follows it through to the trades CSV export.

The step-by-step method is the same one in our beginner's guide to backtesting a strategy, and the pair-specific side of it is in the forex backtesting guide.

What to record

Per occurrence, before anything else: the symbol, the timeframe, the date, which version of the rule fired, and whether the prior trend was down, up or flat. The last one is not optional here, because TA-Lib refuses to check it.

Then, per practice trade: entry, stop, target, the outcome in your own risk units, and the one sentence about why you took it. A few hundred of those give you your own answer about how often the shape appears in the market you actually trade, which is a thing you can check.

Then look at the distribution rather than the average. A pattern that prints 39 times in eight months on two instruments is not something to build a week around.

Start testing it

Step through real historical charts bar by bar, take the practice trades by hand, and see for yourself how often this shape shows up in the market you trade. One plan, $20 a month or $200 a year, with a 7-day free trial.

Start your free trial

Related Topics

candlestick-patternsthree-white-soldiersprice-actionmanual-backtestingchart-patterns