AlphaTRADER Academy
OANDA Books
Most "sentiment" indicators are derived. OANDA's books are raw data — published every 20 minutes, broken down by price bucket: how many of OANDA's clients are long/short at each level, where their pending limits and stops sit. It's the closest a retail trader gets to seeing the order flow institutions trade on. Reading it well changes how you read every chart.
"The market always moves toward where the orders are." — apocryphal market-maker
Two Books, Two Stories
OANDA publishes Position Book AND Order Book separately. They look similar, but answer different questions. Confusing them is the #1 mistake.
Histogram of currently open positions bucketed by entry price. Shows where existing inventory is held — both winners and losers.
- ▸ Buckets above current price: traders who are SHORT (entered above)
- ▸ Buckets below current price: traders who are LONG (entered below)
- ▸ Reads: bucket = % of open longs vs % of open shorts at that level
- ▸ Use: identify accumulation zones — where retail keeps re-entering
Histogram of pending orders — limit orders waiting to fill, stop orders waiting to trigger. Shows where future flow LIVES.
- ▸ Limit orders below price: waiting buyers (support)
- ▸ Limit orders above price: waiting sellers (resistance)
- ▸ Stop orders below price: long-position stops (downside fuel)
- ▸ Stop orders above price: short-position stops (upside fuel)
- ▸ Use: identify stop-hunt targets — concentrated stops = liquidity
Mental model: Position Book = past commitment. Order Book = future intent. Position Book tells you who's HOPING for X. Order Book tells you who PROFITS from X happening.
Position Book — Reading Open Inventory
Each price bucket carries two numbers: longCountPercent and shortCountPercent. These are percentages of OANDA's total client positions across all price buckets, not bucket-local.
Top-Line Aggregates
- ▸long_pct: total % of clients net long across all buckets
- ▸short_pct: total % of clients net short
- ▸net_position: long_pct − short_pct (range −100 to +100)
- ▸sentiment_score: normalised −100 to +100, used for crowding alerts
Crowding Thresholds
- ▸≥ 75% long = retail crowded long → fade signal
- ▸≥ 75% short = retail crowded short → fade signal
- ▸50–60% range = balanced crowd, no contrarian edge
- ▸Per-bucket extremes = stop-clusters magnify the signal
Reading Per-Bucket Patterns
| Bucket Pattern | What It Tells You | Trade Implication |
|---|---|---|
| Heavy long stack just below price | Recent buyers holding losses, waiting for breakeven | Sellers will defend resistance — supply zone |
| Heavy short stack just above price | Recent shorts holding losses, waiting for breakeven | Buyers will defend support — demand zone |
| Long & short stacks symmetric | Balanced book — no clear retail bias | No order-book edge — defer to other signals |
| Long stacks far above price | Trapped longs — entered at top, deep in red | Capitulation pressure if price falls further |
| Short stacks far below price | Trapped shorts — entered at bottom, deep in red | Short-squeeze potential on any rally |
Order Book — Where the Pending Flow Lives
Order Book is the more actionable of the two. It maps the LITERAL future flow that will fill if price reaches a level. The Retail Order Heatmap on the dashboard reads from here.
Pending Buy Orders (Below Price)
- ▸Limit buys = passive demand waiting to absorb selling
- ▸Stop buys above price = breakout traders' triggers
- ▸Concentrated cluster of buy limits = strong support level
- ▸Cluster sweep = price absorbed all the buyers, no defence left → continue down
Pending Sell Orders (Above Price)
- ▸Limit sells = passive supply waiting to absorb buying
- ▸Stop sells below price = downside breakout triggers
- ▸Concentrated cluster of sell limits = strong resistance level
- ▸Cluster sweep = sellers exhausted, no resistance left → continue up
Stop Orders — The Liquidity Magnets
Stop orders are the asymmetric prize. When price hits a stop cluster, it triggers a cascade of forced market orders in the same direction → mini momentum spike → stop-hunt mechanics.
- ▸Long stops below price = forced selling fuel (longs getting stopped out)
- ▸Short stops above price = forced buying fuel (shorts getting stopped out)
- ▸"Stop run" = institutions deliberately push price into the cluster to harvest liquidity
- ▸Order Book lets you anticipate this BEFORE the spike
Liquidity Clusters — The Trade Setup
A cluster is a price level where significant orders concentrate (typically > 10× average bucket weight). The platform automatically extracts the 3 nearest clusters around current price.
How Clusters Get Identified
- Iterate every Order Book bucket
- Compute concentration score:
orders_at_bucket / mean_orders_per_bucket - Flag buckets above threshold (typically 1.5–2× mean)
- Filter to within ±5% of current price (closer = more actionable)
- Return top 3 by concentration, sorted by distance
Cluster Types Reference
| Cluster Type | Location | Reads As | Implication |
|---|---|---|---|
| Buy Limit Cluster | Below price | Strong demand pool | Likely bounce zone — fade short to cluster |
| Sell Limit Cluster | Above price | Strong supply pool | Likely rejection zone — fade long to cluster |
| Long Stop Cluster | Below price (under recent lows) | Trapped long stops = sell fuel | Stop-hunt magnet — price likely sweeps before reversing |
| Short Stop Cluster | Above price (over recent highs) | Trapped short stops = buy fuel | Stop-hunt magnet — price likely sweeps before reversing |
| Mixed Cluster | Stops + limits at same level | Battleground level | Wait for resolution direction before entering |
Liquidity Grabs — The Stop-Hunt Alert
When the platform detects sudden retail flip combined with a price spike into a stop cluster, the LIQUIDITY GRAB ALERT fires on the sentiment widget. This is one of the highest-quality signals in the entire system.
What Triggers the Alert
- ▸Sudden swing in long_pct vs short_pct (10%+ shift in 1 snapshot)
- ▸Price spike just hit a documented stop cluster
- ▸Volume confirmation on the spike candle
- ▸Reversal candle forming after the sweep
How to Trade the Alert
- ▸Enter opposite the spike direction (with the institution, not the trapped retail)
- ▸SL just beyond the spike extreme — defined invalidation
- ▸TP at the next opposite cluster (likely magnet)
- ▸Best when aligned with HTF Wyckoff Spring/UTAD context
Liquidity Grab = Wyckoff Spring at intraday resolution. The mechanic is identical — sweep stops, trap retail, reverse with smart money. The Order Book just shows you exactly which level is the bait.
Coverage & Cadence
OANDA Books are an OTC-broker dataset, not a centralised exchange. Coverage and freshness matter.
Supported Instruments (16)
- ▸ EUR_USD
- ▸ GBP_USD
- ▸ USD_JPY
- ▸ USD_CHF
- ▸ AUD_USD
- ▸ NZD_USD
- ▸ USD_CAD
- ▸ EUR_JPY
- ▸ GBP_JPY
- ▸ AUD_JPY
- ▸ EUR_GBP
- ▸ EUR_CHF
- ▸ EUR_AUD
- ▸ GBP_CHF
- ▸ XAU_USD (Gold)
- ▸ XAG_USD (Silver)
Coverage is concentrated in the most liquid FX pairs and precious metals — instruments with deep retail participation. Indices, crypto, and equities are not covered by OANDA's published books.
Why The 20-Minute Rhythm Matters
OANDA aggregates and publishes its books on a 20-minute cycle. That cadence shapes how you use them.
- ▸ Each snapshot is a 20-minute SLICE of retail behaviour, not real-time
- ▸ Fast moves (M15 scalps) often outrun the data window — book you see is already stale
- ▸ Best fit: H1 / H4 swing setups where 20-min refresh is more than enough
- ▸ During news events, ignore the book until at least one fresh cycle confirms post-event positioning
Critical caveat: OANDA Books reflect ONE BROKER'S clients. Roughly skewed toward retail FX traders globally, but not the entire market. Treat as a SAMPLE of retail positioning, not the full picture. Convergence with COT (institutional) at extremes is when both readings agree it's most reliable.
Books = Wyckoff at Intraday Resolution
Wyckoff describes "stop-hunting at the boundaries of trading ranges". Order Book shows you the EXACT prices where those stops cluster. Position Book shows you who's positioned wrong. Same mechanic, different lens.
| Wyckoff Concept | Books Equivalent | Confluence Read |
|---|---|---|
| Spring | Liquidity Grab Alert below recent low + stop cluster swept | Order Book shows the bait. Spring confirms the trap. A+ long entry. |
| UTAD | Liquidity Grab Alert above recent high + short stops swept | Mirror image — exact short entry trigger. |
| LPS / LPSY | Limit cluster holds on retest — buyers/sellers re-defend | Last Point of Support visible as bid-side defence in real time. |
| JAC (Jump Across Creek) | Sell limit cluster gets blown through | Resistance vacuumed — Phase D breakout confirmed by Order Book. |
| No Demand bar | Bid-side limits empty during rally → no real interest | Rally on hot air — Books reveal the lack of conviction. |
| Composite Operator absorption | Heavy long limits absorbing selling at support | Smart-money buying visible in real time — Phase B accumulation. |
Reading principle: Wyckoff schematics tell you WHAT will happen. Books tell you WHERE to expect it within minutes-to-hours. The combo turns a daily-bar Wyckoff thesis into a precise intraday entry.
Failure Modes — When Books Mislead
Books are powerful but partial. Knowing where they lie is half the alpha.
Single-Broker Sample
OANDA = retail FX skew. Doesn't include interbank or institutional flow.
- ▸ A "stop cluster" might be invisible to bigger market
- ▸ Best confirmed by COT institutional positioning
- ▸ Don't assume OANDA's retail = global retail at extremes
News Disrupts the Book
Pre-NFP positioning gets unwound in seconds. Book becomes irrelevant briefly.
- ▸ Stop clusters get blown through regardless of "support" reading
- ▸ Don't trade book signals 30 min before high-impact news
- ▸ Wait 1–2 snapshots after news for book to re-establish
Direct vs Derived Data
Genuine broker books are direct positioning data. Anything else (Volume Profile proxies, tick-derived gauges) is INFERRED.
- ▸ Direct broker data: actual client positions — high signal quality
- ▸ Derived gauges: estimate from price/volume only — noisier, less reliable
- ▸ Stop-hunt signals especially weaker on derived data
Crowding Persistence
Retail can stay 80%+ long for weeks during a strong trend.
- ▸ "Crowded" reading alone is not a fade trigger
- ▸ Pair with structural exhaustion (UTAD, divergence, sentiment)
- ▸ Use as bias filter, not standalone entry
Operational Cheatsheet
When you open the Sentiment widget on a supported FX pair, run this checklist.
| Read | Confirm With | Action |
|---|---|---|
| Long_pct ≥ 75% | Direct broker data (not derived) + price near multi-week high | Crowded long → fade bias, wait for UTAD or distribution |
| Short_pct ≥ 75% | Direct broker data + price near multi-week low | Crowded short → fade bias, wait for Spring |
| LIQUIDITY GRAB ALERT firing | HTF Wyckoff Spring / UTAD context aligned | A+ entry — opposite of spike direction |
| Buy limit cluster within 0.3% below price | Cluster aligned with HTF support / VAL | Long entry at cluster — strong demand zone |
| Sell limit cluster within 0.3% above price | Cluster aligned with HTF resistance / VAH | Short entry at cluster — strong supply zone |
| Stop cluster between price and Wyckoff target | Stops will trigger before target reached | Expect spike through cluster — adjust SL beyond it |
| Reading derived from VP, not direct broker data | Pair not covered or upstream feed missing | Discount the reading — confirm via COT or price action |
| Pre-news window (NFP, FOMC ±30min) | Book about to be invalidated | Don't trade book signals — wait post-event |
Closing principle: Books are the closest retail gets to seeing the same data institutions trade on. Used naively they're noise. Combined with Wyckoff structure and Sentiment composite they're an x-ray. The trade you take after seeing all three agree is the one worth full size.
Connect the Dots
Test Your Understanding
4 questions — instant feedback, no scoring stored.