◀ Hub

US Market / System Documentation

System Architecture

Quantitative Momentum Screening & Signal Evaluation Pipeline

00 System Overview

Quant Radar is a signal-first, statistics-driven pipeline for identifying high-probability swing trading opportunities in the US stock market. The system does not predict market direction — it evaluates historical signal behavior to rank opportunities by edge and reliability, eliminating subjective bias from the decision process entirely.

Built for a 20-trading-day swing horizon, the system runs automatically every market day after close — from universe scan to execution simulation — without requiring manual chart analysis, fundamental research, or macro judgment.

0.1 System Flow — End to End

The system operates as a sequential six-stage pipeline. Each stage produces a clean output that feeds directly into the next. No stage is skipped, no manual override exists between stages.

01 — Stocks Universe

Defines the tradable pool: 738 US-listed stocks and ETFs available on Pluang, chosen as the broadest universe accessible to Indonesian retail investors. Every downstream stage operates exclusively within this universe.

02 — Radar Scanner

Scans all 738 tickers daily. Computes a composite momentum score (14-day price momentum × volume surge × 325-day range position) for each ticker, then benchmarks it against that ticker's own rolling 3-year 95th percentile threshold. Tickers with a positive distance above threshold — meaning today's signal ranks in the historical top 5% — are forwarded as candidates. The full table of all 738 tickers sorted by distance is output as the Signal Surge Amplifier Grid.

03 — Sniper Validator

Receives all radar-positive candidates and subjects each to a full event-based backtest over 3 years of signal days. Two independent scores are computed: Edge (profitability — average return weighted by win rate, tanh-normalized) and Quality (reliability — sample size, temporal distribution, return stability). These combine into a Sniper Score (0–100) with an asymmetric penalty for negative-edge tickers. Each ticker receives a characteristic label (COMPOUNDER / BURST / STEADY / ERRATIC) and a conviction verdict (S / A / B / C tier). A per-ticker detail page exposes the full backtest history for manual review.

04 — Portfolio Planner

Presents all radar-positive candidates as interactive cards for position construction. Users select tickers via checkbox; allocation is automatically computed proportional to Sniper Score. A per-card time-frame selector (5D / 10D / 20D) drives the displayed Expected Value. Three layers of sanity check are available: the card itself, a stress test popup, and the full Sniper detail page.

05 — Tracker Matrix

A post-mortem surveillance layer that appends daily and accumulates a running record of all tickers that have appeared in the radar pipeline. Each ticker is tracked for 20 trading days from its last positive signal day, displaying daily radar distance, closing price, and Sniper Score (only on active signal days) in a scrollable matrix organized by calendar month.

06 — Alpha Executor

A rules-based simulation — not a live bot, not real capital — that answers: what would happen if a trader followed the system strictly every cycle? Starting from equity 100 on January 2, 2026, it mechanically selects the daily top-5 Sniper Score tickers, allocates by score weight, holds 20 trading days, then rebalances into a new top-5 with chained equity. Performance is tracked against a SPY benchmark rebased to the same starting point.

0.2 Design Principles
Signal-first — evaluate historical signal behavior, not market predictions
Edge + Reliability — profitability is necessary but not sufficient; consistency is required
Event-based backtesting — grounded in observable historical signal days, not synthetic simulations
Per-ticker normalization — each ticker is benchmarked against its own history, not a universal cutoff
Asymmetric penalty — negative-edge signals cannot be rescued by quality alone
20-day swing horizon — far enough from daily noise, close enough for momentum to remain relevant
No subjective input — no chart reading, no fundamental judgment, no macro calls
01 Stocks Universe
Universe Page ▶

The stocks universe defines the total pool of tickers the system monitors. Every module downstream — Radar, Sniper, Planner, Tracker, and Executor — operates exclusively within this universe. What is not in the universe is invisible to the system.

1.1 Universe Scope — 738 Tickers via Pluang

The universe consists of 738 US-listed stocks and ETFs available on Pluang — an Indonesian retail investment platform. Pluang was selected as the universe source because it offers the broadest selection of US equities accessible to Indonesian retail investors among all available local brokers. Using Pluang's listed universe ensures that every ticker flagged by the system is actually tradable, not just theoretically screened from a raw market database.

The universe spans multiple sectors and asset types including stocks, ETFs, and funds — covering Technology, Financial Services, Healthcare, Energy, Communication Services, Consumer sectors, and more.

UNIVERSE 738 TICKERS US MARKET PLUANG LISTED
1.2 Ticker Card — Displayed Information

Each ticker in the universe is displayed as a card showing the key identity and price data needed to recognize and contextualize a stock at a glance.

FIELDS TICKER COMPANY NAME SECTOR INDUSTRY PRICE DAILY CHANGE %
TICKER
Exchange ticker symbol — clickable to Yahoo Finance The official stock symbol. Clicking any ticker card opens that ticker's Yahoo Finance page in a new tab for charts, fundamentals, and news.
COMPANY NAME
Full registered company or fund name The complete legal name of the issuer — useful for confirming identity when ticker symbols are ambiguous or unfamiliar.
SECTOR
Broad market sector classification The top-level sector the company belongs to (e.g. Technology, Financial Services, Healthcare). Searchable via the search field.
INDUSTRY
Sub-sector industry classification More granular classification within the sector (e.g. Semiconductor Equipment, Capital Markets, Communication Equipment). Also searchable.
PRICE
Latest closing price in USD The most recent closing price for that ticker. Updated daily after market close.
DAILY CHANGE %
Day-over-day price change in percent Percentage change from the previous close to today's close. Green for positive, red for negative. Used as one of the sort options.
1.3 Navigation & Search

Three tools are provided to navigate the full 738-ticker universe without manually scrolling through every card.

Search

