Methodology
How every figure in the workspace is produced: the dataset, each measure's definition, the model specifications and estimation, the flag rules, and how the models were checked. Definitions are written once and shared by every screen.
Data
The workspace runs on one reproducible synthetic dataset: 26 explicitly fictional companies (SAMPLE-A to SAMPLE-Z) across 11 sectors and a generated benchmark, BENCH. It is not market data, is not calibrated to any real security, and is not a record of performance.
756 weekday sessions run from 2023-10-27 to 2026-09-18. Market holidays are not modelled. Prices are illustrative USD per share, rounded to cents; every bar satisfies low ≤ open, close ≤ high.
Point-in-time policy: every calculation at an as-of date receives series truncated at that date, so no measure, model fit or flag can use a later observation. An automated test scrambles all data after an as-of date and confirms that nothing computed at that date changes.
Missing-history policy: a measure is shown as unavailable (–) until its full lookback exists; a shortened window is never substituted.
Generator structure
- Market factor. A two-state Markov regime (calm / stressed, daily switching probabilities 1.2% and 5.5%) sets the mean and volatility of the common return.
- Sector factors. One factor per sector, more volatile in the stressed regime, creates correlation clusters.
- Company returns. Beta to the market, a sector loading, GARCH(1,1) idiosyncratic shocks, rare jumps and a slow deterministic trend wave.
- Cointegrated pairs. SAMPLE-M on SAMPLE-E and SAMPLE-R on SAMPLE-H share a common stochastic trend by construction, so the cointegration tests can be checked against a known answer.
- Bars and volume. Open, high and low are drawn consistently with each session's volatility; volume responds to move size, jumps and the regime.
- Reproducibility. Seed 20260918; each component draws from its own seeded stream, so the same data are produced on every run.
Measures · 59
Price & returns
- CloseClose
- Final price of the sessionIllustrative USD per share. Synthetic; not a market quotation.
- 1-day return1D
- close[t] / close[t−1] − 1Simple return over one session.
- 1-week return1W
- close[t] / close[t−5] − 1Simple return over five sessions.
- 1-month return1M
- close[t] / close[t−21] − 1Simple return over 21 sessions.
- 3-month return3M
- close[t] / close[t−63] − 1Simple return over 63 sessions.
- 6-month return6M
- close[t] / close[t−126] − 1Simple return over 126 sessions.
- 12-month return12M
- close[t] / close[t−252] − 1Simple return over 252 sessions.
Trend & momentum
- Trend classificationTrend
- Uptrend: close > SMA50 > SMA200 · Downtrend: close < SMA50 < SMA200 · otherwise MixedThe report-sample classification, unchanged.
- Distance from SMA50vs SMA50
- close / SMA50 − 1SMA50 is the mean of the latest 50 closes.
- Distance from SMA200vs SMA200
- close / SMA200 − 1SMA200 is the mean of the latest 200 closes.
- Momentum20Mom20
- close[t] / close[t−20] − 1The report-sample momentum measure, unchanged.
- 12-1 month momentum12-1M
- close[t−21] / close[t−252] − 1Twelve-month return skipping the latest month, the conventional cross-sectional momentum horizon.Reference: Jegadeesh & Titman (1993)
- Trend t-statistic (63d)Trend t
- t-ratio of b in ln(close) = a + b·time, OLS over 63 sessionsStrength and consistency of the log-price slope. |t| above about 2 indicates a slope distinguishable from zero under OLS assumptions, which serial correlation weakens.
- Trend slope (63d, annualized)Slope
- 252 × b from the same regressionAnnualized log-price drift over the window.
- Trend fit R²R²
- R² of the 63-session log-price regressionShare of log-price variation explained by a straight line.
- RSI(14)RSI
- 100 − 100 / (1 + avg gain / avg loss), Wilder smoothing, 14 sessionsBounded 0-100 oscillator of recent gains against losses.Reference: Wilder (1978)
- MACD histogram (% of price)MACD h
- (MACD − signal) / close; MACD = EMA12 − EMA26, signal = EMA9 of MACDScaled by price so values are comparable across companies.
- ADX(14)ADX
- Wilder average of DX = 100 × |+DI − −DI| / (+DI + −DI)Strength of directional movement regardless of direction; readings above 25 are conventionally treated as directional.Reference: Wilder (1978)
Relative strength
- 20-day relative performanceRS20
- Momentum20(company) − Momentum20(BENCH)The report-sample relative measure, in percentage points. Not RSI.
- 63-day relative performanceRS63
- 3-month return − BENCH 3-month returnDifference in simple returns, percentage points.
- 126-day relative performanceRS126
- 6-month return − BENCH 6-month returnDifference in simple returns, percentage points.
- Relative-strength level (z)RS lvl z
- (ln(close/BENCH)[t] − mean) / sd over the trailing 126 sessionsWhere the price ratio sits within its own recent range. Used as the horizontal axis of the rotation map.
- Relative-strength momentum (Δz, 10d)RS mom
- RS level z[t] − RS level z[t−10]Direction the relative-strength level is moving. Vertical axis of the rotation map.
Volatility, drawdown & loss
- Volatility20Vol20Risk
- sd(20 log returns, denominator 19) × √252The report-sample close-to-close volatility, annualized.
- Volatility60Vol60Risk
- sd(60 log returns) × √252Slower close-to-close volatility.
- Yang-Zhang volatility (20d)YZ20Risk
- σ²_overnight + k·σ²_open-close + (1−k)·σ²_RS, k = 0.34 / (1.34 + (n+1)/(n−1))Drift-independent estimator using open, high, low and close; efficient and robust to opening gaps.Reference: Yang & Zhang (2000)
- Parkinson volatility (20d)Park20Risk
- √( mean(ln(H/L)²) / (4 ln 2) × 252 )Range-based estimator; ignores opening gaps so tends to read low when gaps are large.Reference: Parkinson (1980)
- EWMA volatilityEWMARisk
- σ²[t+1] = 0.94·σ²[t] + 0.06·r²[t]RiskMetrics exponentially weighted forecast for the next session, annualized.Reference: J.P. Morgan / Reuters (1996)
- GARCH(1,1) next-session volatilityGARCHRisk
- h[t+1] = ω + α·ε²[t] + β·h[t], Gaussian MLE on 504 returns, variance targetingConditional volatility forecast for the next session, annualized.Reference: Bollerslev (1986)
- GARCH persistence (α + β)α+β
- α + β from the fitted GARCH(1,1)How slowly volatility shocks decay; half-life = ln ½ / ln(α + β) sessions.
- Volatility20 percentile (1y)Vol pctlRisk
- Percentile of Volatility20 within its own trailing 252 readingsWhere current volatility sits relative to the company's own year.
- ATR(14) % of priceATR %Risk
- Wilder average true range / closeTypical daily range including gaps.Reference: Wilder (1978)
- Below 252-day closing highDD252Risk
- close / max(closes t−251…t) − 1The report-sample drawdown measure: current distance below the rolling high.
- Maximum drawdown (1y)MaxDDRisk
- min over the year of close / running peak − 1Deepest peak-to-trough decline inside the trailing 252 sessions.
- Ulcer index (126d)UlcerRisk
- √ mean(drawdown%²) over 126 sessionsPenalizes both depth and duration of drawdowns.Reference: Martin & McCann (1989)
- 1-day 95% VaR (historical)VaR95Risk
- −5th percentile of the latest 252 daily log returnsLoss exceeded on about one session in twenty over the trailing year.
- 1-day 97.5% expected shortfallES97.5Risk
- −mean of the worst 2.5% of the latest 252 daily log returnsAverage loss in the tail beyond the 97.5% VaR.
Volume & levels
- Volume vs 20-day averageVol vs 20d
- volume[t] / mean(volume t−19…t) − 1The report-sample volume measure; the average includes the current session.
- Volume z-score (60d)Vol z
- (ln V[t] − mean ln V) / sd ln V over the prior 60 sessionsLog-volume anomaly against the prior quarter; the current session is excluded.
- Average dollar volume (20d)ADV
- mean(close × volume) over 20 sessionsIllustrative USD traded per session.
- Amihud illiquidity (20d)AmihudRisk
- mean(|r| × 10⁴ / (dollar volume / 10⁶))Price impact per USD 1M traded, in basis points. Higher means less liquid.Reference: Amihud (2002)
- Up/down volume ratio (20d)U/D vol
- Σ volume on up closes / Σ volume on down closesAbove 1 means more shares changed hands on rising sessions.
- Position in 52-week rangeRange pos
- (close − 52w low) / (52w high − 52w low)0 at the 52-week low, 100 at the high (intraday extremes).
- Distance from 52-week highvs 52w H
- close / max(high, 252) − 1Uses intraday highs.
- Distance from 20-day VWAPvs VWAP
- close / (Σ typical × volume / Σ volume) − 1, typical = (H+L+C)/3Position against the volume-weighted average of the latest month.
- Bollinger %B%B
- (close − lower) / (upper − lower), 20 sessions, 2 population sd0 at the lower band, 1 at the upper band.Reference: Bollinger (2001)
- Bandwidth percentile (126d)BW pctl
- Percentile of (upper − lower) / middle within 126 sessionsLow readings mark range compression.
Market & regime models
- Beta to BENCH (252d)Beta
- OLS slope of r on r_BENCH over 252 sessionsSensitivity to the synthetic benchmark.
- Alpha (annualized, 252d)Alpha
- 252 × intercept of the market-model regressionAverage return unexplained by BENCH over the window; descriptive, not predictive.
- Market-model R²R² mkt
- R² of r on r_BENCHShare of variance explained by the benchmark.
- Residual volatilityResid σRisk
- sd(regression residual) × √252Company-specific volatility after removing benchmark exposure.
- Downside betaβ downRisk
- cov / var on sessions where BENCH fellSensitivity on down-market sessions only.
- Upside betaβ up
- cov / var on sessions where BENCH roseSensitivity on up-market sessions only.
- High-volatility regime probabilityP(hi-vol)Risk
- Filtered P(state 2 | returns to t), two-state Gaussian HMM on 504 returnsProbability the company is in its higher-volatility state, using returns up to the as-of date only.Reference: Hamilton (1989); Rabiner (1989)
Statistical diagnostics
- Hurst exponent (R/S, corrected)Hurst
- 0.5 + slope of ln(R/S) − ln E[R/S] on ln n, n = 8…126Near 0.5 for independent returns; above suggests persistence, below anti-persistence. Noisy on two years of data.Reference: Hurst (1951); Anis & Lloyd (1976)
- Variance ratio VR(5)VR(5)
- Var(5-day returns) / (5 × Var(1-day returns)), overlapping1 under a random walk; above 1 indicates positive serial correlation.Reference: Lo & MacKinlay (1988)
- VR(5) robust zVR z
- (VR − 1) / √(θ̂ / T), heteroskedasticity-consistent|z| above 1.96 rejects a random walk at 5%.Reference: Lo & MacKinlay (1988)
- ADF statistic (log price, 1y)ADF
- t-ratio of γ in Δy = a + γ·y[t−1] + φ·Δy[t−1] + eMore negative is stronger evidence against a unit root; about −2.87 is the 5% critical value.Reference: Dickey & Fuller (1979); MacKinnon (2010)
- Lag-1 autocorrelationAC(1)
- corr(r[t], r[t−1]) over 252 sessionsSerial correlation of daily returns; about ±0.12 is significant at 5% for 252 observations.
03Models
Range-based volatility estimators
Parkinson: σ² = mean(ln(H/L)²) / (4 ln 2)Garman-Klass: σ² = mean(½ ln(H/L)² − (2 ln 2 − 1) ln(C/O)²)Rogers-Satchell: σ² = mean(ln(H/C) ln(H/O) + ln(L/C) ln(L/O))Yang-Zhang: σ² = σ²_o + k σ²_c + (1 − k) σ²_RS, k = 0.34 / (1.34 + (n + 1)/(n − 1))Estimation · Rolling 20-session windows, annualized with √252. The close-to-close estimator uses the sample standard deviation of log returns.
Outputs · Five comparable volatility series and a current-value comparison table.
Limitations · Parkinson and Garman-Klass assume no drift and no opening gap; Rogers-Satchell allows drift but not gaps; Yang-Zhang handles both. All assume continuous trading within the session.
- Parkinson, M. (1980). The Extreme Value Method for Estimating the Variance of the Rate of Return. Journal of Business, 53(1).
- Garman, M. B. & Klass, M. J. (1980). On the Estimation of Security Price Volatilities from Historical Data. Journal of Business, 53(1).
- Rogers, L. C. G. & Satchell, S. E. (1991). Estimating Variance from High, Low and Closing Prices. Annals of Applied Probability, 1(4).
- Yang, D. & Zhang, Q. (2000). Drift-Independent Volatility Estimation Based on High, Low, Open, and Close Prices. Journal of Business, 73(3).
GARCH(1,1) conditional volatility
r[t] = μ + ε[t], ε[t] = √h[t] · z[t], z ~ N(0, 1)h[t] = ω + α ε²[t−1] + β h[t−1], ω = σ̄² (1 − α − β)Estimation · Gaussian maximum likelihood on the latest 504 daily log returns with variance targeting. Nelder-Mead simplex over a logistic reparameterisation enforcing α, β ≥ 0 and α + β < 1, from three starting points; the best likelihood is kept.
Outputs · ω, α, β, persistence, half-life of shocks, conditional volatility path, next-session forecast and the forecast term structure E[h(t+k)] = σ̄² + (α + β)^(k−1) (h(t+1) − σ̄²).
Limitations · Symmetric response to positive and negative shocks (no leverage term); Gaussian innovations understate tail risk; parameters are re-estimated at each as-of date and can move.
- Bollerslev, T. (1986). Generalized Autoregressive Conditional Heteroskedasticity. Journal of Econometrics, 31(3).
- Nelder, J. A. & Mead, R. (1965). A Simplex Method for Function Minimization. The Computer Journal, 7(4).
EWMA volatility
σ²[t+1] = λ σ²[t] + (1 − λ) r²[t], λ = 0.94Estimation · Seeded with the mean squared return of the first 20 sessions; no parameters are estimated.
Outputs · Next-session volatility forecast; the reference scale for the 3-standard-deviation move flag.
Limitations · Implies no mean reversion of volatility; λ is fixed rather than fitted.
- J.P. Morgan / Reuters (1996). RiskMetrics — Technical Document, 4th edition.
Volatility cone
For horizons h ∈ {10, 21, 42, 63, 126}: distribution of overlapping close-to-close realized volatility over the available historyEstimation · Two years of history to the as-of date.
Outputs · Minimum, 10th, 25th, 50th, 75th, 90th percentiles, maximum and the current reading per horizon.
Limitations · Overlapping windows are highly autocorrelated, so the percentiles carry less information than their count suggests.
- Burghardt, G. & Lane, M. (1990). How to Tell if Options Are Cheap. Journal of Portfolio Management, 16(2).
Two-state Gaussian hidden Markov model
r[t] | s[t] = k ~ N(μ_k, σ²_k), k ∈ {low-volatility, high-volatility}P(s[t] = j | s[t−1] = i) = p_ijEstimation · Baum-Welch expectation-maximization with scaled forward-backward recursions, initialised by splitting returns at the 80th percentile of |r|. States are ordered by volatility. Convergence at a relative log-likelihood change below 10⁻⁸ or 300 iterations.
Outputs · State means and volatilities, transition matrix, expected durations 1/(1 − p_ii), stationary shares, filtered probabilities (information to each date) and smoothed probabilities (information to the as-of date).
Limitations · Two states is a modelling choice; the likelihood can have local maxima; smoothed probabilities for past dates use later data within the window and are labelled as such.
- Hamilton, J. D. (1989). A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle. Econometrica, 57(2).
- Rabiner, L. R. (1989). A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Proceedings of the IEEE, 77(2).
Market model, rolling and Kalman betas
r[t] = α + β r_BENCH[t] + ε[t] (OLS, 252 sessions)State space: [α, β][t] = [α, β][t−1] + η[t], r[t] = α[t] + β[t] r_BENCH[t] + ε[t]Estimation · OLS for the static model and 126-session rolling betas. The Kalman filter is initialised from OLS on the first 60 sessions; state noise variances are 10⁻⁹ (α) and 10⁻⁴ (β) per session.
Outputs · α, β with t-statistics, R², residual volatility, tracking error, up- and down-market betas, capture ratios, and a time-varying β with a 95% band.
Limitations · Single-index model against a synthetic benchmark; state-noise variances are fixed choices that trade responsiveness for stability.
- Kalman, R. E. (1960). A New Approach to Linear Filtering and Prediction Problems. Journal of Basic Engineering, 82(1).
Correlation structure, shrinkage and principal components
Ledoit-Wolf: Σ* = δ m I + (1 − δ) S, with δ estimated from the dataPCA of the sample correlation matrix (cyclic Jacobi eigen-decomposition)Absorption ratio = Σ top-k eigenvalues / Σ all eigenvalues, k = ⌈n / 5⌉Clustering: average linkage on d = √(½(1 − ρ))Estimation · 126-session windows for correlation and PCA; 252 sessions for the basket risk model. Weekly history of the absorption ratio over 52 weeks.
Outputs · Clustered correlation heatmap, shrinkage intensity, eigenvalue spectrum and loadings, absorption ratio and its percentile, average pairwise correlation.
Limitations · Sample windows trade responsiveness for noise; with 26 names and 126 observations the sample correlation matrix is noisy, which is why shrinkage is shown alongside it.
- Ledoit, O. & Wolf, M. (2004). A Well-Conditioned Estimator for Large-Dimensional Covariance Matrices. Journal of Multivariate Analysis, 88(2).
- Kritzman, M., Li, Y., Page, S. & Rigobon, R. (2011). Principal Components as a Measure of Systemic Risk. Journal of Portfolio Management, 37(4).
- Mantegna, R. N. (1999). Hierarchical Structure in Financial Markets. European Physical Journal B, 11(1).
Coverage basket risk decomposition
σ_p = √(w' Σ* w), marginal_i = (Σ* w)_i / σ_p, component_i = w_i · marginal_iDiversification ratio = Σ w_i σ_i / σ_pEstimation · Equal weights across the coverage universe, shrinkage covariance over 252 sessions.
Outputs · Ex-ante volatility, Gaussian and historical VaR, expected shortfall, per-company and per-sector shares of risk.
Limitations · The equal-weight basket is an analytical reference for how risk is distributed across the covered names, not a portfolio, a model allocation or a recommendation.
- Choueifaty, Y. & Coignard, Y. (2008). Toward Maximum Diversification. Journal of Portfolio Management, 35(1).
Value at risk and expected shortfall
Historical: −quantile(r, 1 − c)Gaussian: −(μ + σ z₁₋c)Cornish-Fisher: z* = z + (z² − 1)S/6 + (z³ − 3z)K/24 − (2z³ − 5z)S²/36ES: −mean of returns at or below the (1 − c) quantileEstimation · One-session horizon on the latest 252 daily log returns.
Outputs · VaR at 95% and 99% by three methods; ES at 97.5% and 99%.
Limitations · A single year contains few tail observations; the Cornish-Fisher expansion can misbehave for extreme skewness or kurtosis.
- Cornish, E. A. & Fisher, R. A. (1938). Moments and Cumulants in the Specification of Distributions. Revue de l'Institut International de Statistique, 5(4).
Stationarity and serial-dependence diagnostics
ADF: Δy[t] = a (+ b t) + γ y[t−1] + φ Δy[t−1] + e[t], statistic = t(γ)Variance ratio: VR(q) with the heteroskedasticity-consistent z* statisticHurst: rescaled range with the Anis-Lloyd expected R/S correctionLjung-Box Q(10) on returns and squared returnsEstimation · Two years of daily data; ADF critical values from MacKinnon's response surfaces at the actual sample size.
Outputs · Test statistics, critical values, p-values and the autocorrelation functions of returns and squared returns.
Limitations · Tests have low power on two years of data; running many tests across a universe produces some rejections by chance.
- Dickey, D. A. & Fuller, W. A. (1979). Distribution of the Estimators for Autoregressive Time Series with a Unit Root. Journal of the American Statistical Association, 74(366).
- MacKinnon, J. G. (2010). Critical Values for Cointegration Tests. Queen's Economics Department Working Paper No. 1227.
- Lo, A. W. & MacKinlay, A. C. (1988). Stock Market Prices Do Not Follow Random Walks. Review of Financial Studies, 1(1).
- Hurst, H. E. (1951). Long-Term Storage Capacity of Reservoirs. Transactions of the American Society of Civil Engineers, 116.
- Anis, A. A. & Lloyd, E. H. (1976). The Expected Value of the Adjusted Rescaled Hurst Range of Independent Normal Summands. Biometrika, 63(1).
- Ljung, G. M. & Box, G. E. P. (1978). On a Measure of Lack of Fit in Time Series Models. Biometrika, 65(2).
Engle-Granger cointegration
ln Y[t] = c + h ln X[t] + u[t] (OLS)ADF on û without deterministic terms; two-variable, constant critical valuesEstimation · Two years of log prices for every same-sector pair; Y is the later ticker alphabetically.
Outputs · Hedge ratio, ADF statistic against 1/5/10% critical values, a unit-root check on each leg, spread z-score and mean-reversion half-life.
Limitations · Testing many pairs produces false rejections at the nominal rate; results depend on which series is the dependent variable; the test assumes both legs are I(1), so a leg that is stationary on its own can produce a stationary spread without a shared trend; cointegration can break down.
- Engle, R. F. & Granger, C. W. J. (1987). Co-Integration and Error Correction: Representation, Estimation, and Testing. Econometrica, 55(2).
Technical indicators
RSI(14), ATR(14), +DI/−DI and ADX(14) with Wilder smoothingMACD(12, 26, 9) with SMA-seeded EMAsBollinger bands (20, 2 population sd)Donchian channels (20, 55), rolling VWAP (20), On-Balance VolumeEstimation · Daily bars to the as-of date; indicators are unavailable until their full lookback exists.
Outputs · Chart overlays, oscillator panes and screener columns.
Limitations · Descriptive transformations of price and volume; thresholds such as 70/30 or 25 are conventions, not calibrated levels.
- Wilder, J. W. (1978). New Concepts in Technical Trading Systems.
- Bollinger, J. (2001). Bollinger on Bollinger Bands.
Flag rules · 20
| Rule | Category | Priority | Definition |
|---|---|---|---|
| Close crossed SMA50 | Trend & momentum | medium | Sign change of close − SMA50 between consecutive sessions; touching the average is not a crossing. |
| SMA50 crossed SMA200 | Trend & momentum | high | Sign change of SMA50 − SMA200 between consecutive sessions. |
| Trend classification changed | Trend & momentum | medium | Uptrend (close > SMA50 > SMA200), Downtrend (close < SMA50 < SMA200) or Mixed changed from the prior session. Repeats within three sessions are suppressed. |
| RSI(14) left the 30-70 band | Trend & momentum | low | Wilder RSI(14) crossed above 70 or below 30. |
| MACD line crossed zero | Trend & momentum | low | EMA12 − EMA26 changed sign. |
| ADX(14) rose above 25 | Trend & momentum | low | Wilder ADX(14) crossed above 25, the conventional threshold for a directional move. |
| 20-day relative performance crossed zero | Relative strength | medium | Momentum20 minus BENCH Momentum20 changed sign (the report-sample definition). |
| Entered a relative-strength quintile extreme | Relative strength | medium | Cross-sectional percentile of 63-day relative performance entered the top (≥ 80th) or bottom (≤ 20th) quintile of coverage. |
| Volatility20 above its 90th percentile | Volatility & drawdown | high | Close-to-close Volatility20 crossed above the 90th percentile of its own trailing 252 readings. |
| Volatility20 below its 10th percentile | Volatility & drawdown | low | Volatility20 crossed below the 10th percentile of its own trailing 252 readings. |
| Session move beyond 3 EWMA standard deviations | Volatility & drawdown | high | |log return| exceeded 3 × the prior session's RiskMetrics EWMA daily volatility (λ = 0.94). |
| Crossed 20% below the 252-day high | Volatility & drawdown | high | Close / max(closes, 252 sessions) − 1 crossed −20% in either direction. |
| Bollinger bandwidth at a 126-session low | Volatility & drawdown | low | Bandwidth (upper − lower) / middle of the 20-session, 2σ bands set a 126-session low. |
| New 252-session closing high | Volume & levels | medium | Close at or above every close of the prior 251 sessions, first occurrence in five sessions. |
| New 252-session closing low | Volume & levels | medium | Close at or below every close of the prior 251 sessions, first occurrence in five sessions. |
| Volume anomaly | Volume & levels | medium | z-score of ln(volume) against the prior 60 sessions reached 2.5 or more. |
| Close outside the Bollinger bands | Volume & levels | low | Close moved from inside to outside the 20-session, 2σ Bollinger bands. |
| Kalman beta shift | Market model | medium | State-space (Kalman) beta to BENCH moved by more than 0.25 over 20 sessions. |
| Benchmark regime change | Coverage & benchmark | high | Filtered probability of the high-volatility state in the BENCH two-state HMM (refitted each week-end on data to that date) crossed 50%. |
| Breadth crossed 50% | Coverage & benchmark | medium | Share of covered companies closing above their SMA50 crossed 50%. |
Group percentiles
Group percentiles are the equal-weight mean of each member measure's percentile rank within coverage. They locate a company relative to the other covered names on one dimension; they are not scores, ratings or recommendations.
Trend & momentum
- Distance from SMA200
- 63-day trend t-statistic
- 12-1 month momentum
- 3-month return
Relative strength
- 20-day relative performance
- 63-day relative performance
- 126-day relative performance
- Relative-strength level (z)
Volatility & drawdown
- Volatility20
- GARCH next-session volatility
- 1-day 95% historical VaR
- Depth below 252-day high (deeper ranks higher)
Volume & levels
- Volume vs 20-day average
- Up/down volume ratio
- Position in 52-week range
- Distance from 20-day VWAP
A higher Volatility & drawdown percentile means more risk relative to coverage, and is shown in the adverse colour when elevated.
Validation
Checked live against the generator
Computing.
Covered by the automated test suite
- Normal, chi-square and Student-t functions against tabulated values; OLS, eigen-decomposition, inverse and Cholesky against exact answers.
- All five volatility estimators on simulated diffusions with known volatility; GARCH(1,1) recovering simulated α, β and persistence.
- The HMM recovering a simulated two-state process; ADF separating random walks from stationary series; Hurst, variance ratio and Ljung-Box on independent and autocorrelated data.
- Ledoit-Wolf shrinkage bounds and behaviour, PCA of an equicorrelation matrix, clustering of block structure and Euler risk contributions summing to total risk.
- Kalman beta tracking a structural break without look-ahead; the point-in-time guarantee for every workspace output.
Status and limitations
- Synthetic data only. No licensed market-data source is connected. A client's actual coverage universe and data will replace the demonstration universe once configured.
- Definitions pending approval. Final report definitions, parameters and data references for the Titan Edge Quant service are pending owner approval; this page documents the demonstration build.
- Descriptive, not predictive. Measures and models describe historical behaviour of the synthetic series. Flags, percentiles and regimes are not signals, ratings, forecasts of price or recommendations.
- Statistical caveats. Two to three years of daily data give tests limited power; running many tests across a universe produces some significant results by chance.