# MRC / FOMO

Use the [shared role, Reverse and timing rules](../05-signal-passports.md). **MRC (FOMO)** is a complete channel family: `FOMO`, `FOMO_PRICE_LIMIT` and `FOMO_CHANNEL_WIDTH_PRICE_LIMIT`. Selecting FML as an MA type selects only its mean line; it does not create these channel conditions.

## Channel and settings

M is the platform's Super Smoother mean of `(H+Lo+C)/3`, using a fixed period of 200. R is the correspondingly smoothed true range. The period is not an editable parameter in these FOMO cards. Do not add a p field or replace the smoothing with an ordinary EMA.

`oo` selects the channel region: W (Weak), M (Medium), S (Strong), default W. The reviewed bands are `U=M+k*R` and `D=M−k*R`, with k equal to `2.415*pi−2`, `2.415*pi`, and `2.415*pi+2` respectively. Strong therefore selects the more distant bands for the same underlying data; it does not certify a more reliable trade.

## Entry — fomo.entry

`CEC`: C1>D1 and C0<=D0 gives L; otherwise C1<U1 and C0>=U0 gives S; otherwise N. This leaves the selected inner channel.

`CRTC`: C1<D1 and C0>=D0 gives L; otherwise C1>U1 and C0<=U0 gives S; otherwise N. This returns from outside the selected channel.

Current equality is included; previous equality does not start the crossing. Merely being in an overbought/oversold region is not the entry event. Both CL/CR and Normal/Heiken-Ashi are schema options for this variant.

## Position filter — fomo.filter

`oo` chooses the bands; integer `offset` 0…200 matches current price to older mean/bands. `plc` chooses BY_LAST_PRICE or BY_BAR_RANGE. The filter has fixed current-candle calculation without an at selector. `ft` uses the following exact branches:

- `BD`: last price C>=U gives IL; otherwise C<=D gives IS; otherwise AA. For a range bar, H>=U and Lo<=D together gives N; otherwise H>=U gives IL; otherwise Lo<=D gives IS; otherwise AA.
- `BIC`: C>=U or C<=D gives N; otherwise AA. With bar range, H>=U or Lo<=D gives N; otherwise AA. Touching a boundary is not inside for this mode.
- `BICFM`: for last price, X=(C>=M or C<=D), Y=(C<=M or C>=U). For range, X=(H>=M or Lo<=D), Y=(Lo<=M or H>=U). Both gives N; otherwise X gives IL; otherwise Y gives IS; otherwise AA.
- `BHL`: C>U gives IL; otherwise C<D gives IS; otherwise N. For range, H>U and Lo>U gives IL; otherwise H<D and Lo<D gives IS; otherwise N. A touch or partially overlapping bar is not wholly in an outer region.
- `BP`: scan backward including the evaluation bar against the selected, offset bands. Test lower-region contact first: C<=D for last price, Lo<=D for range, giving IS. Then test C>=U or H>=U respectively, giving IL. The most recent qualifying region wins; no qualifying history gives N. A range bar touching both bands takes the lower branch. This is historical region selection, not a new crossing.

Reverse swaps only IL/IS. It leaves both-permitted and neither-permitted results unchanged.

## Width filter — fomo-width.filter

`oo` selects the channel region; `cw` is a percentage-width threshold, numeric 0.1…100, default 1.0. With a nonzero lower band, `W=abs((U−D)/D*100)`.

`ei=BN`: W<cw gives AA; `ei=BW`: W>cw gives AA; otherwise N. Equality blocks both variants. The denominator is D, not M. This filter uses Normal/current-candle data and offers no Reverse, candle-type or timing control.

## Exit — fomo.exit

Use the same CEC/CRTC event with the shared cba rules. ED/EDOP responds to the opposite directional result after Reverse; AVG responds to the position's own result. A generic “touch the band and close/average” description loses both the crossing and action distinctions.

## Remaining calculation boundary

The band relationships and event/filter rules above identify the product variant. They do not supply a full seed/reset/numerical-series implementation of the platform's smoother or prove parity of another MRC library. Width at D=0 and missing-history cases remain outside these finite-value rules.

## Definition coverage and observed controls

The controls below identify this dated schema. Their exact labels, value types and context overrides are in the catalogue. Any omitted standard selector must not be added manually.

- `fomo.entry` — `MAIN` / `FOMO`. Semantics: **Entry — fomo.entry**. Fields: `ss`, `Is`, `ct`, `at`, `rs`, `oo`, `ec`. timeframe: ID-specific list; default 1m; candles: DEFAULT/HEIKEN_ASHI; default DEFAULT; calculation: CL/CR; default CL; Reverse: available; default false.
- `fomo.exit` — `CLOSE_BY` / `FOMO`. Semantics: **Exit — fomo.exit**. Fields: `ss`, `Is`, `ct`, `at`, `rs`, `cba`, `oo`, `ec`. timeframe: ID-specific list; default 1m; candles: DEFAULT/HEIKEN_ASHI; default DEFAULT; calculation: CL/CR; default CL; Reverse: available; default false.
- `fomo.filter` — `PRICE_LIMIT` / `FOMO_PRICE_LIMIT`. Semantics: **Position filter — fomo.filter**. Fields: `ss`, `Is`, `ct`, `rs`, `pla`, `oo`, `offset`, `ft`, `plc`. timeframe: ID-specific list; default 1m; candles: DEFAULT/HEIKEN_ASHI; default DEFAULT; calculation: no selector; Reverse: available; default false.
- `fomo-width.filter` — `PRICE_LIMIT` / `FOMO_CHANNEL_WIDTH_PRICE_LIMIT`. Semantics: **Width filter — fomo-width.filter**. Fields: `ss`, `Is`, `pla`, `oo`, `ei`, `cw`. timeframe: ID-specific list; default 1m; candles: no selector; calculation: no selector; Reverse: no selector.