A real-time search field filters the displayed cards instantly as the user types. Matches against ticker symbol, company name, sector, and industry simultaneously. Non-matching cards are eliminated from view automatically. Clearing the field restores the full list.

Sort A–Z

Sorts all ticker cards alphabetically by ticker symbol. Useful for locating a specific ticker quickly when the symbol is known.

Sort by % Change

Sorts all ticker cards by daily price change percentage, descending. Surfaces the biggest movers of the day at the top — useful for a quick market pulse check across the entire tradable universe.

02 Radar Scanner
Radar Page ▶

Radar Scanner scans the entire stock universe daily and computes a composite momentum score for each ticker. Scores are benchmarked against each ticker's own historical distribution to produce a normalized, comparable ranking — eliminating cross-ticker scale distortion.

Only tickers whose radar score exceeds their personal rolling threshold advance to the Sniper engine.

2.1 Input Variables

Four raw market data points are pulled daily for every ticker in the universe. These serve as the direct inputs to the radar score calculation.

INPUT LAST_PRICE MOMENTUM_14D VOL_SURGE RANGE_POS_325
LAST_PRICE
Current closing price The most recent closing price of the ticker. Used as the reference price P in the range position calculation. Not used directly in scoring, but required to compute range-relative position.
MOMENTUM_14D
14-day price change — ΔP₁₄ Absolute price change over the past 14 trading days: P₀ − P₋₁₄. Positive values indicate upward momentum; negative values indicate price decay. Serves as the primary momentum multiplier in the score formula.
VOL_SURGE
Volume surge ratio — V / SMA(V, 20) Today's trading volume divided by the 20-day simple moving average of volume. A value above 1.0 means above-average participation; below 1.0 means subdued volume. Amplifies the score when volume confirms price movement.
RANGE_POS_325
325-day range position — (P − L₃₂₅) / (H₃₂₅ − L₃₂₅) Current price expressed as a 0–1 ratio within the 325-day high-low channel. A value near 1.0 means the price is near its 325-day high (structural strength); near 0.0 means near its yearly low. Acts as a structural regime filter.
2.2 Radar Score

The three momentum dimensions are multiplied together into a single composite score. The multiplicative structure means all three conditions must be simultaneously active for the score to be meaningfully elevated — a single strong signal is not enough.

RADAR_SCORE = ΔP₁₄ × V SMA(V, 20) × P − L₃₂₅ H₃₂₅ − L₃₂₅
OUTPUT RADAR_SCORE
RADAR_SCORE
Composite momentum score Raw multiplicative product of the three momentum components. Not directly comparable across tickers — a high-price ticker will naturally produce larger absolute scores than a low-price ticker. Cross-ticker ranking requires threshold normalization (see 2.3).
2.3 Rolling Threshold

Because RADAR_SCORE is not normalized across tickers, each ticker is benchmarked against its own historical score distribution. The system runs a mini-backtest covering the past 3 years of daily scores per ticker, then extracts the 95th percentile value as the threshold — meaning only the top 5% of historical signal days qualify as genuinely exceptional.

The threshold rolls forward daily: every time the screener runs, one new day is added to the 3-year window and the percentile is recalculated. This keeps the bar adaptive to each ticker's evolving volatility and momentum regime.

OUTPUT THRESHOLD
THRESHOLD
95th percentile of 3-year daily radar scores The minimum RADAR_SCORE a ticker must exceed today to be considered an active signal. Computed individually per ticker from a rolling 3-year lookback window. Updates daily. A ticker's threshold reflects its own historical signal behavior — not a universal cutoff.
2.4 Distance %

Once both RADAR_SCORE and THRESHOLD are computed, distance measures how far today's score sits relative to the threshold — expressed as a percentage. This converts ticker-specific raw scores into a universal ranking dimension.

DISTANCE_% = RADAR_SCORE − THRESHOLD THRESHOLD × 100

Only tickers with DISTANCE_% above zero pass through as candidates. The table is ranked by DISTANCE_% in descending order — the higher the distance, the stronger the current signal relative to that ticker's own historical bar.

INPUT RADAR_SCORE THRESHOLD
OUTPUT DISTANCE_%
DISTANCE_%
Threshold-relative signal strength, in percent Expresses how much today's radar score exceeds (positive) or falls short of (negative) the ticker's rolling 95th percentile threshold. Positive values indicate the ticker is in active signal territory. This is the primary sort key for the output table and the pass/fail gate for Sniper candidacy.
2.5 Z-Score

Z-Score is a supplementary context indicator. Unlike the threshold (which is derived from only the top 5% of days), Z-Score is computed against the full 3-year distribution — all trading days, not just signal days. It answers the question: how unusual is today's radar score relative to the ticker's average behavior?

Z_SCORE = RADAR_SCORE − μ σ

Z-Score does not affect ranking or Sniper candidacy. It is displayed as a manual sanity check: a very high DISTANCE_% with a low Z-Score may indicate the threshold itself has shifted (e.g. due to a volatile historical window), not necessarily that the signal is fundamentally stronger.

OUTPUT Z_SCORE
Z_SCORE
Standard deviations above 3-year mean (all days) Measures how many standard deviations today's radar score sits above or below the ticker's 3-year mean score across all trading days. A Z-Score of 2.0 means today's reading is two standard deviations above average. For reference only — does not influence ranking or filtering logic.
μ (mu)
Mean of 3-year daily radar scores (all days) Arithmetic mean of all radar scores recorded over the rolling 3-year lookback. Serves as the baseline for Z-Score normalization.
σ (sigma)
Standard deviation of 3-year daily radar scores Measures the historical spread of daily radar scores. A wider spread (high σ) means the ticker's momentum is more volatile day-to-day; a narrow spread means its score is more stable. Used as the denominator in Z-Score normalization.
2.6 Output — Signal Surge Amplifier Grid

