OPEN-SOURCE SCRIPT
Previous Day Levels & Stats - High and Low, Wicks, Gaps

👀OVERVIEW
Previous Day Levels & Stats (PDH/PDL) draws yesterday's open, high, low and close on today's chart and pairs them with a statistics table showing how this symbol has historically behaved at those levels and split both by whether yesterday closed red or green, and by where today opened.
Most previous-day indicators tell you where yesterday's high and low sit. This one also tells you what price has historically done at those levels including:
⚪ How often the previous day level broke
⚪ How often a break held
⚪ How often price traded into yesterday's wick zone and got rejected
⚪ How far a real break typically ran which is then calculated in today's dollars and added to the chart as an option.
Stats tables like this exist already, but this one splits every statistic two ways at once. First by whether yesterday closed red or green, and then by where today opened. A three-way open classification decides which numbers apply to today.

⚡ CONCEPT
Previous Day. The previous day is the most recently completed regular trading session. At the 4:00 pm close, the levels, candle, projection, and table all flip to the day that just finished and these new levels hold through post-market and the next morning's pre-market. This allows you to prepare for the next day ahead of time.
Conditioning on yesterday's color. The data for red days and green days are kept in two separate sets. The table header tells you which condition applies right now ("AFTER A RED DAY" / "AFTER A GREEN DAY"), and you only ever see the set that matters today.

Conditioning on today's open. Each day is classified three ways against yesterday's range: ⚪Opened inside the range
⚪Gapped above the previous day's high
⚪Gapped below the previous day's low
These are all different situations, a PDH break on an inside day and a gap that opened above PDH are not the same event, so they get separate data and are shown in separate rows.

When trading opens on each new day, the table reduces to only show the section that applies for today. The full table returns at the close so you can study both possibilities while preparing for the next day. If you prefer to always see both sections, a setting turns this off and the non-applicable section dims instead.

Inside-day rows. For days that opened inside yesterday's range.

🔴A: Wick rejected: The day opened inside yesterday's range and traded up into yesterday's upper wick, reaching at least the top of yesterday's body. It never touched yesterday's high, and it ultimately closed back below the top of the body (below the wick). If the day so much as touched yesterday's high, it counts in the break rows instead of in wick rejected row. The percentage is out of all days that opened inside yesterday's range after the same color day. This is showing when we open inside the previous day how often price traded both up into the wick and then got rejected. The PDL column is the mirror image using the lower wick and yesterday's low.
🔵B: Broke but failed: The day opened inside yesterday's range and traded up to or above yesterday's high then ultimately closed at or under yesterday's high. This includes closes just under the high, inside the wick, inside the body and through to the other side of the previous day. This is showing when we open inside the previous day how often price traded both up above the previous day and then got rejected. The PDL column is the mirror image using yesterday's low.
🟡C: Broke & held: The day opened inside yesterday's range and traded up to and above yesterday's high then ended up closing the day above it. This does not track anything that happens in between the break and the close, simply the final outcome. The PDL column is the mirror image using the low of yesterday.
🟢D: Typical run past level: On inside opening days where a break beyond PDH or PDL held, the indicator measures how far price historically ran beyond the level. A run measured in dollars from years ago is not comparable to one from last week. So each historical run is first measured against what a normal daily range was at that time, the median value of all those runs is taken, and that value is converted back to dollars using what a normal daily range is now. The result reads like this: when a break like this held, price typically ran about this far past the level. The median average is used instead of mean average so a single giant day cannot distort the number. In addition to the median distance of the run, a second, farther distance is also available: about 1 in 4 of those runs went beyond this level. This does not include days that closed back inside, these are all from days that broke and held. This also is the furthest distance of the day, not how far the final close of the day was.
Each row is a separate outcome from the same set of days. A day lands in at most one of the three rows per column. The rows do not add up to 100 because some inside days never reach some of the levels at all. The only row that is connected is the Typical run past level row which is based on days that broke and closed past the high or low.
Gap-day rows. For days that opened either above PDH or below PDL.

