4 Ways to Read the Heatmap: Price Change Is Just One
4-section structure: Concept / How We Compute / How to Read / Caveats.
1. Concept
Most heatmaps show only price change. But price change only answers "who went up today." It can't answer deeper questions:
- "This stock is +3%, but versus the market — strong or weak?"
- "Which stocks were most actively traded today?"
- "Where did institutional money concentrate?"
Our heatmap now supports 4 modes:
| Mode | What It Answers |
|---|---|
| Price Change | Who gained? Who lost? How much? |
| Relative Strength (RS) | Who beat the market? Who lagged? |
| Liquidity | Who is today's actively-traded hot stock? |
| Amount | Where did money concentrate? |
Same heatmap, switch modes, get 4 completely different insights.
2. How We Compute
2.1 Price Change (chg_pct)
Same as Heatmap Time Periods cumulative return. Color scale dynamically adjusts per period (±9.5% ~ ±40%).
2.2 Relative Strength Z-Score
Not absolute return — performance relative to the market:
RS_z = (stock_chg_pct − market_mean_chg_pct) / market_std
- Market mean: arithmetic average of all stocks in the index
- Market std: standard deviation across the index universe
- Unit: σ (standard deviations)
Color scale ±2.0σ:
- +2σ deep red: stocks significantly outperforming the market
- −2σ deep green: stocks significantly underperforming
- 0σ neutral: tracks market performance
2.3 Liquidity (Turnover Rate %)
Turnover = daily_volume / shares_outstanding × 100%
Measures "what % of the float changed hands today." Color uses percentile mapping (prevents a few extreme-volume stocks from crushing the scale):
- Light orange → deep orange (single-sided, no positive/negative)
- Dark = turnover in the top percentile of the market
- Light = turnover in the bottom percentile
2.4 Trade Amount (Million NT$)
Amount = daily_volume × close_price
Measures "how much capital flowed through this stock today." Since amount spans 4 orders of magnitude (millions → hundreds of billions), also uses percentile mapping:
- Light blue → deep blue
- Dark = amount in top percentile (capital concentration)
- Light = amount in bottom percentile (ignored)
2.5 Query String Persistence
Mode stored in URL ?mode=rs, composable with market and period:
/home/heatmap?market=上市&period=20d&mode=rs
Switching any one preserves the other two. Shareable links carry full state.
3. How to Read
3.1 Price Change vs Relative Strength: The Common Confusion
Key difference: price change shows absolute, RS shows relative.
Scenario A: Market up day
- Index +3%. Stock +2%.
- Price change mode: red (+2% is a gain)
- RS mode: green (underperforms by 1%)
Scenario B: Market down day
- Index −4%. Stock −1%.
- Price change mode: green (−1% is a loss)
- RS mode: red (outperforms by 3%, fell less than others)
Practical takeaway:
- Price change alone is dragged by overall market sentiment
- RS helps you find genuine leaders on broad-up days
- On broad-down days, helps identify defensive names (may lead the rebound)
3.2 Liquidity × Price Change Combined Reading
| Price Change | Liquidity | Meaning |
|---|---|---|
| Deep red (up) | Deep orange (active) | Price-volume rising together — strong advance with healthy turnover |
| Deep red (up) | Light orange (quiet) | Rising on low volume — no sellers, possibly late-stage pump (risk) |
| Deep green (down) | Deep orange (active) | Panic selling — heavy volume, possibly near capitulation |
| Deep green (down) | Light orange (quiet) | No-volume decline — no buyers, further downside risk |
3.3 Amount Mode: Where Is the Smart Money?
Even among large-caps, amount concentration varies hugely:
- Sea of deep blue: capital-concentrated chasing, today's focus stocks
- Mid-tone: normal trading
- Light blue: capital-avoided, big market cap but no one trades
Read with industry blocks: whole industry block deep blue → sector-wide attention; single stock notably darker → individual event (earnings, news)
3.4 Cycling 4 Modes for a Market Health Check
Standard scan routine:
chg_pct: more gainers or losers today?rs: who are the true leaders (excluding market drift)?liquidity: which are the hot active names?amount: where is the capital concentrated?
Cross-referencing 4 modes is far more complete than price-change alone.
4. Caveats
⚠️ RS Is "Relative," Not "Absolute Good"
RS deep red only means outperforming the market — it doesn't mean going up. On a −5% market day, a stock at −2% shows red RS but is still losing money. Verify absolute direction in chg_pct mode.
⚠️ Market Mean Affected by Extreme Values
RS's "market mean" is the arithmetic average of all stocks. If a cluster of limit-up/limit-down days occurs, the mean tilts.
Mitigate: only rely on significant deviations (±1.5σ+), ignore tiny ±0.3σ differences.
⚠️ Turnover Is Intraday, Not Cumulative
Liquidity mode shows today's turnover rate; it doesn't change with period. "Cumulative turnover" isn't provided (requires additional aggregation cost).
⚠️ Amount Percentile Changes Per Index
Switching market (上市 / 上櫃 / 興櫃) recomputes the amount percentile baseline. So the same stock's color depth may differ between markets — rank depends on the sample pool.
⚠️ Emerging Market Turnover Spikes
Emerging-market (興櫃) stocks have low floats and thin volume, so turnover easily spikes to 10%+. Liquidity color in 興櫃 clusters at the low end (a few extreme stocks eat the visual scale). This is a structural limitation, not a bug.
⚠️ Excludes After-Hours and Odd-Lot Trading
Amount and liquidity only count regular-session matched trades, excluding after-hours fixed price and odd-lot trading. Large-caps' true volume is slightly understated (after-hours may add 10-20%).
Further Reading
- Heatmap: 1 Day or 20 Days? (P1A.1)
- Using Rankings to Find Strongest Stocks
Try It
- Open Heatmap, cycle 4 modes in the header
- Toggle between price change and RS, watch which stocks "flip red to green" or vice versa
- Switch to
mode=amountto see where capital concentrated among large-caps - Combine
period=20d+mode=rs→ find 20-day market-beaters - Click 📐 for RS formula and percentile-mapping rules