The final output is a full table of all tickers in the universe, sorted by DISTANCE_% from highest to lowest. Each row shows the complete radar reading for that ticker on the current day — including those with negative distance, which are still displayed for reference. Only tickers with DISTANCE_% above zero are forwarded as candidates to the Sniper Validator for deeper analysis.

OUTPUT RANK TICKER LAST_PRICE MOMENTUM_14D VOL_SURGE RANGE_POS_325 RADAR_SCORE THRESHOLD DISTANCE_% Z_SCORE
RANK
Ordinal rank by DISTANCE_% Rank 1 = highest distance above threshold. Re-computed daily.
TICKER
Stock symbol Exchange ticker symbol. All tickers in the universe appear in this table regardless of distance. Only those with DISTANCE_% > 0 are exported as Sniper candidates.
03 Sniper Validator
Sniper Page ▶

Sniper Validator receives the candidates that passed Radar's distance gate and subjects each one to a full event-based backtest. The goal is to answer two independent questions: does this signal actually make money (edge), and is that performance consistent enough to be trusted (quality)?

Both dimensions are scored independently on a 0–1 scale, then combined into a final Sniper Score (0–100) that drives the ranking table and the per-ticker conviction verdict.

3.1 Event-Based Backtest

For each candidate ticker, the engine replays the past 3 years of daily data and identifies every day on which the Radar score exceeded that ticker's rolling threshold. Each such day is recorded as a Signal Day — a historical moment where the system would have triggered an entry. From each signal day, forward returns are measured across three horizons to simulate actual trade outcomes.

INPUT TICKER DISTANCE_% > 0 (from Radar)
OUTPUT SIGNAL_DAYS dataset ENTRY price per signal RETURN_5D / 10D / 20D per signal
3.2 Backtest Metrics — Win Rate & Avg Return

Across all signal days, six aggregate metrics are computed per ticker — three win rates and three average returns, one for each forward horizon. These six values are the foundational inputs to the entire edge and quality pipeline.

OUTPUT WR_5 WR_10 WR_20 AVG_5 AVG_10 AVG_20
WR_5 / 10 / 20
Win rate — % of signal days with positive forward return Percentage of all signal days where the price was higher than entry after 5, 10, or 20 trading days respectively. A WR of 75 means 3 out of 4 historical signals closed in profit at that horizon. Displayed with color coding: bright green ≥ 70%, green ≥ 55%, orange ≥ 40%, red below 40%.
AVG_5 / 10 / 20
Average return (%) across all signal days — expected value Mean percentage return measured from signal day entry to the close at 5, 10, or 20 trading days. Positive values are green; negative values are red. Equivalent to the expected value of a single trade at that horizon — also used directly in the Portfolio Planner as a forward return estimate.
3.3 Edge Score — Profitability

Edge measures the risk-adjusted expected value of the signal across all three time horizons. Each horizon produces its own edge value by weighting average return by win rate, then the three are averaged into a single raw score. A positive edge means the signal has historically produced a net positive outcome; zero or below means it has not.

E₅= AVG_5 × WR_5 100    — same for E₁₀, E₂₀
EDGE_RAW = E₅ + E₁₀ + E₂₀ 3
EDGE_NORM = tanh(EDGE_RAW / 3) + 1 2 → range 0..1

The tanh normalization compresses extreme outliers without distorting the distribution of typical values. A ticker with an unusually massive average return won't dominate the ranking at the expense of more consistent performers. The normalization is applied only internally for scoring — the table displays the raw pre-tanh value for transparency.

OUTPUT (table) EDGE_SCORE = EDGE_RAW (pre-tanh)
OUTPUT (internal) EDGE_NORM = tanh-normalized, used in Sniper Score
EDGE_SCORE
Raw edge — displayed in table, pre-normalization The uncompressed average of E₅, E₁₀, E₂₀. Shown in the Sniper table and detail page for transparency. Color coded: bright green for high positive edge, green moderate, orange low, red negative. Outlier values are preserved here for full visibility.
EDGE_NORM
Tanh-compressed edge — used internally in Sniper Score EDGE_RAW passed through (tanh(x/3)+1)/2. Maps any real-valued edge into the 0–1 range with diminishing sensitivity to extremes. Not displayed in the table. Used as one of the two inputs to the Sniper Score formula.
3.4 Signal Characteristic

Each ticker is assigned a behavioral label based on the directional pattern of its per-horizon edge values. This describes how the profitability of the signal evolves over time — whether it peaks early, compounds late, or behaves inconsistently.

COMPOUNDER

Edge grows over time: E₂₀ ≥ E₁₀ ≥ E₅ (all positive), or E₂₀ is positive while E₅ is flat or negative. The signal strengthens the longer it is held. Favored for position sizing with longer hold periods.

BURST

Edge peaks early and decays: E₅ ≥ E₁₀ ≥ E₂₀ (all positive), or E₅ is positive while E₂₀ is flat or negative. The signal fires fast and fades. Best captured within the first 5 trading days.

STEADY

All three edges are positive but the pattern is neither strictly accelerating nor strictly decelerating. Consistent performance across all horizons without a dominant direction.

ERRATIC

Mixed edge signs across horizons — no consistent profitability pattern. At least one horizon is negative without a clear directional structure. Treat with caution; the signal behavior is unpredictable.

OUTPUT CHARACTERISTIC
3.5 Sample Score — Signal Frequency

A signal with strong edge metrics but only 2 or 3 historical occurrences is statistically meaningless — the results could be pure luck. Sample Score rewards tickers with more signal days using a square-root scale to reflect diminishing returns: going from 2 to 10 signals matters far more than going from 40 to 50.

