Article contents
- Evidence and scope
- Illustration
- Process
- Establish the trend before the pullback
- From trend candidate to a confirmed reclaim
- Anchors and activity filters cannot be known backward
- Synthetic reclaim and trend-failure paths
- Entry, exits and the cost of chasing
- Does VWAP improve on an ordinary trend pullback?
- Common pitfalls
- Practical checklist
- Frequently asked questions
- Research sources
Evidence and scope
SMB supplies a CLOV trade review, Alphatrends explains AVWAP and TradingView documents calculation. These establish ideas and definitions, not verified returns for the proposed algorithm.
Practical workflow
- Establish the trendRequire price, VWAP direction and activity conditions.
- Freeze the anchorThe reference and ATR precede the pullback.
- Wait for the first retestEvaluate price location and volume separately.
- Confirm reclaimClose above the retest high and the current VWAP.
- Execute and exitUse a post-signal fill, protection and session exit.
Establish the trend before the pullback
SMB reviews a CLOV pullback toward VWAP after an opening drive [1]. Alphatrends discusses price location and AVWAP direction [2]. The article translates those ideas into observable states rather than claiming to reproduce the practitioner’s complete tape-reading process.
Trade-level VWAP isΣ(price×quantity)/Σquantity from its anchor. With OHLCV, typical price(H+L+C)/3 produces a bar-based approximation [3]. Do not call that approximation the exact average of all transactions. Select and version the trade or bar calculation before comparing results.
Price below VWAP can represent a temporary retracement or the start of a decline. Record the trend candidate while conditions are still strong, then wait for the pullback. VWAP is a reference statistic, not the cost basis of every investor still holding the instrument or a direct measure of their positions.
From trend candidate to a confirmed reclaim
After at least 10 bars from the anchor, a proposed candidate c requires C[c]>VWAP[c], VWAP[c]>VWAP[c−5], C[c]>EMA50[c] and RVOL_cum[c]≥1.2. Here EMA50 continues across regular-session bars from earlier days, while VWAP resets each session. Freeze A=ATR14[c−1], b=max(2 ticks,0.10A) and eps=max(2 ticks,0.15A).
In the next five bars, lock the first retest r with L[r]≤VWAP[r]+eps and C[r]≥VWAP[r]−eps. Mean RVOL for the three bars ending at r must be≤0.8. A close below VWAP−eps before confirmation cancels the candidate. Do not require every pullback bar to remain above VWAP, because that could exclude the reclaim being studied.
During the three bars after r, the first close above H[r]+b and above VWAP[t] emits a signal. Stop below the minimum low from r through the signal, minus b, and buy at a later executable quote. Every length, EMA choice and threshold is proposed. A volume failure rejects that candidate rather than permitting another more attractive r.
Warmup must cover the longest dependency, not only the 10 bars after the anchor. If EMA50, ATR or the same-time RVOL history is unavailable, the candidate is insufficient_data. Carrying an EMA across sessions is a stated choice; resetting it daily would require a different warmup and a new version.
after_candidate_close(c):
if not full_EMA_ATR_RVOL_history: reject_insufficient_data(); return
candidate = freeze(ATR_reference,buffers,anchor_id,session_id,
cutoff=session_end-5_minutes)
if received_close_time(c)>=candidate.cutoff: expire(); return
r = None
for u in c+1..c+5:
if changed_anchor_or_session(candidate,u) or received_close_time(u)>=candidate.cutoff:
expire(); return
if C[u]<VWAP[u]-eps: cancel(); return
if L[u]<=VWAP[u]+eps and C[u]>=VWAP[u]-eps:
r=u; break
if r is None: expire_no_retest(); return
if missing_rvol(r-2,r) or mean(RVOL_bar[r-2:r+1])>0.8:
reject_candidate(); return
for t in r+1..r+3:
if changed_anchor_or_session(candidate,t) or received_close_time(t)>=candidate.cutoff:
expire(); return
if C[t]<VWAP[t]-eps: cancel(); return
if C[t]>H[r]+b and C[t]>VWAP[t]:
stop=min(L[r:t+1])-b
consume_candidate_then_order_on_next_quote_if_before_cutoff()
return
expire_no_confirmation()
# Session-close and anchor-reset events cancel pending candidates immediately.
Anchors and activity filters cannot be known backward
The baseline anchors at the regular-session open. A catalyst anchor requires a known publication time; a past swing anchor can be calculated from the swing but used only after its confirmation. Moving the anchor to the best-looking low after a loss changes both the calculation and the hypothesis.
Proposed RVOL_cum is cumulative session volume divided by the median cumulative volume at the same time over 20 prior sessions. The retest measure uses individual same-slot RVOL values, not whole-day turnover. Missing or zero denominators are unavailable information rather than normal volume.
The SMB review distinguishes a completed 15-minute-volume check from information used after an earlier entry [1]. A 09:38 decision cannot use volume through 09:45. Either wait until 09:45 or define a filter available at 09:38. High activity can also pull VWAP toward price without an especially large price retracement, so record both the price path and the moving reference.
Synthetic reclaim and trend-failure paths
At candidate creation, let C=102, VWAP=100.80 versus 100.40 five bars earlier, EMA50=100.30 and RVOL_cum=1.6. With A=1 and tick=0.01, b=0.10 and eps=0.15. The later retest has VWAP101.00, low 100.95, high 101.25 and close 101.05; mean three-bar RVOL0.65 passes.
Two bars later, close 101.45 exceeds 101.35 and the then-current VWAP101.08. A buy fills 101.50. The minimum low from r through confirmation is 100.90, giving stop 100.80, risk 0.70 and a 2R target 102.90. VWAP must be recomputed from data available at each bar; the illustration does not assume it stays fixed.
After entry, new information can reverse the trend and produce a stop fill at 100.75, losing 0.75. A different retest closing 100.70 below VWAP101.00−0.15 cancels before entry. Do not reset the anchor to that 100.70 low merely to draw a new average below price and preserve the original setup label.
Entry, exits and the cost of chasing
Before submitting after confirmation, evaluate risk and remaining reward at the observed quote. A large gap can exceed the predeclared risk limit. An unsubmitted order may be skipped; an already resting stop-entry must retain any fill before cancellation. Do not interchange these execution policies.
The proposed baseline uses a 2R target, structural trade protection and liquidation before the session close. A 20-bar time stop can be tested separately. An intraday loss must not silently become a swing position; overnight exposure needs a new gap model and budget.
Relative strength versus a benchmark can be another filter: compare returns from the same start time using synchronized data. This is different from RSI. Correlated stocks reclaiming VWAP together should share portfolio constraints rather than each receiving an independent full risk allocation.
A deep wick through VWAP can satisfy the close-based retest geometry but create a wide stop. Preserve it in the candidate table even if an execution rule rejects the trade. Otherwise the apparent effectiveness of the pattern becomes entangled with an undocumented stop-width selection.
The baseline sets its entry cutoff five minutes before the scheduled session close, including shortened sessions. Each candidate retains its session_id and, where VWAP is used, its anchor_id. Reaching the cutoff, changing session, or resetting the anchor terminates the pending event. The post-signal quote must also arrive before the cutoff. A session timer cancels waiting states even if no further bar arrives; their bar counters cannot continue the next morning. This cutoff is an article-defined research choice.
Does VWAP improve on an ordinary trend pullback?
Compare against a swing- or EMA-based pullback with the same price trigger, then add VWAP location, slope, cumulative RVOL and dry-up one at a time. Adding the entire combination at once hides which component helps and which merely reduces the sample.
Group results by time of day, VWAP slope, trend/range context and catalyst known before entry. Report candidate count, retest rate, fills, net-R, MAE/MFE and missed opportunities. Use a point-in-time universe rather than only famous meme-stock winners.
Prefix replay should preserve the developing VWAP and the correct calendar. Stress costs relative to stop distance and test regular-hours versus extended-hours anchors separately. One successful CLOV example cannot estimate the success rate of every VWAP touch.
Finally, compare the actual delay from first touch to confirmation. If the trend continuation usually happens before the selected trigger, a lower failure rate may come at the price of too little remaining reward. That tradeoff should appear directly in the results instead of being concealed by an idealized touch-price fill.
Common pitfalls
Buying every VWAP touch
Without trend context and confirmation, the strategy mixes different regimes.
Choosing the anchor after the result
Retrospective anchors can create support that did not exist for the decision.
Using future volume
A 15-minute condition cannot select an entry in minute eight.
Checklist before using this method
Check each item after verifying it on your data. Progress is saved in this browser; it does not certify a profitable strategy.
Frequently asked questions
Does a rising VWAP guarantee support?
No. It summarizes completed transactions; new flow can change the trend immediately.
Can the anchor be a news release?
Yes, if its time was known and is kept fixed. That is a separate variant to compare with session VWAP.
Research sources
Each source supports the definition or evidence described beside it. The pseudocode, synthetic examples and proposed parameters require separate validation.
- How to use VWAP to buy a Pullback in a Meme StockSMB Capital. Read the original 29 June 2021 CLOV transcript; no complete strategy account statement. Checked: .
- Anchored VWAP explainedBrian Shannon / Alphatrends. Read the public anchor, location and direction explanation, not the full paid book. Checked: .
- Volume Weighted Average PriceTradingView. Read typical-price calculation and anchor settings. Checked: .
Related methods
Risk note
This content supports education and research design, not financial advice. Backtest is historical simulation, does not guarantee future performance and does not place real trades. Methods in this library are not automatically features available in the app. See methodology and learning center.
Validate rules before risking real capital
Check app support, data and individual simulated trades; advanced detectors may require a separate implementation.
Download Backtest on the App Store