$npx -y skills add SKE-Labs/agent-trading-skills --skill volume-profile-tradingBuild and test volume-at-price profiles using POC, value area, and nodes. Use when the user has trade/tick data or needs a clearly disclosed OHLCV approximation.
| 1 | # Volume Profile Trading |
| 2 | |
| 3 | Volume profile describes volume assigned to price bins over a declared session/range. It does not reveal trader identity, fair value, or a guaranteed reaction. |
| 4 | |
| 5 | ## Core Concepts |
| 6 | |
| 7 | | Concept | Definition | Trading Use | |
| 8 | | --- | --- | --- | |
| 9 | | **POC** | Bin with highest assigned volume | Descriptive mode of the profile | |
| 10 | | **Value Area (VA)** | Contiguous region containing a chosen volume share | Conventional descriptive region | |
| 11 | | **VAH** | Upper VA boundary | Resistance in ranges, breakout level in trends | |
| 12 | | **VAL** | Lower VA boundary | Support in ranges, breakdown level in trends | |
| 13 | | **HVN** | Locally high assigned-volume bin | Candidate consolidation/reaction feature | |
| 14 | | **LVN** | Locally low assigned-volume bin | Candidate traversal/reaction feature | |
| 15 | |
| 16 | ## Entry Strategies |
| 17 | |
| 18 | ### Value Area Bounce (Range Trading) |
| 19 | - Buy at VAL with bullish rejection candle, target POC |
| 20 | - Sell at VAH with bearish rejection candle, target POC |
| 21 | - Stop beyond VA boundary |
| 22 | |
| 23 | ### POC Magnet |
| 24 | - Test reversion to POC with a fixed horizon; price position alone is not an entry |
| 25 | - Combine with RSI divergence at extremes for higher probability |
| 26 | |
| 27 | ### Value Area Breakout |
| 28 | - Breakout above VAH + volume spike → long, target next HVN above |
| 29 | - Breakdown below VAL + volume spike → short, target next HVN below |
| 30 | - Price must close outside VA (not just wick) |
| 31 | |
| 32 | ### LVN Breakout Play |
| 33 | - Define LVN relative to neighboring bins and test traversal time versus matched control bins |
| 34 | - Use an objective trigger and structural invalidation; do not assume rapid movement |
| 35 | |
| 36 | ## Workflow |
| 37 | |
| 38 | 1. **Get trade/tick data when available**, including venue, session, price, size, and corrections. If only OHLCV exists, disclose that volume-at-price is approximated because candle volume has no exact price allocation: |
| 39 | ``` |
| 40 | get_candles(symbol=<symbol>, exchange=<exchange>, interval=<interval>, count=200) |
| 41 | ``` |
| 42 | |
| 43 | 2. **Check volume indicator**: |
| 44 | ``` |
| 45 | get_indicators(indicator_code="mfi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 46 | ``` |
| 47 | |
| 48 | 3. **Freeze the profile specification**: session/range anchor, tick/bin size, trade corrections, allocation method, value-area share (70% is conventional), expansion algorithm, and tie handling. Compute POC/VAH/VAL without using future observations. |
| 49 | |
| 50 | 4. **Mark levels on chart**: |
| 51 | ``` |
| 52 | draw_chart_analysis(action="create", drawing={ |
| 53 | "type": "support", |
| 54 | "points": [ |
| 55 | {"time": <start_time>, "price": <poc_price>}, |
| 56 | {"time": <end_time>, "price": <poc_price>} |
| 57 | ], |
| 58 | "options": {"text": "POC ($67,250)"} |
| 59 | }) |
| 60 | ``` |
| 61 | ``` |
| 62 | draw_chart_analysis(action="create", drawing={ |
| 63 | "type": "demand", |
| 64 | "points": [ |
| 65 | {"time": <start_time>, "price": <vah_price>}, |
| 66 | {"time": <end_time>, "price": <val_price>} |
| 67 | ], |
| 68 | "options": {"text": "Value Area (70%)"} |
| 69 | }) |
| 70 | ``` |
| 71 | |
| 72 | 5. **Confirm with indicators**: |
| 73 | ``` |
| 74 | get_indicators(indicator_code="rsi", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 75 | get_indicators(indicator_code="ema", symbol=<symbol>, exchange=<exchange>, interval=<interval>) |
| 76 | ``` |
| 77 | |
| 78 | 6. **Report**: POC level, VA boundaries, price position (inside/above/below VA), key LVNs, trade setup |
| 79 | |
| 80 | ## Evidence and Validation |
| 81 | |
| 82 | - Treat the setup as a testable hypothesis, not a prediction. Define thresholds, entry, invalidation, and exit before evaluating outcomes. |
| 83 | - Calibrate on the same instrument, venue, session, and timeframe. Use closed candles and a held-out or walk-forward sample; record every variant tried. |
| 84 | - 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. |
| 85 | - Return observed inputs, missing data, cost assumptions, entry, invalidation, exit, and a valid, watch, or no-trade status. |
| 86 | - Research basis: Volume profile is a descriptive distribution. Published trading-rule evidence is limited; a recent [value-area breakout test](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6350238) found the unfiltered signal was not economically significant. |
| 87 | |
| 88 | ## Key Rules |
| 89 | |
| 90 | - Require enough observations for stable bins and show sensitivity to bin width; no candle count is universal. |
| 91 | - Treat HVN/LVN reactions as hypotheses, not magnets, barriers, or air pockets. |
| 92 | - Anchor and update profiles according to the predeclared session/event rule. |
| 93 | - State whether volume is actual venue trades, consolidated, tick volume, or OHLCV-allocated approximation. |
| 94 | - Test overlaps incrementally; multiple price-derived labels are not independent confluence. |
| 95 | |
| 96 | ## Related Skills |
| 97 | |
| 98 | - **supply-demand-zones** — volume profile HVNs confirm S/D zone strength; LVNs identify breakout accele |