138 lines
3.9 KiB
JSON
138 lines
3.9 KiB
JSON
{
|
|
"generated_at": "2026-07-19T14:07:37.458454",
|
|
"snapshot": "/Users/taathde3/git/lab/signal_platform/backtest_snapshots/research.sqlite",
|
|
"snapshot_meta": {
|
|
"prod_universe_n": 506,
|
|
"price_symbols_n": 4654,
|
|
"raw_candidates": 2389258,
|
|
"liquid_top_n": 1500,
|
|
"liquid_min_price": 5.0,
|
|
"short_start": "2022-07-01",
|
|
"long_start": "2016-07-01"
|
|
},
|
|
"strategy": {
|
|
"note": "Live production knobs \u2014 no modifications",
|
|
"momentum": "residual_12_1 gate 80",
|
|
"rank": "residual_high_vol_blend_80_20",
|
|
"fill_mode": "close",
|
|
"cost_per_side": 0.001,
|
|
"exit": {
|
|
"mode": "atr_trailing",
|
|
"trailing_pct": 12.0,
|
|
"atr_multiplier": 3.0,
|
|
"hold_days": 30
|
|
},
|
|
"max_positions": 10,
|
|
"risk_per_trade": 0.01,
|
|
"reentry": "gate_reset"
|
|
},
|
|
"arms": [
|
|
{
|
|
"id": "A_prod_4y_505",
|
|
"label": "Prod book \u00b7 ~4y \u00b7 505 only",
|
|
"start": "2022-07-01",
|
|
"universe": "prod_505",
|
|
"n_candidates": 81626,
|
|
"n_qualified_longs": 1448,
|
|
"fill_mode": "close",
|
|
"ranking_key": "residual_high_vol_blend_80_20_score",
|
|
"exit_policy": "atr_trail3",
|
|
"hold_days": 30,
|
|
"sharpe": 1.32,
|
|
"sharpe_se": 0.49,
|
|
"cagr_pct": 31.8,
|
|
"max_drawdown_pct": 18.9,
|
|
"total_return_pct": 204.7,
|
|
"calmar": 1.68,
|
|
"trades": 374,
|
|
"win_rate": 35.6,
|
|
"n_returns": 1009,
|
|
"psr": 0.9965,
|
|
"start_date": "2022-07-01",
|
|
"end_date": "2026-07-13",
|
|
"spy_return_pct": 96.5,
|
|
"final_equity": 30467.86
|
|
},
|
|
{
|
|
"id": "B_prod_4y_505_liquid",
|
|
"label": "Prod book \u00b7 ~4y \u00b7 505 + liquid top-1500",
|
|
"start": "2022-07-01",
|
|
"universe": "prod_plus_liquid",
|
|
"n_candidates": 267579,
|
|
"n_qualified_longs": 6587,
|
|
"fill_mode": "close",
|
|
"ranking_key": "residual_high_vol_blend_80_20_score",
|
|
"exit_policy": "atr_trail3",
|
|
"hold_days": 30,
|
|
"sharpe": 0.14,
|
|
"sharpe_se": 0.499,
|
|
"cagr_pct": -1.8,
|
|
"max_drawdown_pct": 55.3,
|
|
"total_return_pct": -7.1,
|
|
"calmar": -0.03,
|
|
"trades": 706,
|
|
"win_rate": 29.3,
|
|
"n_returns": 1013,
|
|
"psr": 0.6107,
|
|
"start_date": "2022-07-01",
|
|
"end_date": "2026-07-17",
|
|
"spy_return_pct": 95.0,
|
|
"final_equity": 9287.52
|
|
},
|
|
{
|
|
"id": "C_prod_2016_505",
|
|
"label": "Prod book \u00b7 since 2016-07 \u00b7 505 only",
|
|
"start": "2016-07-01",
|
|
"universe": "prod_505",
|
|
"n_candidates": 190179,
|
|
"n_qualified_longs": 2450,
|
|
"fill_mode": "close",
|
|
"ranking_key": "residual_high_vol_blend_80_20_score",
|
|
"exit_policy": "atr_trail3",
|
|
"hold_days": 30,
|
|
"sharpe": 0.88,
|
|
"sharpe_se": 0.314,
|
|
"cagr_pct": 16.7,
|
|
"max_drawdown_pct": 24.4,
|
|
"total_return_pct": 369.4,
|
|
"calmar": 0.68,
|
|
"trades": 763,
|
|
"win_rate": 36.7,
|
|
"n_returns": 2519,
|
|
"psr": 0.9975,
|
|
"start_date": "2016-07-01",
|
|
"end_date": "2026-07-13",
|
|
"spy_return_pct": 256.9,
|
|
"final_equity": 46938.66
|
|
},
|
|
{
|
|
"id": "D_prod_2016_505_liquid",
|
|
"label": "Prod book \u00b7 since 2016-07 \u00b7 505 + liquid top-1500",
|
|
"start": "2016-07-01",
|
|
"universe": "prod_plus_liquid",
|
|
"n_candidates": 649305,
|
|
"n_qualified_longs": 11551,
|
|
"fill_mode": "close",
|
|
"ranking_key": "residual_high_vol_blend_80_20_score",
|
|
"exit_policy": "atr_trail3",
|
|
"hold_days": 30,
|
|
"sharpe": -0.06,
|
|
"sharpe_se": 0.316,
|
|
"cagr_pct": -7.0,
|
|
"max_drawdown_pct": 73.9,
|
|
"total_return_pct": -52.0,
|
|
"calmar": -0.1,
|
|
"trades": 1567,
|
|
"win_rate": 28.0,
|
|
"n_returns": 2523,
|
|
"psr": 0.4287,
|
|
"start_date": "2016-07-01",
|
|
"end_date": "2026-07-17",
|
|
"spy_return_pct": 254.1,
|
|
"final_equity": 4800.5
|
|
}
|
|
],
|
|
"survivorship_banner": "Today's constituents backfilled. Relative arm comparison only.",
|
|
"pending_human": true
|
|
}
|