Pattern Detail
Bullish Side By Side White Lines
Three-candle continuation in an uptrend: an up candle, a gap up to a second up candle, then a matching third up candle beside it.
Shown only on the markets where this pattern occurs.
i
How to read this
Everything here is in R, the setup's own risk. 1R is the distance from the entry (the pattern's closing price) to where it would be proven wrong — its lowest low over the 2 bars that form it. So "offered 2R" means price ran twice that distance in your favor at some point before the stop. It does not assume you took profit there: a target is a strategy choice.
Room offered (≥ 1R)
54.5%
Too few to trust
Offered at least 1× its risk before the stop, vs 41.8% for a random long entry (+12.8 pts).
Move size vs normal
1.29×
Realized range over the next 20 bars vs a random bar. Precedes a bigger move.
Typical room (20-bar)
1.24R
Average run in favor (capped at 3R), vs 1.07R for a random long entry.
Summary
Offered ≥1R 54.5% of the time vs 41.8% for a random long entry. The 12.8-point gap is no bigger than the ±29.1-point margin of error you would get by chance from 11 occurrences. Not a reliable edge.
Room offered, this setup vs a random long entry
Only 11 occurrences. The breakdown below is shown in full, but a sample this small is anecdotal, a hint, not a measured edge. That is usually a limit of available history, not a flaw in the pattern. For a firmer read, try a lower timeframe or a more active instrument.
| Outcome | This setup | Random entry | Edge |
|---|---|---|---|
| Offered ≥ 1R | 54.5% | 41.8% | +12.8 |
| Offered ≥ 2R | 27.3% | 28.1% | -0.8 |
| Offered ≥ 3R | 18.2% | 19.7% | -1.5 |
| Stopped < 1R | 45.5% | 57.0% | -11.5 |
| Went sideways | 0.0% | 1.3% | -1.3 |
11 occurrences · 1,710,005 random-entry controls · 20-bar horizon
i
How to read this
Everything here is in R, the setup's own risk. 1R is the distance from the entry (the pattern's closing price) to where it would be proven wrong — its lowest low over the 2 bars that form it. So "offered 2R" means price ran twice that distance in your favor at some point before the stop. It does not assume you took profit there: a target is a strategy choice.
Room offered (≥ 1R)
0.0%
Too few to trust
Offered at least 1× its risk before the stop, vs 41.8% for a random long entry (-41.8 pts).
Move size vs normal
0.56×
Realized range over the next 20 bars vs a random bar. Precedes a quieter stretch.
Typical room (20-bar)
0.00R
Average run in favor (capped at 3R), vs 1.09R for a random long entry.
Summary
Offered ≥1R 0.0% of the time vs 41.8% for a random long entry. The 41.8-point gap is no bigger than the ±96.7-point margin of error you would get by chance from 1 occurrences. Not a reliable edge.
Room offered, this setup vs a random long entry
Only 1 occurrences. The breakdown below is shown in full, but a sample this small is anecdotal, a hint, not a measured edge. That is usually a limit of available history, not a flaw in the pattern. For a firmer read, try a lower timeframe or a more active instrument.
| Outcome | This setup | Random entry | Edge |
|---|---|---|---|
| Offered ≥ 1R | 0.0% | 41.8% | -41.8 |
| Offered ≥ 2R | 0.0% | 28.0% | -28.0 |
| Offered ≥ 3R | 0.0% | 19.9% | -19.9 |
| Stopped < 1R | 100.0% | 56.4% | +43.6 |
| Went sideways | 0.0% | 1.8% | -1.8 |
1 occurrences · 355,242 random-entry controls · 20-bar horizon
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
i
How to read this
Everything here is in R, the setup's own risk. 1R is the distance from the entry (the pattern's closing price) to where it would be proven wrong — its lowest low over the 2 bars that form it. So "offered 2R" means price ran twice that distance in your favor at some point before the stop. It does not assume you took profit there: a target is a strategy choice.
Room offered (≥ 1R)
26.3%
Too few to trust
Offered at least 1× its risk before the stop, vs 39.4% for a random long entry (-13.1 pts).
Move size vs normal
1.63×
Realized range over the next 20 bars vs a random bar. Precedes a bigger move.
Typical room (20-bar)
0.74R
Average run in favor (capped at 3R), vs 0.97R for a random long entry.
Summary
Offered ≥1R 26.3% of the time vs 39.4% for a random long entry. The 13.1-point gap is no bigger than the ±22.0-point margin of error you would get by chance from 19 occurrences. Not a reliable edge.
Room offered, this setup vs a random long entry
Only 19 occurrences. The breakdown below is shown in full, but a sample this small is anecdotal, a hint, not a measured edge. That is usually a limit of available history, not a flaw in the pattern. For a firmer read, try a lower timeframe or a more active instrument.
| Outcome | This setup | Random entry | Edge |
|---|---|---|---|
| Offered ≥ 1R | 26.3% | 39.4% | -13.1 |
| Offered ≥ 2R | 15.8% | 25.5% | -9.7 |
| Offered ≥ 3R | 15.8% | 17.1% | -1.3 |
| Stopped < 1R | 73.7% | 59.3% | +14.4 |
| Went sideways | 0.0% | 1.3% | -1.3 |
19 occurrences · 1,607,385 random-entry controls · 20-bar horizon
i
How to read this
Everything here is in R, the setup's own risk. 1R is the distance from the entry (the pattern's closing price) to where it would be proven wrong — its lowest low over the 2 bars that form it. So "offered 2R" means price ran twice that distance in your favor at some point before the stop. It does not assume you took profit there: a target is a strategy choice.
Room offered (≥ 1R)
66.7%
Too few to trust
Offered at least 1× its risk before the stop, vs 40.8% for a random long entry (+25.8 pts).
Move size vs normal
1.64×
Realized range over the next 20 bars vs a random bar. Precedes a bigger move.
Typical room (20-bar)
2.00R
Average run in favor (capped at 3R), vs 1.04R for a random long entry.
Summary
Offered ≥1R 66.7% of the time vs 40.8% for a random long entry. The 25.8-point gap is no bigger than the ±55.6-point margin of error you would get by chance from 3 occurrences. Not a reliable edge.
Room offered, this setup vs a random long entry
Only 3 occurrences. The breakdown below is shown in full, but a sample this small is anecdotal, a hint, not a measured edge. That is usually a limit of available history, not a flaw in the pattern. For a firmer read, try a lower timeframe or a more active instrument.
| Outcome | This setup | Random entry | Edge |
|---|---|---|---|
| Offered ≥ 1R | 66.7% | 40.8% | +25.8 |
| Offered ≥ 2R | 66.7% | 26.9% | +39.7 |
| Offered ≥ 3R | 66.7% | 18.7% | +48.0 |
| Stopped < 1R | 33.3% | 57.5% | -24.1 |
| Went sideways | 0.0% | 1.7% | -1.7 |
3 occurrences · 346,986 random-entry controls · 20-bar horizon
i
How to read this
Everything here is in R, the setup's own risk. 1R is the distance from the entry (the pattern's closing price) to where it would be proven wrong — its lowest low over the 2 bars that form it. So "offered 2R" means price ran twice that distance in your favor at some point before the stop. It does not assume you took profit there: a target is a strategy choice.
Room offered (≥ 1R)
50.0%
Too few to trust
Offered at least 1× its risk before the stop, vs 41.9% for a random long entry (+8.1 pts).
Move size vs normal
0.99×
Realized range over the next 20 bars vs a random bar. About normal.
Typical room (20-bar)
1.91R
Average run in favor (capped at 3R), vs 1.09R for a random long entry.
Summary
Offered ≥1R 50.0% of the time vs 41.9% for a random long entry. The 8.1-point gap is no bigger than the ±68.4-point margin of error you would get by chance from 2 occurrences. Not a reliable edge.
Room offered, this setup vs a random long entry
Only 2 occurrences. The breakdown below is shown in full, but a sample this small is anecdotal, a hint, not a measured edge. That is usually a limit of available history, not a flaw in the pattern. For a firmer read, try a lower timeframe or a more active instrument.
| Outcome | This setup | Random entry | Edge |
|---|---|---|---|
| Offered ≥ 1R | 50.0% | 41.9% | +8.1 |
| Offered ≥ 2R | 50.0% | 28.4% | +21.6 |
| Offered ≥ 3R | 50.0% | 20.5% | +29.5 |
| Stopped < 1R | 50.0% | 56.2% | -6.2 |
| Went sideways | 0.0% | 1.9% | -1.9 |
2 occurrences · 118,396 random-entry controls · 20-bar horizon
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
This pattern did not fire often enough on this market and timeframe to measure. Try a lower timeframe or a more active instrument.
Side by side white lines is a continuation pattern that confirms a climb. The market is rising. An up candle leads, then a second up candle gaps above it. The third up candle opens and closes at nearly the same levels as the second, sitting right beside it like a twin. Two matching up candles after a gap show buyers holding their ground above the gap rather than filling it, which keeps the uptrend intact.
How to spot it
- The market is rising into the pattern.
- The first candle is an up (green) candle in line with the climb.
- The second candle gaps up, its whole body above the first candle.
- The third candle is also up (green) and opens and closes at nearly the same levels as the second.
- The second and third candles sit side by side, like a matched pair above the gap.
- The tighter the third candle matches the second, the cleaner the signal.
The dashed box on the chart above marks the three candles on a real occurrence, with the advance before and the move after.
The psychology
The market is already climbing, so buyers own the trend coming into this shape. The first up candle keeps that going. Then price gaps higher, opening above the prior candle entirely, which is buyers paying up in a hurry rather than waiting for a pullback. A gap like that often invites profit taking, and the open space below it is exactly the kind of hole that sellers like to fill.
What happens next is the point. The third candle opens and closes at almost the same levels as the second, sitting right beside it like a twin. Buyers do not push for new highs, but they do not give the gap back either. They simply hold their ground above the open air, absorbing whatever selling shows up and refusing to let price slide into the gap. This is not a change of control. It is the dominant side pausing to catch its breath, defending the new level before pressing on.
Whether that defended pause tends to lead to more upside is what the data below weighs.
Does it actually work?
A pattern is a setup, not a trade, so the honest question is not “did it win” but “how much room did it tend to offer before it was proven wrong.” The tabs below answer that across five futures markets (Nasdaq, S&P 500, gold, crude oil, natural gas) and seven timeframes from one minute to one day.
For each occurrence we measure the room the move offered in units of the pattern’s own risk, then set it against what a random entry on the same market would have done. When the pattern offers more room more often than chance, that shows up as a real edge. When it does not, the page says so plainly.
Read it with the sample size in view. On the faster timeframes a pattern can fire thousands of times, enough to trust. On the daily chart it is far rarer, so treat those numbers as a hint rather than a verdict. Thin samples are flagged for you on the page.
How we measured it
- Entry is the close of the final candle of the pattern.
- One unit of risk, 1R, is the distance from that close down to the pattern’s invalidation point: the lowest low of the two candles that form it. If price trades through there, the setup is wrong.
- We then follow the next 20 bars and record how far price ran in your favor, in multiples of that risk, before the stop was hit.
- Every figure is set against a random entry on the same market and timeframe, so the market’s own drift is accounted for.
- No profit target and no position sizing. Where you take profit is a strategy choice; this measures only the room the pattern tends to give.
What this page does not cover
- Volume on the pattern’s candles.
- Whether the pattern forms at a meaningful support level.
- Pairing it with a trend filter or a confirming signal.
- A profit target or position sizing. We use the pattern’s own invalidation point as the stop to define risk, but where you take profit, and how much you put on, are strategy decisions this page leaves to you.
Sample Bullish Side By Side White Lines Firings (11)
Based on data through Apr 29, 2026
| Time | Risk (pts) | Room offered | Result |
|---|---|---|---|
| Jun 26, 2025, 8:31 AM CDT | 18.5 | 0.00R | Stopped |
| Sep 13, 2021, 8:31 AM CDT | 21 | 0.77R | Stopped |
| Sep 8, 2020, 8:47 AM CDT | 18.75 | 0.00R | Stopped |
| Jun 1, 2018, 8:31 AM CDT | 2.5 | 1.10R | Ran ≥1R |
| Sep 11, 2015, 11:05 AM CDT | 2 | 1.00R | Ran ≥1R |
| Dec 5, 2014, 8:31 AM CST | 4 | 1.56R | Ran ≥1R |
| Jan 20, 2012, 12:26 PM CST | 0.5 | 0.50R | Stopped |
| Sep 6, 2010, 9:57 AM CDT | 0.5 | 3.00R | Ran ≥1R |
| Mar 5, 2009, 8:40 AM CST | 1.25 | 2.00R | Ran ≥1R |
| Jan 6, 2009, 11:37 AM CST | 0.5 | 3.00R | Ran ≥1R |
| Apr 16, 2008, 10:37 AM CDT | 2 | 0.75R | Stopped |
Sample Bullish Side By Side White Lines Firings (1)
Based on data through Apr 29, 2026
| Time | Risk (pts) | Room offered | Result |
|---|---|---|---|
| Sep 12, 2017, 8:35 AM CDT | 7 | 0.00R | Stopped |
Sample Bullish Side By Side White Lines Firings (19)
Based on data through Apr 29, 2026
| Time | Risk (pts) | Room offered | Result |
|---|---|---|---|
| Feb 16, 2026, 8:31 AM CST | 2.75 | 0.64R | Stopped |
| Jan 2, 2025, 8:31 AM CST | 10.25 | 0.15R | Stopped |
| Sep 10, 2024, 8:31 AM CDT | 2 | 1.25R | Ran ≥1R |
| Jan 23, 2019, 8:31 AM CST | 1 | 0.00R | Stopped |
| Apr 20, 2016, 8:31 AM CDT | 1 | 0.25R | Stopped |
| Aug 29, 2014, 8:31 AM CDT | 0.75 | 0.00R | Stopped |
| Jun 21, 2012, 8:31 AM CDT | 1.25 | 0.80R | Stopped |
| Jan 28, 2011, 8:31 AM CST | 0.75 | 0.00R | Stopped |
| Nov 11, 2010, 2:58 PM CST | 0.75 | 0.67R | Stopped |
| Nov 9, 2010, 10:28 AM CST | 0.5 | 0.00R | Stopped |
| Nov 3, 2010, 2:57 PM CDT | 0.75 | 3.00R | Ran ≥1R |
| Jan 28, 2010, 9:35 AM CST | 0.5 | 3.00R | Ran ≥1R |
| Dec 21, 2009, 10:08 AM CST | 0.5 | 0.00R | Stopped |
| May 13, 2009, 8:44 AM CDT | 0.75 | 0.00R | Stopped |
| Apr 13, 2009, 9:02 AM CDT | 0.75 | 3.00R | Ran ≥1R |
| Mar 23, 2009, 9:18 AM CDT | 0.5 | 0.00R | Stopped |
| Mar 9, 2009, 11:14 AM CDT | 1 | 0.00R | Stopped |
| Oct 20, 2008, 11:18 AM CDT | 1 | 0.00R | Stopped |
| Apr 24, 2008, 8:31 AM CDT | 1 | 1.25R | Ran ≥1R |
Sample Bullish Side By Side White Lines Firings (3)
Based on data through Apr 29, 2026
| Time | Risk (pts) | Room offered | Result |
|---|---|---|---|
| Jul 9, 2021, 8:35 AM CDT | 4 | 3.00R | Ran ≥1R |
| Jan 15, 2010, 2:20 PM CST | 0.75 | 0.00R | Stopped |
| Apr 13, 2009, 2:25 PM CDT | 1.25 | 3.00R | Ran ≥1R |
Sample Bullish Side By Side White Lines Firings (2)
Based on data through Apr 29, 2026
| Time | Risk (pts) | Room offered | Result |
|---|---|---|---|
| Jan 17, 2022, 8:45 AM CST | 5.5 | 0.82R | Stopped |
| Jan 15, 2018, 8:45 AM CST | 1.75 | 3.00R | Ran ≥1R |