Spaces:
Running
Running
| # Institutional Hotspot Rules | |
| Date: 2026-05-21 | |
| Hierarchy entry point: `docs/hotspot/README.md` | |
| ## Purpose | |
| Translate 120-day Taiwanese institutional-flow behavior into testable hotspot | |
| scanner features. These rules are hypotheses for ranking and validation; they | |
| are not production trading advice. | |
| ## Data Contract | |
| Each rule is evaluated as of a completed trading day. | |
| Required input columns: | |
| - `foreign_net` | |
| - `trust_net` | |
| - `dealer_net` | |
| - `institutional_net` | |
| - `close` | |
| - `ma10` | |
| - `ma20` | |
| - `volume` | |
| - `turnover` | |
| Rolling windows: | |
| ```text | |
| short flow = 5 trading days | |
| medium flow = 20 trading days | |
| long flow = 60 trading days | |
| institutional memory = 120 trading days | |
| ``` | |
| Missing flow data should produce neutral features and an explicit skipped or | |
| partial-data reason in validation output. | |
| ## Accumulation Rules | |
| ### 120-Day Combined Accumulation | |
| ```text | |
| flow_120d_accumulation = | |
| institutional_net_120d > 0 | |
| and institutional_net_120d_percentile >= 70 | |
| ``` | |
| Interpretation: | |
| - Long-window institutional demand exists. | |
| - Use as a rank boost only when liquidity coverage is acceptable. | |
| ### 20-Day Acceleration | |
| ```text | |
| flow_20d_acceleration = | |
| institutional_net_20d > 0 | |
| and institutional_net_20d / 20 > institutional_net_120d / 120 | |
| ``` | |
| Interpretation: | |
| - Recent buying is stronger than the long-window pace. | |
| - Use with price/volume confirmation to avoid stale accumulation. | |
| ## Institution-Specific Support Rules | |
| ### Investment Trust 10MA Support | |
| ```text | |
| trust_10ma_support = | |
| trust_net_5d > 0 | |
| and trust_net_20d > 0 | |
| and close >= ma10 | |
| ``` | |
| Risk variant: | |
| ```text | |
| trust_10ma_break = | |
| trust_net_20d > 0 | |
| and close < ma10 | |
| ``` | |
| Interpretation: | |
| - Trust buying above 10MA is supportive. | |
| - A 10MA break after trust buying is a hotspot penalty, not a short signal by | |
| itself. | |
| ### Foreign 20MA Support | |
| ```text | |
| foreign_20ma_support = | |
| foreign_net_20d > 0 | |
| and close >= ma20 | |
| ``` | |
| Risk variant: | |
| ```text | |
| foreign_20ma_break = | |
| foreign_net_20d > 0 | |
| and close < ma20 | |
| ``` | |
| Interpretation: | |
| - Foreign accumulation above 20MA is supportive. | |
| - A 20MA break after foreign accumulation should lower rank confidence. | |
| ### Dealer Confirmation | |
| ```text | |
| dealer_confirmation = | |
| dealer_net_5d > 0 | |
| and (foreign_net_5d > 0 or trust_net_5d > 0) | |
| ``` | |
| Interpretation: | |
| - Dealer buying confirms another institutional buyer. | |
| - Dealer-only buying should be weaker than foreign or trust confirmation until | |
| validation proves otherwise. | |
| ## Divergence And Risk Rules | |
| ### Flow Divergence Risk | |
| ```text | |
| flow_divergence_risk = | |
| close_20d_return > 0 | |
| and institutional_net_20d <= 0 | |
| ``` | |
| ### Distribution Risk | |
| ```text | |
| flow_distribution_risk = | |
| close >= close_60d_high * 0.95 | |
| and institutional_net_20d < institutional_net_60d / 3 | |
| ``` | |
| Interpretation: | |
| - Price near highs with fading institutional support is a rank penalty. | |
| - Keep this separate from bearish prediction labels. | |
| ### Volume-Spike Fade Breakdown | |
| ```text | |
| volume_spike_fade_breakdown = | |
| volume[t-3] >= 2.0 * average_volume[t-23:t-4] | |
| and volume[t-2] <= 0.75 * volume[t-3] | |
| and high[t-2] <= high[t-3] | |
| and close[t-1] < open[t-1] | |
| and close[t] < open[t] | |
| and close[t] < ma20[t] | |
| ``` | |
| Interpretation: | |
| - The earlier volume spike did not attract follow-through buying. | |
| - Two black candles plus MA20 break means the hotspot may have shifted away. | |
| - Use as a hotspot rank penalty and display risk flag, not a hard sell rule. | |
| ## Hotspot Score Composition | |
| Initial experimental score: | |
| ```text | |
| hotspot_score = | |
| volume_turnover_rank | |
| + flow_120d_accumulation | |
| + flow_20d_acceleration | |
| + trust_10ma_support | |
| + foreign_20ma_support | |
| + dealer_confirmation | |
| - flow_divergence_risk | |
| - flow_distribution_risk | |
| - volume_spike_fade_breakdown | |
| ``` | |
| The exact weights must be learned or grid-searched in the harness. Do not | |
| hard-code permanent production weights without validation. | |
| ## Validation Requirements | |
| - Use the no-lookahead split from `docs/full_market_hotspot_harness.md`. | |
| - Evaluate top 20, top 30, and top 50 hotspot lists. | |
| - Compare against the current local hot-stock ranking baseline. | |
| - Record per-rule ablations so a single noisy flow rule can be removed without | |
| discarding the whole scanner. | |
| - Promotion requires the gates in `docs/full_market_hotspot_harness.md`. | |