How signals are calculated
All indicators are computed by deterministic code, never by an AI model. Every rule is versioned; a signal records the exact version and parameters used.
20-day range breakout / breakdown
On the latest completed session t, compare the close with the highest high (breakout) or lowest low (breakdown) of sessions t−20 … t−1. Session t is excluded from the range.
Relative volume
Volume on completed session t divided by the arithmetic mean volume of sessions t−20 … t−1. Triggers at ≥ 2.0× (v1). Partial-day volume is never used; incomplete bars are excluded rather than scaled.
20/50 moving-average cross
Simple moving averages of close. A bullish cross is SMA20 ≤ SMA50 at t−1 and SMA20 > SMA50 at t; bearish is the reverse.
RSI threshold cross
14-period Wilder RSI (first average is a simple mean of 14 changes, then Wilder smoothing). Up-cross: RSI < 30 at t−1 and ≥ 30 at t. Down-cross: RSI > 70 at t−1 and ≤ 70 at t.
News & earnings context
Headlines from the previous 14 days and the next scheduled earnings date are attached as evidence. They do not trigger signals on their own.
Criteria met
Each signal lists its primary trigger plus two confirmation checks (for example trend versus the 50-session average and relative volume). “2 of 3 criteria met” describes alignment with the rule. It is not a probability of profit or an AI confidence score.
Suppression and deduplication
- Signals are suppressed when data is invalid (non-positive prices, high below low, unsorted dates), insufficient (too few completed sessions) or stale (latest bar more than the configured number of sessions behind the expected session).
- One signal per instrument, rule version and session. A rule that already fired for the same stock in the previous five sessions is not re-emitted.
- Signals are immutable. Corrections are stored separately and keep the original values.
Backtests and forward results
- A signal on session t can only be entered at the open of session t+1. Rules only see bars up to t.
- Fees and slippage are applied on entry and exit. Prices use one consistent adjustment factor for splits and dividends.
- The universe is the current instrument list, so delisted stocks are missing and results carry survivorship bias.
- Forward signal outcomes are measured from the next session open to the close 5 and 20 sessions later, and only once those bars exist.