$npx -y skills add SKE-Labs/agent-trading-skills --skill vwap-tradingCalculate and test session or anchored VWAP setups. Use when benchmarking execution or evaluating price distance from a volume-weighted average with explicit session and volume-data rules.
| 1 | # VWAP Trading Strategy |
| 2 | |
| 3 | VWAP is an execution benchmark: `sum(price_i × volume_i) / sum(volume_i)` over a declared interval. Session VWAP resets at the chosen session boundary; anchored VWAP uses an explicitly chosen event. Neither is fundamental fair value. |
| 4 | |
| 5 | ## Interpretation |
| 6 | |
| 7 | | Price Position | Meaning | Bias | |
| 8 | | -------------- | -------------------- | ------- | |
| 9 | | Price > VWAP | Current price above the interval's volume-weighted average | Context only | |
| 10 | | Price < VWAP | Current price below the interval's volume-weighted average | Context only | |
| 11 | | Price = VWAP | Current price near benchmark | Context only | |
| 12 | |
| 13 | **Deviation %** = `(Price - VWAP) / VWAP * 100` |
| 14 | |
| 15 | ## Strategies |
| 16 | |
| 17 | ### VWAP as Dynamic S/R |
| 18 | - Test VWAP reaction as a dynamic-coordinate hypothesis using objective trend and rejection rules |
| 19 | |
| 20 | ### VWAP Mean Reversion |
| 21 | - Define extension by rolling session-conditioned standard deviation/percentile and verify a reversion model; no universal 1% threshold applies |
| 22 | |
| 23 | ### VWAP Breakout |
| 24 | - Strong move through VWAP with volume = momentum shift |
| 25 | - Enter on breakout, target deviation bands or previous highs/lows |
| 26 | |
| 27 | ### VWAP Deviation Bands |
| 28 | - +1/-1 StdDev: minor targets |
| 29 | - +2/-2 StdDev: extended targets (often reversal zones) |
| 30 | |
| 31 | ## Workflow |
| 32 | |
| 33 | 1. **Get timestamped trade/volume data** for the declared venue and session. If only candles exist, state the price proxy (typical price/close) and whether volume is actual or tick volume: |
| 34 | ``` |
| 35 | get_candles_around_date(symbol=<symbol>, exchange=<exchange>, interval=<interval>, date=<date>) |
| 36 | ``` |
| 37 | |
| 38 | 2. **Get EMA** for trend context: |
| 39 | ``` |
| 40 | get_indicators(indicator_code="ema", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 41 | ``` |
| 42 | |
| 43 | 3. **Calculate VWAP and deviation** without future session volume; also report standardized/percentile distance from comparable time-of-day history |
| 44 | |
| 45 | 4. **Determine strategy**: |
| 46 | - Price consistently above VWAP → buy dips to VWAP |
| 47 | - Price consistently below VWAP → sell rallies to VWAP |
| 48 | - Price far from VWAP in range → mean reversion |
| 49 | |
| 50 | 5. **Mark on chart**: |
| 51 | ``` |
| 52 | draw_chart_analysis(action="create", drawing={ |
| 53 | "type": "support", |
| 54 | "points": [ |
| 55 | {"time": <session_start>, "price": <vwap_price>}, |
| 56 | {"time": <current_time>, "price": <vwap_price>} |
| 57 | ], |
| 58 | "options": {"text": "VWAP ($50,000)"} |
| 59 | }) |
| 60 | ``` |
| 61 | |
| 62 | 6. **Entry triggers**: bounce from VWAP with rejection candle, or break of VWAP with volume surge. Stop beyond recent swing. |
| 63 | |
| 64 | ## Evidence and Validation |
| 65 | |
| 66 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 67 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 68 | - Include spread, fees, slippage, borrow or funding, partial fills, and latency. Reject the setup when net expectancy is not positive or depends on one narrow parameter. |
| 69 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 70 | - Research basis: Academic [VWAP research](https://web.stanford.edu/~boyd/papers/pdf/vwap_opt_exec.pdf) treats VWAP as an execution benchmark under volume uncertainty and costs—not as proof that price must revert to it. |
| 71 | |
| 72 | ## Key Rules |
| 73 | |
| 74 | - Use VWAP when it is relevant to the benchmark or validated strategy; never make it mandatory. |
| 75 | - State venue, timezone, session/anchor, price proxy, volume source, and reset rule. |
| 76 | - Do not mix daily, weekly, monthly, or event-anchored VWAPs without separate hypotheses. |
| 77 | - Reject unreliable volume, sparse liquidity, or noncomparable fragmented-venue data. |
| 78 | - Do not infer institutional orders or expected clustering from VWAP alone. |
| 79 | |
| 80 | ## Related Skills |
| 81 | |
| 82 | - **volume-profile-trading** — compare two volume-derived descriptive coordinates without calling either fair value |
| 83 | - **mean-reversion** — VWAP mean reversion complements BB and RSI mean reversion setups |