SAMPLE_SCORE = min ( √n √50 , 1.0 )
INPUT SAMPLE
OUTPUT SAMPLE_SCORE
SAMPLE
Total number of signal days in the 3-year backtest window Count of historical days where the ticker's Radar score exceeded its rolling threshold. Shown in the Sniper table. Used as the input n to Sample Score.
SAMPLE_SCORE
Statistical credibility of the sample size — range 0..1 Reaches 1.0 at 50 or more signals. Scores below 0.5 correspond to fewer than 13 signals, indicating limited statistical confidence. A score of exactly 0 means the ticker had no historical signal days.
3.6 Cluster Score — Temporal Distribution

A signal that fired 20 times but all within the same 3-week bull run is regime-dependent — it only works in one specific market condition. Cluster Score detects this by grouping consecutive signal days into clusters (gap below 5 trading days = same cluster) and measuring what fraction of signals represent distinct, independent episodes.

CLUSTER_SCORE = n_clusters n_signals

A score near 1.0 means almost every signal occurred in a separate market episode — the strategy has worked across many different regimes. A score near 0.0 means nearly all signals were clustered together, suggesting regime dependency.

OUTPUT CLUSTER_SCORE
CLUSTER_SCORE
Fraction of signals from independent time clusters — range 0..1 Two signal days belong to the same cluster if they are separated by fewer than 5 calendar days. A ticker with 20 signals across 18 distinct clusters scores 0.9 — highly distributed. A ticker with 20 signals in 2 clusters scores 0.1 — highly regime-dependent.
3.7 Stability Score — Return Consistency

Even with good average returns and wide cluster distribution, a signal can still be unreliable if its returns are wildly inconsistent — one massive win skewing an otherwise poor record. Stability Score uses two complementary lenses to assess consistency: magnitude stability (via coefficient of variation) and temporal consistency (via win rate decay over time).

CV Stability — Magnitude Consistency

Coefficient of variation (σ/μ) measures return spread relative to average return. Unlike raw standard deviation, CV is scale-independent — a $5 stock and a $500 stock can be compared fairly. CV Stability = 1 / (1 + |σ/μ|). A tight return distribution around a positive mean scores near 1.0; high variance or near-zero mean scores near 0.

Temporal Consistency — Win Rate Decay

Splits the backtest into chronological first and second halves, then compares win rates (based on 20-day returns). If performance is equally strong in both halves, the strategy is not decaying. Score = 1 − |WR_first − WR_second| / 100. A strategy with identical win rates in both periods scores 1.0; large divergence scores near 0. Below 4 signals, temporal check defaults to 0.5 (neutral).

STABILITY_SCORE = 0.5 × CV_stability + 0.5 × temporal
OUTPUT STABILITY_SCORE
STABILITY_SCORE
Equal-weighted average of CV stability and temporal consistency — range 0..1 A score of 1.0 requires both low return variance (relative to the mean) and stable win rates across the full backtest period. Neither dimension alone is sufficient. Both must hold to indicate a genuinely consistent signal.
3.8 Quality Score — Reliability

The three quality dimensions — sample credibility, temporal distribution, and return consistency — are averaged with equal weight into a single reliability score. Each dimension is independent and tests a different failure mode: too few samples, regime clustering, and return instability. All three must be strong for the quality score to be high.

QUALITY_SCORE = SAMPLE_SCORE + CLUSTER_SCORE + STABILITY_SCORE 3
INPUT SAMPLE_SCORE CLUSTER_SCORE STABILITY_SCORE
OUTPUT QUALITY_SCORE
QUALITY_SCORE
Composite reliability score — range 0..1 Displayed in the Sniper table. Color coded: bright green ≥ 0.7, green ≥ 0.55, orange ≥ 0.4, red below 0.4. A high quality score without positive edge does not guarantee a good Sniper Score — edge is the primary gate.
3.9 Sniper Score — Final Conviction

Sniper Score is the core output that drives ranking. It combines edge and quality into a single 0–100 conviction score, but the formula deliberately applies an asymmetric penalty: tickers with zero or negative edge are not simply ranked lower — they are mathematically suppressed regardless of quality. A perfectly reliable signal with no historical profitability is not a trading opportunity.

if EDGE_RAW ≤ 0: SNIPER_SCORE = EDGE_NORM × QUALITY_SCORE × 100
if EDGE_RAW > 0: SNIPER_SCORE = EDGE_NORM + QUALITY_SCORE 2 × 100

When edge is negative, the score becomes a product rather than an average — both factors multiply each other, creating a double-penalty that prevents quality alone from rescuing an unprofitable signal. When edge is positive, edge and quality are weighted equally, rewarding tickers that are both profitable and consistent. Scores below 50 are considered low conviction regardless of other metrics.

INPUT EDGE_NORM QUALITY_SCORE EDGE_RAW (gate)
OUTPUT SNIPER_SCORE
SNIPER_SCORE
Final conviction score — range 0..100, primary sort key Drives the ranking order of the Sniper table. Scores ≥ 75 = S-Tier (high conviction); ≥ 60 = A-Tier (strong); ≥ 50 = B-Tier (moderate); below 50 = C-Tier (avoid). A ticker with negative edge is structurally capped below 50 due to the multiplicative penalty.
3.10 Conviction Verdict

Every ticker in the Sniper table receives a verdict label derived directly from its Sniper Score. The verdict is displayed prominently on the per-ticker detail page alongside the Sniper Score and characteristic type.

💎 S-TIER — HIGH CONVICTION  ≥ 75

Strong edge confirmed by strong reliability. The signal is both profitable and consistent across historical regimes. Highest priority for position consideration.

🥇 A-TIER — STRONG SIGNAL  ≥ 60

Good combination of profitability and reliability. A reliable candidate with meaningful historical edge. Worth analysis before entry.

🥈 B-TIER — MODERATE SIGNAL  ≥ 50

Marginal conviction. Either edge or quality is weaker than ideal. Acceptable for consideration but requires additional context before entry.

🥉 C-TIER — AVOID  < 50

