Spaces:
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_nettrust_netdealer_netinstitutional_netclosema10ma20volumeturnover
Rolling windows:
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
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
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
trust_10ma_support =
trust_net_5d > 0
and trust_net_20d > 0
and close >= ma10
Risk variant:
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
foreign_20ma_support =
foreign_net_20d > 0
and close >= ma20
Risk variant:
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
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
flow_divergence_risk =
close_20d_return > 0
and institutional_net_20d <= 0
Distribution Risk
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
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:
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.