🔴A: Gap Fill: Opened beyond either PDH or PDL and price came back to at least touch the respective PDH or PDL during the day. This is specifically for the high or low of the previous day, not the previous days close. A day can fill the gap to the level and still close back beyond it, so this row overlaps the rows below it.
🔵B: Wick rejected: Opened beyond either PDH or PDL, traded back into only the wick of the previous day (did not trade back into the body of the candle) and then closed back beyond respective high or low. This is showing when we opened above or below previous day, how often we both traded into the respective high or low wick and back out beyond it. If price at any time during the day traded into the body of the previous candle, it no longer counts in this row.
🟡C: Body rejected: Opened beyond either PDH or PDL, traded back into the body of the previous day candle and then closed the day all the way back beyond respective high or low.
🟢D: Closed back inside: Opened beyond either PDH or PDL and by the end of the day closed back inside the previous day range (wick or body).
🟠E: Closed through: Opened beyond PDH or PDL and ultimately closed the day on the opposite side of the previous day candle than where it opened.
🟣F: Gap held: Opened above PDH and closed the day still above PDH, or opened below PDL and closed the day still below PDL, regardless of what happened in between. This row includes days that never pulled back and days that pulled back and recovered. So price could have never even touched the previous days candle, traded clear through to the other side and back again or anything in between, but closed the day on the same side as the open gap.
Wick rejected and Body rejected are subsets of Gap held. Gap held, Closed back inside, Closed through partition all gap days and sum to 100%.
⭐Doji days. If yesterday closed exactly where it opened, it has no color, so no condition applies. The indicator carries the most recent non-doji color forward for the table, and the header reads "AFTER A DOJI DAY*" on a neutral background so you know a substitution happened. Days that follow a doji are not counted into either condition's statistics, they're displayed under the carried color, never counted under it. So the previous day open, high, low and close are based on the actual previous day (the doji), but the stats are filtered through the most recent colored day before it. There are not enough doji days to have a realistic amount of data to work from. So the levels are used but the data is from the color of the bar before the doji day.
💥FEATURES
• The statistics table: conditioned as described above, with preset color themes (including one designed for light charts). Cell color intensity shows decisiveness, not direction. The further a percentage sits from a coin flip (50/50) in either direction, the stronger the cell glows. Sample sizes appear in hover tooltips on every row.
• Previous-day OHLC lines: with span, style, width, and label options.
• Previous-day candle: a large rendering of yesterday's candle beside today's action, with different placement options.
• Projection overlay: yesterday's candle projected across today's session, so you watch today on top of yesterday's shape.
• Typical-run levels: optional lines shown on the chart from inside days only.
❓HOW TO USE
1. Open an intraday chart of a stock before the market opens. The levels and/or projection already show the most recently completed day and the table shows the data based on what color the previous day was for both if today opens inside previous day and if today opens with a gap in either direction.
2. At 9:30 AM ET, the table will classify the day and the section matching today's open highlights. That shows context, what this symbol has historically done from this starting situation in the past.
3. Use the OHLC lines and wick zones as the map, and the table as the stats at each level. Hover any row for its exact definition and sample size.
4. On inside-open days, turn on the typical-run levels if you want the median-run distances drawn on the chart.
The table describes what this symbol has done, not what it will do. Treat every number as context, not a prediction.
❗ LIMITATIONS
• Session logic is built around US stocks (9:30–4:00 ET regular session). The indicator loads on other symbols, but the open classification, the flip at the close, and the projection presets assume US stock sessions; on 24-hour markets without distinct pre/post sessions the close-flip does not engage.
• Statistics are historical frequencies on your symbol's data. They are not predictions, carry no performance implication, and small samples (newer tickers, rare conditions) mean wider uncertainty so check the sample sizes in the tooltips.
• Days following a doji are excluded from both condition samples (see Concepts), so condition totals will be slightly smaller than the symbol's full day count.
• Absence of typical-run lines on a gap open is intentional, the typical run lines are based on a break out of the prior day. In an attempt to keep the indicator simple and user friendly, the lines are only applied for break outs of the range.
• During post-market, the projection covers the just-completed session behind price; the pre-market view is the designed preparation window.
• Different data feeds disagree by cents on some historical days, so counts can differ slightly between feeds.
• This indicator is for educational purposes and is not intended to be used alone for decision making. Make sure that you properly backtest with any data before using it.
📋NOTES
All statistics are computed from the symbol's complete daily history, so the numbers are the same on every chart timeframe and don't depend on how many bars your chart happens to have loaded. Everything is computed on confirmed bars only and states move forward-only so nothing is retroactively relabeled, and what you see live is what remains on the chart in history and in replay.
Previous Day Levels & Stats (PDH/PDL) draws yesterday's open, high, low and close on today's chart and pairs them with a statistics table showing how this symbol has historically behaved at those levels and split both by whether yesterday closed red or green, and by where today opened.
Most previous-day indicators tell you where yesterday's high and low sit. This one also tells you what price has historically done at those levels including:
⚪ How often the previous day level broke
⚪ How often a break held
⚪ How often price traded into yesterday's wick zone and got rejected
⚪ How far a real break typically ran which is then calculated in today's dollars and added to the chart as an option.
Stats tables like this exist already, but this one splits every statistic two ways at once. First by whether yesterday closed red or green, and then by where today opened. A three-way open classification decides which numbers apply to today.
⚡ CONCEPT
Previous Day. The previous day is the most recently completed regular trading session. At the 4:00 pm close, the levels, candle, projection, and table all flip to the day that just finished and these new levels hold through post-market and the next morning's pre-market. This allows you to prepare for the next day ahead of time.
Conditioning on yesterday's color. The data for red days and green days are kept in two separate sets. The table header tells you which condition applies right now ("AFTER A RED DAY" / "AFTER A GREEN DAY"), and you only ever see the set that matters today.
Conditioning on today's open. Each day is classified three ways against yesterday's range: ⚪Opened inside the range
⚪Gapped above the previous day's high
⚪Gapped below the previous day's low
These are all different situations, a PDH break on an inside day and a gap that opened above PDH are not the same event, so they get separate data and are shown in separate rows.
When trading opens on each new day, the table reduces to only show the section that applies for today. The full table returns at the close so you can study both possibilities while preparing for the next day. If you prefer to always see both sections, a setting turns this off and the non-applicable section dims instead.
Inside-day rows. For days that opened inside yesterday's range.
🔴A: Wick rejected: The day opened inside yesterday's range and traded up into yesterday's upper wick, reaching at least the top of yesterday's body. It never touched yesterday's high, and it ultimately closed back below the top of the body (below the wick). If the day so much as touched yesterday's high, it counts in the break rows instead of in wick rejected row. The percentage is out of all days that opened inside yesterday's range after the same color day. This is showing when we open inside the previous day how often price traded both up into the wick and then got rejected. The PDL column is the mirror image using the lower wick and yesterday's low.
🔵B: Broke but failed: The day opened inside yesterday's range and traded up to or above yesterday's high then ultimately closed at or under yesterday's high. This includes closes just under the high, inside the wick, inside the body and through to the other side of the previous day. This is showing when we open inside the previous day how often price traded both up above the previous day and then got rejected. The PDL column is the mirror image using yesterday's low.
🟡C: Broke & held: The day opened inside yesterday's range and traded up to and above yesterday's high then ended up closing the day above it. This does not track anything that happens in between the break and the close, simply the final outcome. The PDL column is the mirror image using the low of yesterday.
🟢D: Typical run past level: On inside opening days where a break beyond PDH or PDL held, the indicator measures how far price historically ran beyond the level. A run measured in dollars from years ago is not comparable to one from last week. So each historical run is first measured against what a normal daily range was at that time, the median value of all those runs is taken, and that value is converted back to dollars using what a normal daily range is now. The result reads like this: when a break like this held, price typically ran about this far past the level. The median average is used instead of mean average so a single giant day cannot distort the number. In addition to the median distance of the run, a second, farther distance is also available: about 1 in 4 of those runs went beyond this level. This does not include days that closed back inside, these are all from days that broke and held. This also is the furthest distance of the day, not how far the final close of the day was.
Each row is a separate outcome from the same set of days. A day lands in at most one of the three rows per column. The rows do not add up to 100 because some inside days never reach some of the levels at all. The only row that is connected is the Typical run past level row which is based on days that broke and closed past the high or low.
Gap-day rows. For days that opened either above PDH or below PDL.
🔴A: Gap Fill: Opened beyond either PDH or PDL and price came back to at least touch the respective PDH or PDL during the day. This is specifically for the high or low of the previous day, not the previous days close. A day can fill the gap to the level and still close back beyond it, so this row overlaps the rows below it.
🔵B: Wick rejected: Opened beyond either PDH or PDL, traded back into only the wick of the previous day (did not trade back into the body of the candle) and then closed back beyond respective high or low. This is showing when we opened above or below previous day, how often we both traded into the respective high or low wick and back out beyond it. If price at any time during the day traded into the body of the previous candle, it no longer counts in this row.
🟡C: Body rejected: Opened beyond either PDH or PDL, traded back into the body of the previous day candle and then closed the day all the way back beyond respective high or low.
🟢D: Closed back inside: Opened beyond either PDH or PDL and by the end of the day closed back inside the previous day range (wick or body).
🟠E: Closed through: Opened beyond PDH or PDL and ultimately closed the day on the opposite side of the previous day candle than where it opened.
🟣F: Gap held: Opened above PDH and closed the day still above PDH, or opened below PDL and closed the day still below PDL, regardless of what happened in between. This row includes days that never pulled back and days that pulled back and recovered. So price could have never even touched the previous days candle, traded clear through to the other side and back again or anything in between, but closed the day on the same side as the open gap.
Wick rejected and Body rejected are subsets of Gap held. Gap held, Closed back inside, Closed through partition all gap days and sum to 100%.
⭐Doji days. If yesterday closed exactly where it opened, it has no color, so no condition applies. The indicator carries the most recent non-doji color forward for the table, and the header reads "AFTER A DOJI DAY*" on a neutral background so you know a substitution happened. Days that follow a doji are not counted into either condition's statistics, they're displayed under the carried color, never counted under it. So the previous day open, high, low and close are based on the actual previous day (the doji), but the stats are filtered through the most recent colored day before it. There are not enough doji days to have a realistic amount of data to work from. So the levels are used but the data is from the color of the bar before the doji day.
💥FEATURES
• The statistics table: conditioned as described above, with preset color themes (including one designed for light charts). Cell color intensity shows decisiveness, not direction. The further a percentage sits from a coin flip (50/50) in either direction, the stronger the cell glows. Sample sizes appear in hover tooltips on every row.
• Previous-day OHLC lines: with span, style, width, and label options.
• Previous-day candle: a large rendering of yesterday's candle beside today's action, with different placement options.
• Projection overlay: yesterday's candle projected across today's session, so you watch today on top of yesterday's shape.
• Typical-run levels: optional lines shown on the chart from inside days only.
❓HOW TO USE
1. Open an intraday chart of a stock before the market opens. The levels and/or projection already show the most recently completed day and the table shows the data based on what color the previous day was for both if today opens inside previous day and if today opens with a gap in either direction.
2. At 9:30 AM ET, the table will classify the day and the section matching today's open highlights. That shows context, what this symbol has historically done from this starting situation in the past.
3. Use the OHLC lines and wick zones as the map, and the table as the stats at each level. Hover any row for its exact definition and sample size.
4. On inside-open days, turn on the typical-run levels if you want the median-run distances drawn on the chart.
The table describes what this symbol has done, not what it will do. Treat every number as context, not a prediction.
❗ LIMITATIONS
• Session logic is built around US stocks (9:30–4:00 ET regular session). The indicator loads on other symbols, but the open classification, the flip at the close, and the projection presets assume US stock sessions; on 24-hour markets without distinct pre/post sessions the close-flip does not engage.
• Statistics are historical frequencies on your symbol's data. They are not predictions, carry no performance implication, and small samples (newer tickers, rare conditions) mean wider uncertainty so check the sample sizes in the tooltips.
• Days following a doji are excluded from both condition samples (see Concepts), so condition totals will be slightly smaller than the symbol's full day count.
• Absence of typical-run lines on a gap open is intentional, the typical run lines are based on a break out of the prior day. In an attempt to keep the indicator simple and user friendly, the lines are only applied for break outs of the range.
• During post-market, the projection covers the just-completed session behind price; the pre-market view is the designed preparation window.
• Different data feeds disagree by cents on some historical days, so counts can differ slightly between feeds.
• This indicator is for educational purposes and is not intended to be used alone for decision making. Make sure that you properly backtest with any data before using it.
📋NOTES
All statistics are computed from the symbol's complete daily history, so the numbers are the same on every chart timeframe and don't depend on how many bars your chart happens to have loaded. Everything is computed on confirmed bars only and states move forward-only so nothing is retroactively relabeled, and what you see live is what remains on the chart in history and in replay.
オープンソーススクリプト
TradingViewの精神に則り、このスクリプトの作者はコードをオープンソースとして公開してくれました。トレーダーが内容を確認・検証できるようにという配慮です。作者に拍手を送りましょう!無料で利用できますが、コードの再公開はハウスルールに従う必要があります。
免責事項
これらの情報および投稿は、TradingViewが提供または承認する金融、投資、取引、またはその他の種類の助言もしくは推奨であることを意図したものではなく、またこれらに該当するものでもありません。詳細は利用規約をご覧ください。
オープンソーススクリプト
TradingViewの精神に則り、このスクリプトの作者はコードをオープンソースとして公開してくれました。トレーダーが内容を確認・検証できるようにという配慮です。作者に拍手を送りましょう!無料で利用できますが、コードの再公開はハウスルールに従う必要があります。
免責事項
これらの情報および投稿は、TradingViewが提供または承認する金融、投資、取引、またはその他の種類の助言もしくは推奨であることを意図したものではなく、またこれらに該当するものでもありません。詳細は利用規約をご覧ください。