Insufficient edge, poor reliability, or both. Structurally below the conviction threshold. Not recommended for position consideration under this system.

3.11 Sharia Compliance

For Muslim investors, each ticker in the Sniper table is tagged with its sharia compliance status sourced directly from Zoya Finance. The data is scraped on each run and displayed transparently in both the main table and the per-ticker detail page. Possible values are Halal, Not Halal, or Not Covered (no Zoya data available for that ticker).

OUTPUT SHARIA
3.12 Per-Ticker Detail Page

Each ticker in the Sniper table is clickable and opens a dedicated detail page. The page consolidates all computed metrics into a structured breakdown to support manual review before any position decision.

Radar Overview

Displays last price, current Radar Score vs the rolling 95th-percentile threshold, and a confirmation status (Radar Confirmed if DISTANCE_% > 0). Provides immediate context on why this ticker was surfaced today.

Robustness & Consistency (Reliability)

Shows the three quality sub-scores — Sample Signals count, Sample Quality score, Cluster Spread score, and Stability score — alongside the composite Quality Score and its tier label. Color coded consistently with the main table.

Average Strategy Performance (Profitability)

Presents the 3×4 stress-test grid: for each of the three horizons (5D, 10D, 20D), shows average return, win rate, average winning trade return, and average losing trade return. The last two columns (avg win / avg loss) are additional detail not shown in the main table. Edge Score and its tier label appear alongside.

10 Recent Signals — Regime Check

Lists the 10 most recent signal days in chronological order, with the Radar Score at entry, entry price, and forward returns at all three horizons with W/L outcome. Used to visually assess whether recent signals are performing consistently.

Complete Power Ranking

All historical signal days sorted by Radar Score (descending) — showing the strongest signal occurrences across the entire 3-year backtest window. Entry price and all three forward return columns included. Useful for understanding what the ticker looks like during its strongest signal moments.

Final Conviction Panel

Displayed top-right on the detail page. Shows Sniper Score prominently, the Characteristic label (COMPOUNDER / BURST / STEADY / ERRATIC), and the full Verdict tier (S / A / B / C). This is the summary conclusion of the entire Sniper analysis for this ticker.

3.13 Output — Backtest Performance Protocol

The final output is a ranked table of all candidates that passed the Radar distance gate, sorted by SNIPER_SCORE from highest to lowest. Each row represents a ticker that has been fully processed through the edge and quality pipeline. Clicking any ticker opens its dedicated detail page with the complete per-ticker breakdown.

OUTPUT RANK TICKER WR_5 WR_10 WR_20 AVG_5 AVG_10 AVG_20 SAMPLE EDGE_SCORE CHARACTERISTIC SAMPLE_SCORE CLUSTER_SCORE STABILITY_SCORE QUALITY_SCORE SNIPER_SCORE SHARIA
RANK
Ordinal rank by SNIPER_SCORE Rank 1 = highest Sniper Score among all candidates that day. Re-computed on every run. Unlike the Radar table which ranks all 738 tickers, this table only contains tickers with DISTANCE_% > 0 that completed the full backtest pipeline.
TICKER
Stock symbol — clickable to detail page Clicking the ticker opens the per-ticker detail page (see 3.12) with the full breakdown of radar status, quality metrics, stress-test edge, and historical signal tables. All tickers in this table have passed the Radar distance gate.
04 Portfolio Planner
Planner Page ▶

Portfolio Planner is the execution layer. It takes the same candidate pool as Sniper (all tickers with DISTANCE_% > 0) and presents them as interactive cards designed for position-building decisions — not discovery or analysis, but the final step of constructing an actual basket.

The page is structured around three layers of sanity check before committing to a position: the card itself (Layer 1), the stress test popup (Layer 2), and the full Sniper detail page accessible via the ticker (Layer 3).

4.1 Input

Planner reads from the same pipeline output as Sniper. All tickers that passed the Radar distance gate and completed the full backtest pipeline are displayed here, sorted by Sniper Score descending — identical ranking order to the Sniper table.

INPUT TICKER (DISTANCE_% > 0) SNIPER_SCORE CHARACTERISTIC SHARIA AVG_5 / AVG_10 / AVG_20 WR_5 / WR_10 / WR_20 SAMPLE
4.2 Ticker Card — Layer 1 Overview

Each candidate is presented as a card with a checkbox on the left. The card surface shows everything needed for a quick first-pass judgment without opening any popup. The checkbox color reflects selection state: orange when unselected, green when selected.

Ticker & Identity

Ticker symbol displayed prominently. Below it, the signal characteristic (COMPOUNDER / BURST / STEADY / ERRATIC) and sharia status. Clicking the ticker name opens the full Sniper detail page for that ticker (Layer 3).

TF Dropdown & Sniper Score

A per-card time-frame selector (5D / 10D / 20D). Switching TF immediately updates the EV value shown on the card and in the footer basket. The Sniper Score is displayed below the TF selector as the conviction anchor — it does not change with TF.

EV & Allocation Box

The right block shows Expected Value for the selected TF and the score-weighted allocation percentage (only populated when the checkbox is selected). Clicking this box opens the Stress Test popup (Layer 2).

4.3 Expected Value (EV)

EV represents the probability-weighted average outcome of a single trade at the selected time horizon. It accounts for both the frequency of wins and the magnitude of each outcome — a more complete picture than win rate or average return alone.

EV = (WR% × AvgWin ) + ((1 − WR%) × AvgLoss )

In practice, EV computed this way is mathematically equivalent to AVG_ret — the simple average return across all signal days at that horizon. AVG_ret is displayed on the card as a directly interpretable number: the average percentage return historically generated by this signal at this hold period. The full EV formula is shown in the Stress Test popup for transparency.

