# Daily Bias Follow (Desk + Chart)

**Status:** Live arm EffectiveFollow (v2.19) — chart-aligned independent day outcomes  
**Living plan** for Velocity Premium bias lanes that match D1 candle colors.

## Product rule

Bias describes **each D1 bar’s price-move ending outcome** as seen on the chart — not EMA/MACD and not joinDir.
JoinDir still produces signals; bias only **filters** which sides may enter via live `GsxEffectiveFollowDir` / `GsxAllowEntry`.
While a lane is **armed**, FollowDir is **re-derived from the live per-symbol snap** on each gate (not frozen at click).
Bias never closes trades.

| Lane | Bar | Outcome |
|------|-----|---------|
| **Daily** | Forming `rates[0]` (floats) | Live mid vs **today’s open** — sell bar → BEAR, buy → BULL |
| **Pre-D** | Closed `rates[1]` | Close vs **that bar’s open** (static) |
| **Third-D** | Closed `rates[2]` | Same (static) — two bars back from today |
| **NEUT** | Doji | `\|C−O\| ≤ max(5%×(H−L), 10×point)` |
| FollowDir | BULL→BUY · BEAR→SELL · NEUT→**WAIT** · Lane NONE→AUTO | |

All three lanes are **independent**. If the D1 chart shows a sell candle for that day, the matching bias cell must show **BEAR**.

## Locked decisions

| Decision | Choice |
|----------|--------|
| Desk click | Desk-wide: arm one lane; each symbol’s EffectiveFollow from **that** symbol’s bias |
| Chart click | Per-symbol only |
| While armed | **Live** re-derive FollowDir from snap (Daily may flip mid-session) |
| Lanes | Daily \| Pre-Day \| Third-Day \| Signal (clear → AUTO) |
| NEUT while armed | **WAIT** (block new entries) — not AUTO |
| Invalid D1 while armed | **WAIT** |
| Gate | Reuse `FollowGate.mqh` + `GsxEffectiveFollowDir` |
| OFVP SOLO | Re-gate after side adjust |
| START/onboard | Do not wipe armed one-side mirror (`GsxBiasOnboardFollowDir`) |
| Hist refresh | Pre/Third only on D1 `bar0` change; Daily throttled |

## Modules

| Path | Role |
|------|------|
| `Include/GSignalX/Bias/DailyBias.mqh` | `GsxBiasLegFromBarOutcome` + D1 cache |
| `Include/GSignalX/Bias/BiasFollow.mqh` | Lane GVs + `GsxEffectiveFollowDir` + arm apply |
| `Include/GSignalX/FollowGate.mqh` | `GsxAllowEntry` / FollowDir constants |
| `GSX_Bias_Test.mq5` | Unit tests (incl. live flip / NEUT→WAIT) |
| `GSX_FollowGate_Test.mq5` | Allow matrix + post-SOLO re-gate |

## Checklist

- [x] Phases 0–5 initial ship (v2.18 one-shot)
- [x] Chart-aligned C vs O for Daily / Pre / Third (independent)
- [x] Live arm EffectiveFollow + NEUT→WAIT (v2.19)
- [x] Core/Chart OFVP SOLO re-gate
- [x] START/onboard preserve bias side
- [x] Scale XL floors for 50–100+ desks
