Candlestick Reversal Patterns: The Twelve, and What the Detector Never Checks
Candlestick reversal patterns are the shapes traders read as a turn: a rejected extreme, a swallowed body, a session that gives back everything the last one won. Nineteen shapes sit on our cheat sheet, twelve of them carry a reversal claim, and all twelve are detected by code you can go and read.
One thing in that code is worth knowing before anything else. Not a single kernel in the file tests the trend it is supposedly reversing. The engine flags geometry; supplying the "reversal" half is entirely your job, and the rest of this page is about what that costs.
What a candlestick reversal pattern claims
A reversal claim has two halves, and only one of them is mechanical.
The first half is shape — a specific arrangement of bodies and shadows, expressible as three or six comparisons over four numbers per bar. Our detectors settle that half completely, and they settle it identically for every trader who runs them.
The second half is location. A rejected low means something at the end of a long decline and almost nothing in the middle of a range, because there is no advance left to unwind. Nothing in patterns.rs measures location. The deepest any kernel reaches is four bars back, and the longest memory in the file is a ten-bar average body size, which records how large bodies have been rather than which way they went.
So a "reversal pattern" is really a shape that has historically been interesting at a turn. Feed it a chart with no turn and it fires just as happily.
The twelve reversal patterns our engine detects
| Pattern | The rule Vike checks | |
|---|---|---|
| HammerBullish, after a downtrend | body ≤ 30% of range · lower shadow ≥ 2× body · upper ≤ bodybatch_hammer | |
| Hanging ManBearish, after an uptrend | identical geometry to the hammer — the crate differs only in signbatch_hanging_man | |
| Inverted HammerBullish, after a downtrend | body ≤ 30% of range · upper shadow ≥ 2× body · lower ≤ bodybatch_inverted_hammer | |
| Shooting StarBearish, after an uptrend | identical geometry to the inverted hammer — only the sign differsbatch_shooting_star | |
| Dragonfly DojiBullish, after a decline | doji body · lower shadow ≥ 50% of range · upper ≤ 10% of rangebatch_dragonfly_doji | |
| Gravestone DojiBearish, after a rally | doji body · upper shadow ≥ 50% of range · lower ≤ 10% of rangebatch_gravestone_doji | |
| Bullish EngulfingBullish, after a decline | red bar, then a green one closing ≥ its open and opening ≤ its closebatch_engulfing | |
| Bearish EngulfingBearish, after a rally | the same function, sign flipped — green bar, then a red one covering itbatch_engulfing | |
| Morning StarBullish — and all but extinct on daily crypto | long red bar · a star whose whole range sits below that close · long green bar closing past the first body’s midpointbatch_morning_star | |
| Evening StarBearish, after a rally | the mirror, rewritten rather than sign-flipped — it reads the low where the morning star reads the highbatch_evening_star | |
| PiercingBullish, after a decline | red bar · green bar opening below its low · closing past the body midpoint, short of the open. The strict gap makes it near-extinct on daily cryptobatch_piercing | |
| Dark Cloud CoverBearish, after a rally | the mirror, rewritten rather than sign-flipped — it reads the high where the piercing reads the low: gap above the wick, close into the bodybatch_dark_cloud_cover |
Below is the reversal side of our cheat sheet, filtered from the same rows that build the full cheat sheet and both category pages. A row lands here when its signal names a direction and a preceding move; nothing was retyped to make the table.
Read the signal column rather than the name. Eleven of the twelve spell out the move they need in front of them — five a decline, six a rally — and each of those preconditions is something you verify, never something the engine verified for you.
Six rows are three shapes wearing two hats. Hammer and hanging man are one geometry; inverted hammer and shooting star are another; the bullish and bearish engulfing pair is a third, and that one is not even two functions.
What reversal means to the detector: nothing
Here is the proof, and it is short enough to check yourself.
batch_hammer reads one bar and asks three questions: is the body at most 30% of the range, is the lower shadow at least twice the body, is the upper shadow no bigger than the body. batch_hanging_man asks the same three questions in the same order with the same constants. Strip comments and whitespace from both and the two functions differ in exactly one character — the minus sign in front of the number they write out.
Two real detections sit above, and their readouts are the tell. Body 23.8% of range against 25.3%; lower shadow 2.59 times the body against 2.26; upper shadow 0.62 against 0.69. Both bars are the same shape by every clause either kernel checks. One is filed as a bullish hammer, the other as a bearish hanging man, and the only thing that separates them is the tape in front of them.
Our scanner confirms it mechanically: it hashes each kernel's normalised body and reports which ones collapse together. batch_hammer and batch_hanging_man match once the sign is folded out, as do batch_inverted_hammer and batch_shooting_star. When I first ran that comparison I assumed a bug in the hashing, then went and read both functions line by line.
Multi-bar reversals, and the gap problem
Two- and three-bar reversals ask for a handover rather than a rejection: one side was in charge, then the other took over.
BTC above is a bearish engulfing — a green body covered end to end by the next red one, over five times its size. batch_engulfing reads only four prices to decide that, no shadows at all, and it emits both signs from one loop.
Three-bar reversals are stricter and much rarer on crypto. Both stars want the middle bar's whole range to clear the first body, which is a gap, and a market that trades every second of the year opens each bar on the prior close. Across our 479,749-bar daily scan batch_evening_star found zero instances, which is why the evening star and morning star pages both run on four-hour candles and say so on the page.
Reversal versus continuation
Not every multi-bar pattern claims a turn. Two of ours claim the opposite, and five claim neither.
Three white soldiers and three black crows are continuation signals: three same-coloured bodies in a strict staircase, each opening inside the last, saying the move in progress is being pressed rather than unwound. XRP above is one of those — 32.8% covered across three sessions, then another 49.1% over the next five.
Five more sit outside the split altogether. A doji, a spinning top or a long-legged doji is indecision; an inside day is compression; a marubozu is momentum in whichever colour the bar happens to be. Each takes its direction from what prints next.
Worth stressing: the crate has no field for any of this. Reversal, continuation and indecision are labels our cheat sheet carries, derived from what each rule requires — the engine ships a sign and nothing more. Grouping the same 63 kernels by the properties the source does record is the job of the candlestick types page.
Where a reversal read fails
Rules fire, confirmation never arrives, and price goes the other way. That is not an edge case; it is the ordinary outcome often enough that any page hiding it is selling something.
BNB above is a genuine shooting star: body 22.9% of range, upper shadow 3.06 times the body, lower shadow well under it. Every clause batch_shooting_star checks passed. The next session never closed below the pattern low, no short was ever triggered, and price rose 6.7% instead.
Three habits keep that from being expensive, and none of them come from the detector.
Insist on the move being reversed. A rejected high at the top of a three-week advance is a hypothesis. Print the identical bar mid-range and you own one random candle.
Let the next bar close beyond the pattern. Confirmation is the only part of this that money has voted on. I skip anything that never confirms, which removes most of the junk before it can cost anything.
Anchor the stop at the rejected extreme. Price closing back through the far end of that shadow says the story was wrong, and the level is usually close enough to keep risk small. Stacking a second reading such as RSI leaving an extreme adds an independent measurement rather than a louder version of the same one.
Frequently asked questions
What are the most reliable candlestick reversal patterns? None are reliable enough to trade on their own signal. The strictest rules — the star pair, the two three-bar staircases — are hardest to satisfy by accident, and they are also so rare on continuous markets that scarcity, not accuracy, is what you are buying.
How many candlestick reversal patterns are there? Textbook lists run to thirty or more. Our engine implements 63 candlestick kernels overall, of which twelve reversal shapes have a full page here with real detections and documented failures.
What is the difference between a reversal and a continuation pattern? A reversal claims the prevailing move is ending; a continuation claims it is being pressed. Both are claims about context, and no detector in the file evaluates context — that division lives in our cheat sheet, not in the code.
Do reversal patterns need volume confirmation? No rule on this page reads volume; every one is price-only. Volume can strengthen a discretionary read, though it is fair to know the engine's evidence never used it.
Which reversal pattern should a beginner learn first? The hammer and hanging man pair, because learning them teaches the real lesson in one go: identical geometry, opposite labels, and context doing all the work. Start on the bullish and bearish category pages from there.
This is educational material, not financial advice. Reversal patterns describe probabilities, not certainties, and every real trade carries real risk — size positions so a wrong read costs little.