Universe: S&P 500 (top 200) |
Period: Jan 2020 – Dec 2024 |
Freq: Daily rebalance
ANNUAL RETURN
+16.8%
+4.2% vs S&P 500
SHARPE RATIO
1.34
Sortino: 1.87
MAX DRAWDOWN
−11.2%
Calmar: 1.50
VaR 95%
0.87%
CVaR: 1.21%
WIN RATE
54.3%
Profit Factor: 1.42
AVG IC / ICIR
0.041
ICIR: 1.12
NAV & EQUITY CURVES Normalised · base = 1.0
DRAWDOWN (%)
ROLLING SHARPE 63-day
MONTHLY RETURNS Heatmap
JFMAMJJASOND
RETURN DISTRIBUTION
CURRENT POSITIONS Weight %
STRATEGY COMPARISON Statistical significance · p-values shown
| Strategy | Ann. Return | Sharpe | Sortino | Max DD | Calmar | VaR 95% | Win Rate | Avg IC | ICIR | t-stat | p-value | Regime |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Momentum L/S | +18.4% | 1.52 | 2.14 | −14.1% | 1.30 | 0.94% | 56.2% | 0.051 | 1.41 | 3.24 | 0.001 | Trending |
| Risk Parity | +12.1% | 1.61 | 2.31 | −6.8% | 1.78 | 0.61% | 52.8% | 0.028 | 0.82 | 2.91 | 0.004 | All regimes |
| Stat Arb | +14.7% | 1.23 | 1.71 | −9.4% | 1.56 | 0.79% | 55.1% | 0.044 | 1.24 | 2.77 | 0.006 | Mean-rev |
| Combined Portfolio | +16.8% | 1.34 | 1.87 | −11.2% | 1.50 | 0.87% | 54.3% | 0.041 | 1.12 | 3.61 | <0.001 | Adaptive |
| S&P 500 BM | +12.6% | 0.74 | 0.98 | −33.9% | 0.37 | 1.42% | 52.1% | — | — | — | — | Passive |
SIGNAL FAMILIES & IC
ALPHA DECAY ANALYSIS Half-life estimation
TECHNICAL INDICATORS
| Signal | Type | IC | Half-life | Status |
|---|---|---|---|---|
| RSI-14 Momentum | Technical | 0.047 | 8d | LIVE |
| MACD Signal Cross | Technical | 0.039 | 12d | LIVE |
| Bollinger %B | Technical | 0.021 | 5d | WEAK |
| ADX Trend Strength | Technical | 0.033 | 15d | LIVE |
| OBV Divergence | Volume | 0.018 | 4d | WEAK |
| VWAP Deviation | Volume | 0.041 | 2d | LIVE |
FACTOR SIGNALS
| Factor | Family | IC | Half-life | Status |
|---|---|---|---|---|
| 12-1M Price Mom | Momentum | 0.058 | 21d | LIVE |
| Earnings Revision | Quality | 0.044 | 30d | LIVE |
| P/B Value Factor | Value | 0.022 | 60d | WEAK |
| ROE Quality | Quality | 0.036 | 45d | LIVE |
| Sector Beta | Cross-asset | 0.029 | 20d | LIVE |
| Index Relative Str | Cross-asset | 0.037 | 10d | LIVE |
ML-ENHANCED SIGNALS
| Model | Type | IC | OOS R² | Status |
|---|---|---|---|---|
| XGBoost Returns | Gradient BT | 0.063 | 0.041 | LIVE |
| Random Forest | Ensemble | 0.051 | 0.033 | LIVE |
| LSTM Seq2Seq | Deep Learning | 0.038 | 0.021 | MONITOR |
| Sentiment NLP | Alt Data | 0.027 | 0.015 | MONITOR |
| Regime HMM | Unsupervised | — | — | ROUTER |
REGIME DETECTION — HMM (3-STATE) Current: TRENDING BULL
⚠ Walk-forward validation active — no look-ahead bias. Train/test split respects temporal order. 5 folds × 252-day OOS windows.
WALK-FORWARD VALIDATION 5 rolling folds · train 3yr / test 1yr
| Fold | Train Period | Test Period | IS Return | OOS Return | IS Sharpe | OOS Sharpe | IS MaxDD | OOS MaxDD | Overfitting? |
|---|---|---|---|---|---|---|---|---|---|
| Fold 1 | Jan 2017 – Dec 2019 | Jan 2020 – Dec 2020 | +21.3% | +8.4% | 1.71 | 0.93 | −9.2% | −28.1% | MODERATE (COVID) |
| Fold 2 | Jan 2018 – Dec 2020 | Jan 2021 – Dec 2021 | +18.9% | +22.6% | 1.48 | 1.83 | −11.4% | −6.3% | LOW |
| Fold 3 | Jan 2019 – Dec 2021 | Jan 2022 – Dec 2022 | +19.7% | −2.1% | 1.54 | −0.18 | −8.8% | −22.4% | HIGH (Rate shock) |
| Fold 4 | Jan 2020 – Dec 2022 | Jan 2023 – Dec 2023 | +16.2% | +24.1% | 1.29 | 1.97 | −13.1% | −7.6% | LOW |
| Fold 5 | Jan 2021 – Dec 2023 | Jan 2024 – Dec 2024 | +17.8% | +18.4% | 1.41 | 1.52 | −10.2% | −9.1% | LOW |
TRANSACTION COST MODEL
| Cost Component | Model | Assumption | Annual Impact |
|---|---|---|---|
| Commission | Fixed per trade | 0.5 bps | −0.31% |
| Bid-Ask Spread | Historical avg | 3.2 bps (large cap) | −0.89% |
| Slippage | Volatility-adj | 1.5 × spread × σ | −0.42% |
| Market Impact | Square-root model | η × √(Q/ADV) | −0.21% |
| Total Cost | — | — | −1.83% / yr |
| Net Return (post-cost) | — | — | +14.97% / yr |
GROSS vs NET PERFORMANCE
MONTE CARLO SIMULATION 1,000 paths · 95% confidence band
MEDIAN FINAL NAV
+152%
over 5yr horizon
95th PERCENTILE
+241%
best-case band
5th PERCENTILE
+48%
worst-case band
P(DRAWDOWN >20%)
12.4%
across all paths
CURRENT VaR 95%
0.87%
daily portfolio
CVaR (ES)
1.21%
expected shortfall
PORTFOLIO VOL
10.4%
annualised
GROSS EXPOSURE
187%
Net: 14% long
PRE-TRADE RISK CHECKS
| Check | Limit | Current | Utilisation | Status |
|---|---|---|---|---|
| Max Single Position | 5.0% | 3.8% | PASS | |
| Gross Exposure | 200% | 187% | WARN | |
| Sector Concentration | 25% | 18.2% | PASS | |
| Daily Turnover | 20% | 11.4% | PASS | |
| Net Market Exposure | ±30% | +14% | PASS | |
| Max Drawdown Trigger | 15% | 11.2% | MONITOR | |
| VaR 1-day 99% | 1.5% | 0.87% | PASS | |
| Correlation to BM | 0.70 | 0.43 | PASS |
SECTOR EXPOSURE BREAKDOWN
STRESS TEST SCENARIOS
| Scenario | Shock | P&L Impact | Recovery Est. | Trigger Action |
|---|---|---|---|---|
| COVID-19 (Mar 2020) | −33% mkt | −8.4% | ~3 months | Reduce gross 30% |
| 2022 Rate Shock | +400bps rates | −6.1% | ~5 months | Reduce duration |
| Flash Crash | −10% in 1 day | −2.8% | ~2 weeks | Circuit breaker |
| Vol Spike (VIX >60) | VIX: 15→65 | −4.2% | ~1 month | Hedge with puts |
| Correlation Breakdown | All ρ→1 | −5.6% | ~6 weeks | Liquidate pairs |
| Liquidity Crisis | Spread ×10 | −3.1% | ~3 weeks | Halt trading |
VOLATILITY REGIME MONITOR
Low vol (σ < 12%)
Med vol (12–22%)
Crisis (σ > 22%)
CURRENT POSITIONS Top 15 by weight
| Ticker | Name | Sector | Weight | Direction | Entry | Last | P&L | VaR Contrib |
|---|
FILL RATE
98.7%
paper trades
AVG IMPL SHORTFALL
2.1 bps
decision vs fill
ORDERS TODAY
47
$3.2M notional
SLIPPAGE (TOTAL)
−0.42%
annualised
EXECUTION ALGORITHM Select for next rebalance
● TWAP (ACTIVE)
Time-Weighted Average Price. Splits order evenly over execution window. Best for low-urgency, stable liquidity.
Window: 30 min | Slices: 10
VWAP
Volume-Weighted Average Price. Follows intraday volume profile. Best when blending with market flow is priority.
Window: 1 day | Volume-tracked
Almgren-Chriss
Optimises tradeoff between market impact and timing risk. Best for large orders where impact is significant.
η = 0.142 | γ = 2.5×10⁻⁶
ORDER LIFECYCLE — FULL TRADE LOG
Filter:
| Order ID | Ticker | Side | Qty | Decision $ | Fill $ | Impl Shortfall | Created | Status | Algo |
|---|
IMPLEMENTATION SHORTFALL — Decision vs Fill Price Last 50 orders
INSTRUMENTS
200
S&P 500 top 200
DATA PERIOD
5 yrs
Jan 2020 – Dec 2024
TOTAL RECORDS
252K
daily OHLCV rows
FEATURES BUILT
47
cross-sectional
DATA PIPELINE STAGES
| Stage | Source | Output | Status |
|---|---|---|---|
| Raw OHLCV Ingest | yfinance / NSE Bhavcopy | ohlcv_raw.parquet | ✓ DONE |
| Corporate Actions | yfinance splits/divs | adjusted_prices.parquet | ✓ DONE |
| Data Quality Checks | Internal validator | quality_report.csv | ✓ DONE |
| Outlier Removal | 3σ winsorise | clean_ohlcv.parquet | ✓ DONE |
| Feature Engineering | TA-Lib + custom | features_pit.parquet | ✓ DONE |
| Signal Generation | Factor + ML models | signals_daily.parquet | ✓ DONE |
| Portfolio Weights | Optimiser output | weights_rebal.parquet | ✓ DONE |
| Trade Log | Backtest engine | trade_log.csv | ✓ DONE |
DATA QUALITY REPORT
| Check | Tickers Affected | Action | Status |
|---|---|---|---|
| Missing values | 7 tickers, 0.3% rows | Forward-fill (max 2d) | CLEAN |
| Stale prices | 3 tickers | Removed from universe | CLEAN |
| Outliers (>3σ) | 12 events | Winsorised | CLEAN |
| Split adjustments | 28 events | Retroactively applied | CLEAN |
| Survivorship bias | S&P 500 2020 universe | Point-in-time membership | CLEAN |
| Look-ahead bias | All features | PIT timestamps enforced | CLEAN |
| Dividend adjustments | 200 tickers | Total return index | CLEAN |
FEATURE ENGINEERING PIPELINE — 47 FEATURES
TECHNICAL (12)
RSI-14, RSI-28, MACD Signal, MACD Hist, BB %B, BB Width,
ADX-14, DI+, DI-, OBV, OBV MA Divergence, ATR-14
PRICE / MOMENTUM (11)
Ret-1d, Ret-5d, Ret-21d, Ret-63d, Ret-252d,
Vol-21d, Vol-63d, Skew-63d, Kurt-63d, Mom-12-1, Reversal-1m
VOLUME & CROSS-ASSET (12)
VWAP Dev, Vol Ratio 5/21, Abnormal Vol,
Sector Corr, Index Beta, Rel Strength vs Sector,
EPS Revision, ROE, P/B, P/E, Debt/Equity, EV/EBITDA
ML FEATURES (8)
XGB Pred Score, RF Pred Score, LSTM Hidden State,
Sentiment Score (GDELT), Regime State (HMM),
Residual Momentum, Idiosyncratic Vol, Factor Exposure Z-score
STAT ARB (4)
Cointegration Z-score, Half-life (Ornstein-Uhlenbeck),
Hedge Ratio, Spread Mean Reversion Signal
DATA SOURCES
yfinance (OHLCV), NSE Bhavcopy,
FRED (macro), GDELT (sentiment),
SEC EDGAR / BSE filings (fundamentals),
OpenBB (aggregated financials)
MANDATORY DATA DELIVERABLE — FILE MANIFEST
| File | Format | Rows | Columns | Description | Bias-Free? |
|---|---|---|---|---|---|
| ohlcv_clean.parquet | Parquet | 252,000 | 7 | Ticker, Date, O, H, L, C, V — adj. for splits/divs | ✓ PIT |
| instrument_universe.csv | CSV | 200 | 6 | Ticker, ISIN, Exchange, Sector, MktCap, Start/End date | ✓ PIT |
| features_pit.parquet | Parquet | 252,000 | 49 | 47 engineered features + ticker + date, point-in-time | ✓ PIT |
| signals_daily.parquet | Parquet | 1,260 | 204 | Daily signal scores per instrument, per strategy | ✓ PIT |
| weights_rebalance.parquet | Parquet | 1,260 | 202 | Portfolio weights at each rebalance date per strategy | ✓ PIT |
| trade_log.csv | CSV | 14,820 | 12 | Entry/exit timestamp, price, qty, costs, strategy | ✓ PIT |
| performance_summary.csv | CSV | 60 | 15 | Monthly metrics per strategy incl. all risk stats | ✓ PIT |
| data_dictionary.md | Markdown | — | — | Field definitions, sources, methodology, units | ✓ |