INPUT WR% (per TF) AvgWin (per TF) AvgLoss (per TF)
OUTPUT EV updates live when TF changes
EV
Expected value of a single trade at the selected horizon Positive EV means the signal is historically profitable at that hold period. Negative EV means the opposite — the signal loses money on average at that TF even if win rate is above 50% (due to asymmetric loss magnitude). Displayed as a percentage. Updates immediately when the TF dropdown is changed.
AvgWin
Average return on winning trades at this TF Mean percentage return across only the signal days that closed positive at the selected horizon. Visible in the Stress Test popup.
AvgLoss
Average return on losing trades at this TF — typically negative Mean percentage return across only the signal days that closed negative at the selected horizon. Displayed as a negative number in the Stress Test popup.
4.4 Score-Weighted Allocation

When one or more tickers are selected via checkbox, each selected ticker receives a portfolio allocation proportional to its Sniper Score relative to the total score of the selected basket. Higher conviction tickers automatically receive a larger slice. Allocation recalculates in real-time as tickers are added or removed.

Alloc_i = SNIPER_SCORE_i Σ SNIPER_SCORE (selected) × 100

Unselected tickers show a dash in the allocation field. The sticky footer displays the full basket summary: all selected tickers with their allocation chips, a count of selected positions, and the portfolio-level average EV.

INPUT SNIPER_SCORE (selected tickers)
OUTPUT ALLOC_% AVG_EV (basket)
ALLOC_%
Score-weighted portfolio allocation per selected ticker Percentage of the total portfolio suggested for this ticker based on its Sniper Score weight within the selected basket. Updates live as the basket changes. Displayed on the card and as a chip in the footer.
AVG_EV
Simple average EV across all selected tickers Arithmetic mean of EV values for all tickers currently checked, at their individually selected TFs. Displayed in the footer as the portfolio-level expected return estimate. Updates live.
4.5 Stress Test Popup — Layer 2 Sanity Check

Clicking the EV/Alloc box on any card opens a per-ticker stress test popup. This is the second layer of review — it breaks the EV figure down into its underlying components across all three time horizons, so the user can see not just what the expected return is, but how it is constructed and whether it holds across different hold periods.

Per-Horizon Breakdown (5D / 10D / 20D tabs)

For the selected horizon tab: Win Rate, Loss Rate (= 1 − WR%), Avg Win, Avg Loss, EV, and Sample (N). Allows direct comparison of signal behavior at short, medium, and long hold periods before committing to a TF choice.

Formula Reference

The popup displays the EV formula inline: EV = (WR% × AvgWin) + (LR% × AvgLoss), where LR% = 1 − WR%. Serves as a reminder that EV is not just average return but a probability-weighted outcome accounting for loss magnitude.

Allocation Reminder

The popup also displays the allocation formula: Alloc = Score / Total Score. Reinforces that allocation is driven purely by Sniper Score weight, not by EV magnitude or manual input.

4.6 Sniper Detail — Layer 3 Deep Dive

Clicking the ticker name on any card navigates to the full Sniper detail page for that ticker (documented in 3.12). This is the deepest level of review available — the complete backtest history, regime check, quality breakdown, and conviction verdict. Intended for cases where the card and stress test alone are not sufficient to make a confident entry decision.

4.7 Output — Expected Value Forge Engine

The Planner's decision output is not a single table but a live basket built interactively by the user. The three main outputs — EV per ticker, allocation per ticker, and portfolio average EV — together form the execution blueprint for the selected positions.

OUTPUT EV (per ticker, per TF) ALLOC_% (per ticker) AVG_EV (basket)
EV (per ticker)
Expected value at the user-selected time horizon Shown on each card. Updates when the TF dropdown is changed. Positive EV indicates the signal is historically profitable at that hold period; negative EV means it is not. Primary decision input per position.
ALLOC_%
Score-weighted allocation for each selected ticker Only populated for checked tickers. Recalculates live as the basket changes. Shown on the card and as a labeled chip in the sticky footer. Sums to 100% across all selected positions.
AVG_EV
Portfolio-level average expected value Simple average of EV across all currently selected tickers, each at their individually chosen TF. Displayed in the sticky footer. The headline number representing the expected return of the full basket as constructed.
05 Tracker Matrix
Tracker Page ▶

Tracker Matrix is a post-mortem surveillance layer — not a decision tool. While Radar, Sniper, and Planner recalculate fresh each day, Tracker appends daily and accumulates a running record of every ticker that has been active in the signal pipeline.

Its purpose is to provide a historical view of how radar distance, price, and sniper conviction have evolved day by day for each candidate — enabling retrospective analysis of signal behavior over time.

5.1 Data Structure — Monthly Append

Data is organized by calendar month, starting from January 2026. Each month has its own view accessible from the landing page. Rows are trading days only — weekends and market holidays are excluded. Columns are tickers, each split into three sub-columns. One new row is appended every trading day automatically.

Row — Trading Date

Each row represents one trading day. Dates run in descending order (most recent at top). Only market-open days are included — no gaps for weekends or holidays.

Column — Ticker (3 sub-columns each)

Each ticker occupies three sub-columns: RADAR, PRICE, and SNIPER. The set of tracked tickers expands as new candidates appear, and contracts as tickers exit their 20-day tracking window.

5.2 Ticker Inclusion — 20-Day Window Logic

A ticker enters the Tracker the first day its DISTANCE_% exceeds zero — meaning it passed the Radar gate and became a Sniper candidate. From that point, a 20-trading-day window is opened. The ticker remains tracked for the full 20 days regardless of whether it continues to clear the Radar threshold on subsequent days.

If the ticker re-triggers (DISTANCE_% > 0 again) before the window closes, the window resets from that new date. A ticker exits the Tracker only when 20 trading days have elapsed since its last positive distance reading. This ensures the full forward return period referenced by the Sniper backtest is always observable.

