VWAP Mean Reversion (2 Candle Rejection) at a glance
| Kind of rule | Betting on a snap-back (mean reversion) |
|---|---|
| Buys or sells | It can buy, and it can bet on falling prices. |
| Built on | ATR, EMA, VWAP |
| Where it was published | TradingView, by its author, as a Pine Script strategy |
| Tested on | 11 cells: 5 coins on 4 chart speeds (15m, 30m, 1h, 4h), October 2021 to June 2026 |
| Fee in the test | 0.12 percent per side, buys only |
| Middle result after fees, every cell | −0.0% |
| Cells above zero | 3 of 11 |
| Cells that cleared the quality check | 0 of 11 |
| Middle drawdown, every cell | 0.0% |
| Page updated | 2026-11-08 |
VWAP Mean Reversion (2 Candle Rejection) 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 VWAP Mean Reversion (2 Candle Rejection) works
Rules in this group usually work like this. It buys after a fall and sells after a rise, on the idea that price returns toward normal. The wins are usually small and frequent. The loss comes when price does not return and the stretch turns into a trend. 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, EMA, VWAP; 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 long when long reject and the close is above (VWAP − (the 14-period ATR × 2.5)) and (VWAP value − the close) is at or above ((the close − lower stop) × 1.5) and |(the 20-period EMA of the close − 20-period EMA of the close 10 bars ago)| is below (the 14-period ATR × 0.4).
- Enters short when short reject and the close is below (VWAP + (the 14-period ATR × 2.5)) and (the close − VWAP value) is at or above ((upper stop − the close) × 1.5) and |(the 20-period EMA of the close − 20-period EMA of the close 10 bars ago)| is below (the 14-period ATR × 0.4).
- On entry, places a stop at (VWAP − (the 14-period ATR × 4)), a target at VWAP.
- On entry, places a stop at (VWAP + (the 14-period ATR × 4)), a target at VWAP.
| Buys or sells | It can buy, and it can bet on falling prices. |
|---|---|
| Tools it calculates | ATR, EMA, VWAP |
| A second chart speed | No. It uses one chart speed only. |
| Only at certain hours | No. |
| 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 no trading cost. |
Default settings
The test used the defaults in the middle column. Nothing was turned to help a coin.
The author left no settings adjustable. Every number is fixed in the code.
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.
This is the second pass. A fee of 0.12 percent per side is taken on the buy and again on the sell. Only buys are counted. If the rule also bets on falling prices, those trades are not in these numbers.
After fees, 3 of 11 cells finished above zero (27.3%). The median of every cell was −0.0%.
0 of the cells cleared a quality check: at least 50 trades, gains that are not one lucky trade, and a drawdown that is real without taking the whole account.
Finished above zero by chart speed: 15-minute chart, 15m 0 of 2; hourly chart, 1h 1 of 4; 30-minute chart, 30m 1 of 4; 4-hour chart, 4h 0 of 1.
| Cells tried after the fee | 11 |
|---|---|
| Finished above zero | 3 (27.3%) |
| Middle result, the median of every cell | −0.0% |
| Middle drawdown, every cell | 0.0% |
| Cells that cleared the quality check | 0 |
| Middle result, over the cells above zero | +0.0% |
| Extra, Calmar on the rows above zero. Result divided by the deepest fall | 0.00 |
| Extra, Sharpe on the rows above zero. Result divided by how bumpy the path was | 0.08 |
| Middle drawdown, the rows above zero | 0.0% |
| Deepest fall, the rows above zero | 0.0% |
| Middle number of trades, the rows above zero | 39 |
Label: backtest · old prices, buys only, a fee of 0.12 percent per side, every cell · 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 is the result of the rule. The author's settings were not changed to help any coin. The weakest and the strongest cells are not a result on their own.
What the number leaves out
0 of 11 cells cleared a quality check: at least 50 trades, a profit factor that is not one lucky trade, and a drawdown that is real without taking the whole account. Profit factor means the gains divided by the losses. Clearing the check describes this sample. It says nothing about the next set of years.
The count above is also split by chart speed. A speed that finished higher, in these years, is one slice of the same rule. It is not a separate strategy.
What this does not show
The useful question is the stretch that never snapped back. That is where a year of small wins can disappear.
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 VWAP Mean Reversion (2 Candle Rejection)
What is VWAP Mean Reversion (2 Candle Rejection)?
VWAP Mean Reversion (2 Candle Rejection) is a mean reversion trading strategy published on TradingView as a Pine Script. In plain terms it is a rule of the kind this site calls betting on a snap-back. It can buy, and it can bet on falling prices. It is built on ATR, EMA, VWAP. This page reads the rules from the code and reports what they did on old crypto prices.
How does VWAP Mean Reversion (2 Candle Rejection) work?
It can buy, and it can bet on falling prices. It acts only when several checks agree at once. It leans on ATR, EMA, VWAP; 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 VWAP Mean Reversion (2 Candle Rejection) profitable in a backtest?
In this backtest, more cells lost than gained. After a fee of 0.12 percent per side, 3 of 11 cells finished above zero and the median of every cell was −0.0%. A backtest is a replay on old prices, so it describes these coins and these years, not a future result.
What was the drawdown of VWAP Mean Reversion (2 Candle Rejection)?
The median drawdown across every cell was 0.0%, and the deepest fall in any cell was 1.7%. Drawdown is the deepest fall from a high point along the way, as a percent of the account at that high.
Which timeframe suited VWAP Mean Reversion (2 Candle Rejection)?
Counted by cells above zero: 15-minute (15m) 0 of 2; 30-minute (30m) 1 of 4; hourly (1h) 1 of 4; 4-hour (4h) 0 of 1. The hourly chart had the largest share above zero in these years. A chart speed that did better here is one slice of the same rule, not a separate strategy.
Where can I find the VWAP Mean Reversion (2 Candle Rejection) 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 VWAP Mean Reversion (2 Candle Rejection) 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
- Exponential moving average (EMA): what it measures and where it misleads
- VWAP: the volume-weighted average price, and why its anchor is the whole question
"VWAP Mean Reversion (2 Candle Rejection)" 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.