Spaces:
Running
Running
File size: 4,241 Bytes
e610a2f ee37d63 e610a2f ee37d63 e610a2f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | # 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`.
|