Why keep tickers when DISTANCE_% drops below zero?

Discarding a ticker the moment it exits radar range would eliminate the ability to track its price behavior post-signal — which is precisely the period the backtest is measuring. The 20-day window preserves the full forward horizon for every signal day, making post-mortem analysis meaningful.

5.3 Sub-Columns per Ticker

Each tracked ticker exposes three daily data points in the matrix. Together they provide a complete picture of signal strength, price movement, and conviction status for every day the ticker is in the tracking window.

COLUMNS RADAR PRICE SNIPER
RADAR
Daily DISTANCE_% — radar score vs rolling threshold The distance percentage for that ticker on that trading day. Positive values are colored green (brighter and more saturated as distance grows); negative values are red. Shows how far above or below the signal threshold the ticker sits each day throughout the tracking window.
PRICE
Closing price — colored by daily price change The official closing price for that ticker on that trading day, sourced at 16:00 EDT. Color reflects the direction of the day's price change: green for up, red for down, neutral for flat. Enables visual tracking of price trajectory relative to signal days.
SNIPER
Sniper Score — only shown when DISTANCE_% > 0 Displays the Sniper Score (0–100) for that ticker on days where its radar distance is positive. Shows a dash when DISTANCE_% ≤ 0, since no new Sniper calculation is triggered on those days. Color follows conviction tier: bright green for S-Tier, green for A-Tier, orange for B-Tier, red for C-Tier.
5.4 Navigation & Utility Features

Several tools are provided to make the matrix easier to navigate and analyze without leaving the page.

Monthly Navigation

The landing page lists all available months as selectable buttons, most recent first. Each month opens its own full matrix view. Data accumulates from January 2026 onward, with a new month added automatically at the start of each calendar month.

Ticker Search

A search field filters the matrix columns in real-time by ticker symbol. Useful when the tracked universe grows wide and horizontal scrolling becomes tedious. Partial matches are supported.

Price Change Helper

A small calculator at the bottom of the matrix page. Enter any two prices (e.g. closing price on signal day → closing price on a later date) and it instantly computes the percentage change. Useful for quickly measuring actual trade outcomes against signal day entry without manual calculation.

Ticker → Yahoo Finance

Clicking any ticker column header opens that ticker's Yahoo Finance page in a new tab. Provides direct access to chart, fundamentals, and news without needing to navigate away from the system manually.

5.5 Column Legend

A legend is displayed below the matrix for quick reference.

RADAR
Definition shown in legend Distance % above threshold — how far above (or below) the ticker's rolling 95th percentile threshold its current Radar Score sits.
PRICE
Definition shown in legend Close price at 16:00 EDT. Color reflects day-over-day change direction.
SNIPER
Definition shown in legend Edge × Quality composite score (0–100). Only displayed on days when DISTANCE_% is positive. Dash otherwise.
06 Alpha Executor
Executor Page ▶

Alpha Executor is a rules-based simulation engine — not a live trading bot and not connected to real capital. It answers a single question: what would have happened if a trader followed the system's recommendations strictly, every cycle, without deviation?

All positions, returns, and equity figures are purely hypothetical projections based on historical closing prices. This module exists to evaluate the system's aggregate signal quality over time — not to issue trade instructions.

6.1 Simulation Rules

The simulation operates under a fixed, unchanging ruleset. No overrides, no manual selections, no characteristic or sharia filtering — the system picks mechanically based on rank alone.

Starting Equity

The simulation begins with a normalized equity base of 100 on January 2, 2026. This is a unit value — not a currency amount — chosen to make percentage returns directly readable as equity levels (e.g. equity 117.74 = +17.74% total return).

Entry Selection — Top 5 by Sniper Score

At the start of each batch, the system selects the 5 tickers with the highest Sniper Score on that day — regardless of characteristic, sharia status, sector, or any other filter. Pure score-rank selection only.

Allocation — Score-Weighted

Each of the 5 selected tickers receives a weight proportional to its Sniper Score relative to the total of the 5 scores — identical to the Planner's allocation formula. Higher conviction tickers receive a larger slice of equity.

Hold Period — 20 Trading Days Fixed

All 5 positions are held for exactly 20 trading days. There is no early exit, stop-loss, or take-profit mechanism. The system holds through the full window regardless of intraperiod price behavior.

Rebalance — Chained Equity

On trading day 21 (the first day after exit), the simulation rebalances into a new top-5 selection. The new equity base is whatever the portfolio is worth at exit — not reset to 100. Returns compound across batches, creating a chained equity curve that reflects cumulative performance.

INPUT SNIPER_SCORE (daily top 5) CLOSING PRICES (20d forward) SPY daily prices (benchmark)
6.2 Batch Mechanics

Each 20-day hold cycle is called a batch. Batches are numbered sequentially from Batch 1. The system runs one batch at a time — there is no overlap between batches and no idle cash between cycles. The equity is always fully deployed.

Batch N
One complete 20-trading-day hold cycle Starts on the rebalance day with a new top-5 selection. Ends exactly 20 trading days later. The dashboard shows the current batch number and which day within the batch the simulation is on (e.g. Day 6 / 20).
Rebalance Day
Day 21 — exit previous batch, enter new batch All previous positions are closed at the day's closing price. New top-5 tickers are selected from that day's Sniper output. New allocation is computed and the cycle restarts. Marked as vertical dashed lines on the equity curve chart.
STATUS
Position status in the current batch holdings table Always displays as CLOSED in the current batch holdings — because the simulation runs once per day after market close, all positions are evaluated at closing prices. There is no intraday open state tracked.
6.3 Benchmark — SPY Rebased

Performance is benchmarked against SPY — the SPDR S&P 500 ETF, which tracks the S&P 500 index and is the most widely traded US equity benchmark. SPY is chosen because it is directly tradable (unlike the index itself), making the comparison an apples-to-apples evaluation against a real passive alternative.

