Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) at a glance
| Kind of rule | Time of day (session and opening range) |
|---|---|
| Buys or sells | It can buy, and it can bet on falling prices. |
| Built on | ATR, VWAP |
| Where it was published | TradingView, by its author, as a Pine Script strategy |
| Tested on | 54 cells: 15 coins, October 2021 to June 2026, no fee |
| Cells that placed a trade | 26 of 54 |
| Middle result before fees | −0.0% |
| Cells above zero | 10 of 26 |
| Middle drawdown before fees | 0.0% |
| Page updated | 2026-11-08 |
Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) backtest results, every cell
Every cell is in the picture, not only the strongest. To the right of the black line is above zero. The orange line, when you see one, is the middle.
How Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) works
Rules in this group usually work like this. It only acts during set hours, such as the London or New York morning. Crypto never closes, so those hours are a choice, not a fact of the market. The question is whether those hours behave the same way on more than one coin. The next paragraph is this particular rule, which can be narrower than the group.
It can buy, and it can bet on falling prices. It acts only when several checks agree at once. It leans on ATR; those names are explained on their own pages, further down. The exact line is in the list below, in the author's names, and you can skip that list. When it enters, it also sets a stop or a target, so a trade can close without a new signal.
The author did not set a size, so each trade uses whatever amount the code assumes. It holds one trade at a time.
The exact condition, from the code
Same rule, translated from the code, in the author's names. You can skip this list if the paragraph above was enough.
- Enters short when order execution ok and session filter pass and not (in eod window) and not (day halted) and not (cushion locked) and trades today is below Max trades per day (3) and no position is open and (raw short candidate and not (side session block short) or raw long candidate and not (side session block long)) and not (Next-bar entry only (on)) and (−1 when raw short candidate and not (side session block short), else 1) ….
- Enters long when order execution ok and session filter pass and not (in eod window) and not (day halted) and not (cushion locked) and trades today is below Max trades per day (3) and no position is open and (raw short candidate and not (side session block short) or raw long candidate and not (side session block long)) and not (Next-bar entry only (on)) and not ((−1 when raw short candidate and not (side session block short), else 1) ….
- Enters short when Next-bar entry only (on) and order execution ok and session filter pass and not (in eod window) and not (day halted) and not (cushion locked) and trades today is below Max trades per day (3) and no position is open and pending direction differs from 0 and the bar index is above pending signal bar and (the bar index − pending signal bar) is at or below Pending entry max bars (1) and pending direction equals −1.
- Enters long when Next-bar entry only (on) and order execution ok and session filter pass and not (in eod window) and not (day halted) and not (cushion locked) and trades today is below Max trades per day (3) and no position is open and pending direction differs from 0 and the bar index is above pending signal bar and (the bar index − pending signal bar) is at or below Pending entry max bars (1) and not (pending direction equals −1).
- Closes the position when (Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Sim/Paper' or Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Live') and Force close on hard risk halt (on) and (account loss hard or peak dd hard) and a position is open.
- Closes the position when (Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Sim/Paper' or Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Live') and EOD flatten (on) and EOD flatten (on) and ((ny hour × 60) + ny minute) is at or above eod flatten minimum and not (the previous EOD flatten (on) and ((ny hour × 60) + ny minute) is at or above eod flatten minimum) and a position is open.
- Closes the position when (Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Sim/Paper' or Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Live') and Per-trade hard $ stop (off) and ((the close − the average entry price) × pointvalue) is at or below −Per-trade hard $ stop $ (750) and a position is open.
- Places a stop at (active stop when (Exit mode (VWAP target + ATR stop + time stop) equals '…' or Exit mode (VWAP target + ATR stop + time stop) equals 'ATR stop only'), else undefined), a target at (active limit when (Exit mode (VWAP target + ATR stop + time stop) equals '…' or Exit mode (VWAP target + … when (Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Sim/Paper' or Execution mode (Live requires webhookMode='live' too) (Sim/Paper) equals 'Live') and a position is open and (Allow same-bar exit (off) or the bar index is above position entry bar) and ((Exit mode (VWAP target + ATR stop + time stop) equals '…' or Exit mode (VWAP target + ATR stop + time stop) equals 'ATR stop only') or (Exit ….
| Buys or sells | It can buy, and it can bet on falling prices. |
|---|---|
| Tools it calculates | ATR, VWAP |
| A second chart speed | No. It uses one chart speed only. |
| Only at certain hours | Yes. It only acts during set hours. |
| Adding to a trade | It holds one trade at a time. |
| How much it trades | The author did not set a size, so each trade uses whatever amount the code assumes. |
| Cost the author assumed | The author assumed a trading cost of 0 per contract. |
Default settings
The test used the defaults in the middle column. Nothing was turned to help a coin.
| Setting | Default | Group |
|---|---|---|
| Enable absorption module | on | |
| Use RTH only | on | |
| RTH session | 0930-1600 | |
| RTH timezone | America/New_York | |
| Execution mode (Live requires webhookMode='live' too) | Sim/Paper | |
| Place strategy orders (must be ON for any alert to fire) | on | |
| Active preset | ES V9 Balanced | |
| Manual volume lookback | 100 | |
| Manual high volume percentile | 95 | |
| Manual ATR length | 60 | |
| Manual max displacement / ATR | 0.3 | |
| Manual near VWAP threshold / ATR | 0.25 | |
| Manual horizon bars | 15 | |
| Allow above-VWAP short fades | on | |
| Allow below-VWAP long fades | on | |
| Direction mode | Both | |
| Exit mode | VWAP target + ATR stop + time stop | |
| Next-bar entry only | on | |
| Allow same-bar exit | off | |
| Pending entry max bars | 1 | |
| Stop ATR multiple beyond signal bar | 1 | |
| Max trades per day | 3 | |
| Use session filter | on | |
| Block 11am NY hour | on |
and 43 more settings, left at the author's defaults.
How the backtest was run
Every strategy was tried the same way, on the settings the author published.
The years are October 2021 to June 2026. The prices are from Bybit, for 13 widely traded coins, mostly on hourly, 4-hour and daily charts, with some faster charts. That was 47,242 tries. The window stored in the files is 2021-09..2026-06.
599 rules produced a finished try. A rule that finished above zero on at least 12 cells, before any fee, was tried again with a fee of 0.12 percent per side. Only buys are counted in that second try. 273 rules got it.
The method, the aggregate results and a downloadable table are on the study page. What the desk does with the results beyond these pages is its own.
Before any fee, it was tried on 54 cells. It placed a trade on 26 of them. 10 of the cells that traded finished above zero (38.5%).
It was not run a second time with a fee. That second pass happens only when at least 12 cells finished above zero before fees. 273 rules got that pass.
| Cells tried | 54 |
|---|---|
| Cells that placed a trade | 26 |
| Finished above zero | 10 (38.5% of the cells that traded) |
| Middle result, before fees | −0.0% |
| Strongest cell, the top of the range | BTC 30-minute: +0.3% |
| Weakest cell, the bottom of the range | BTC hourly: −0.6% |
| Middle drawdown, before fees | 0.0% |
Label: backtest · old prices, zero commission · Oct 2021 – Jun 2026. Hypothetical results; see the risk disclosure.
How to read the result
How to read the number
The median of every cell that traded is the result. No fee has been taken off, so the number is a ceiling. A fee comes off each trade, and this page does not guess that cost, because this rule did not get the second pass where the fee is applied. The weakest and the strongest cells are not a result on their own.
The middle drawdown, on the cells that traded, was 0.0%.
What this does not show
The useful question is whether the same hours work on other coins. Crypto has no closing bell, so the hour is a choice.
Nothing on this page was fit to the cell that finished highest. One coin, one chart speed, or one strong stretch is a single row. It is not the rule. Other years, another exchange, or another fee would be a different measurement.
Questions about Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready)
What is Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready)?
Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) is a session and opening range trading strategy published on TradingView as a Pine Script. In plain terms it is a rule of the kind this site calls time of day. It can buy, and it can bet on falling prices. It is built on ATR, VWAP. This page reads the rules from the code and reports what they did on old crypto prices.
How does Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) work?
It can buy, and it can bet on falling prices. It acts only when several checks agree at once. It leans on ATR; those names are explained on their own pages, further down. The exact line is in the list below, in the author's names, and you can skip that list. When it enters, it also sets a stop or a target, so a trade can close without a new signal.
Is Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) profitable in a backtest?
Before any fee, 10 of 26 cells that traded finished above zero, and the median of those cells was −0.0%. No fee has been taken off, so that number is a ceiling. The rule did not reach the second pass where a fee is charged on every trade.
Where can I find the Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) script?
It is published on TradingView by its author. Search TradingView for the title to find the original script. This page is an independent reading and is not affiliated with the author.
What does backtest mean on this page?
Backtest means the rule was replayed on old prices from Bybit. No real money moved. Every number on this page carries that label, and old prices do not promise anything about new ones.
Words used on this page
- Backtest
- The rule was tried on old prices. No real money moved.
- Cell
- One coin on one chart speed. Bitcoin every 4 hours is one cell. Bitcoin once a day is another.
- Chart speed
- How often a new price bar is drawn. 15m means every 15 minutes, 1h means hourly, 4h means every 4 hours, 1D means once a day.
- Fee, per side
- A cost taken each time the rule trades. Per side means once on the way in and once on the way out.
- Median
- Line the cells up from the biggest loss to the biggest gain. The median is the middle one. Half the cells did better and half did worse.
- Drawdown
- The deepest fall from a high point along the way, as a percent of the account at that high.
- Above zero
- The account finished with more than it started.
The indicators Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready) uses
Each has its own page: what it measures, how it is read, where it misleads.
- ATR (average true range): the volatility number behind most stops
- VWAP: the volume-weighted average price, and why its anchor is the whole question
"Post-Absorption VWAP Reversal Engine V9.1 (Live-Ready)" was published on TradingView by its author, under the author's own license. This page is an independent reading of those rules and of what they did on these old prices. It is not written with the author, and it is not a recommendation. Not every detail survives the translation onto this page, so read the original before you rely on it.