SPY is rebased to 100 at the same start date (January 2, 2026) and rebalanced on the same cycle dates as the Alpha Executor — though SPY rebalances have no practical effect since the holding is always SPY. This ensures both equity curves share an identical starting point and time scale.

OUTPUT VS BENCHMARK (pts) VS SPY (%)
VS BENCHMARK (pts)
Absolute equity gap between portfolio and SPY Current portfolio equity minus current SPY rebased equity. A positive value means the portfolio is ahead of the passive benchmark in absolute unit terms.
VS SPY (%)
Return differential vs SPY since inception Portfolio total return minus SPY total return since January 2, 2026. The primary measure of whether the system is adding value over passive indexing.
6.4 Dashboard — Hero Metrics

The top section of the dashboard displays five headline figures updated daily after market close.

OUTPUT CURRENT EQUITY TOTAL RETURN % MAX DRAWDOWN ACTIVE BATCH VS BENCHMARK
CURRENT EQUITY
Portfolio unit value today — started at 100 The current value of the simulated portfolio expressed in equity units. Directly readable as a return: equity of 117.74 = +17.74% since inception.
TOTAL RETURN %
Cumulative return since January 2, 2026 (Current Equity − 100) / 100 × 100. The headline performance figure of the simulation since its start date.
MAX DRAWDOWN
Largest peak-to-trough equity decline — risk measure The maximum percentage decline from any equity peak to the subsequent trough, measured across the full simulation history. Expressed as a negative percentage. Indicates the worst historical loss scenario an investor following the system would have experienced.
ACTIVE BATCH
Current batch number and day progress Displays the batch number (e.g. #4) and which trading day within the 20-day window is current (e.g. Day 6 / 20). Resets to Day 1 / 20 on each rebalance.
6.5 Equity Curve

The equity curve plots the full daily history of both the portfolio and SPY from inception to today. It is the primary visual for assessing strategy behavior over time.

Portfolio Equity (orange solid line)

Daily closing equity of the Alpha Executor simulation. Each point represents the portfolio's unit value at that day's close, accounting for all holdings weighted by allocation.

SPY Rebased (blue dashed line)

SPY's daily price rebased to 100 at inception. Plotted on the same axis as the portfolio equity for direct visual comparison. Divergence upward means the system is outperforming the passive benchmark.

Rebalance Markers (vertical lines)

Vertical dashed lines mark each rebalance day — the start of a new batch. Labeled "R" on the chart. Allow visual assessment of which market periods each batch covered and how each cycle contributed to overall equity.

Hover / Tap Detail

Hovering or tapping any point on the curve shows the date, portfolio equity, SPY equity, and the portfolio's daily percentage change for that day. Enables inspection of specific days without navigating away.

6.6 Performance Stats

A set of risk and return statistics computed across the full daily return history of the simulation. Updated daily after close.

OUTPUT AVG DAILY RETURN DAILY VOLATILITY BEST DAY WORST DAY BEST CYCLE WORST CYCLE WIN RATE (DAILY)
AVG DAILY RETURN
Mean of all daily portfolio returns since inception Simple arithmetic mean of day-over-day equity percentage changes. Positive values indicate the portfolio has been growing on average each day.
DAILY VOLATILITY
Standard deviation of daily returns Measures day-to-day variability of portfolio equity changes. Higher volatility means larger swings in either direction.
BEST / WORST DAY
Single best and worst daily equity change % The maximum and minimum one-day portfolio return recorded since inception. Useful for understanding the tail behavior of the strategy.
BEST / WORST CYCLE
Best and worst completed batch return % The highest and lowest total return recorded across all completed 20-day batches. Gives a sense of cycle-level performance range.
WIN RATE (DAILY)
% of trading days where portfolio closed higher than previous day A simple daily win/loss ratio across all simulation days. Displayed with a progress bar for visual reference. Does not measure trade-level outcomes — only daily equity direction.
6.7 Current Batch Holdings

Displays the five tickers currently held in the active batch, with their key position details. The table is static within a batch — holdings do not change until the next rebalance day.

COLUMNS TICKER SNIPER SCORE WEIGHT ENTRY RETURN STATUS
SNIPER SCORE
Conviction score at batch entry date The Sniper Score recorded on the rebalance day when this ticker was selected. Determines both selection eligibility and weight. Does not update during the hold period.
WEIGHT
Score-weighted allocation % at entry Each ticker's Sniper Score divided by the sum of all 5 scores, multiplied by 100. Reflects how much of the total equity was deployed into this position.
ENTRY
Closing price on rebalance day The price at which the simulation entered this position — the closing price of the rebalance day. Used as the reference for return calculation.
RETURN
Current return from entry to today's close (Today's close − Entry) / Entry × 100. Updated daily. Green for positive, red for negative.
STATUS
Always CLOSED — end-of-day evaluation only The simulation evaluates positions at closing prices after market close. There is no intraday open state — all positions are considered closed at the daily settlement price.
6.8 Last 3 Completed Cycles

A summary of the three most recently completed batches, displayed for quick historical context without needing to inspect the full equity curve.

COLUMNS CYCLE PERIOD RETURN EQUITY END
PERIOD
Start date → end date of the batch The entry date (rebalance day) and exit date (day 20) for that completed cycle. Both are trading days — weekends and holidays excluded.
RETURN
Portfolio return for that 20-day cycle Weighted average of the 5 position returns across the full hold period, proportional to each ticker's allocation weight at entry.
EQUITY END
Portfolio equity unit value at batch exit The equity value on the last day of that batch — which becomes the starting equity for the next batch. Shows the compounding progression across cycles.

Project Status

This system is currently under active research and development.
Signal quality modeling, threshold optimization, and robustness testing
are ongoing. Results should be considered experimental until
further validation is completed.