{ "generated_at": "2026-07-18T16:56:10.007302", "snapshot": "/Users/taathde3/git/lab/signal_platform/backtest_snapshots/prod.sqlite", "validation_split": "2024-07-01", "n_trials": 4, "hypothesis": "stale_close (signal t-1, fill t close) recovers close-fill economics; the next_open haircut is scheduling, not lost edge", "decision_baseline": "next_open", "qualified_longs": 5189, "arms": [ { "id": "close_control", "label": "Close fill (historical control)", "config": { "fill_mode": "close" }, "windows": [ { "window": "train", "dsr": 0.936, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "close", "final_equity": 23706.04, "total_return_pct": 137.1, "cagr_pct": 49.8, "max_drawdown_pct": 17.9, "calmar": 2.78, "sharpe": 1.75, "sharpe_se": 0.675, "psr": 0.9953, "n_returns": 535, "return_skew": 0.4266, "return_kurtosis": 4.9374, "trades": 240, "win_rate": 36.7, "avg_trade_pnl": 57.11, "best_trade_r": 12.02, "worst_trade_r": -3.1, "best_trade_pnl": 2008.56, "worst_trade_pnl": -561.69, "avg_hold_days": 15.3, "exit_reasons": { "stop": 112, "time": 53, "trailing_stop": 75 }, "skipped_book_full": 327, "spy_return_pct": 36.7, "yearly_returns": [ { "year": 2022, "return_pct": 11.9 }, { "year": 2023, "return_pct": 78.1 }, { "year": 2024, "return_pct": 19.1 } ], "start_date": "2022-06-24", "end_date": "2024-08-12", "post_stop_events": 112, "post_stop_reentries": 61, "post_stop_states_open_at_end": 51 }, { "window": "validation", "dsr": 0.9039, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "close", "final_equity": 20060.98, "total_return_pct": 100.6, "cagr_pct": 41.6, "max_drawdown_pct": 20.9, "calmar": 1.99, "sharpe": 1.68, "sharpe_se": 0.716, "psr": 0.9905, "n_returns": 502, "return_skew": -0.0866, "return_kurtosis": 4.395, "trades": 239, "win_rate": 35.1, "avg_trade_pnl": 42.1, "best_trade_r": 12.03, "worst_trade_r": -2.82, "best_trade_pnl": 2012.72, "worst_trade_pnl": -330.01, "avg_hold_days": 14.0, "exit_reasons": { "stop": 121, "time": 44, "trailing_stop": 74 }, "skipped_book_full": 207, "spy_return_pct": 36.6, "yearly_returns": [ { "year": 2024, "return_pct": 16.7 }, { "year": 2025, "return_pct": 50.3 }, { "year": 2026, "return_pct": 14.5 } ], "start_date": "2024-07-01", "end_date": "2026-07-02", "post_stop_events": 121, "post_stop_reentries": 63, "post_stop_states_open_at_end": 58 }, { "window": "full", "dsr": 0.9939, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "close", "final_equity": 48810.86, "total_return_pct": 388.1, "cagr_pct": 48.3, "max_drawdown_pct": 21.6, "calmar": 2.23, "sharpe": 1.77, "sharpe_se": 0.496, "psr": 0.9998, "n_returns": 1008, "return_skew": 0.2714, "return_kurtosis": 4.9751, "trades": 472, "win_rate": 36.2, "avg_trade_pnl": 82.23, "best_trade_r": 12.03, "worst_trade_r": -3.1, "best_trade_pnl": 4897.19, "worst_trade_pnl": -802.94, "avg_hold_days": 14.6, "exit_reasons": { "stop": 229, "time": 96, "trailing_stop": 147 }, "skipped_book_full": 519, "spy_return_pct": 90.9, "yearly_returns": [ { "year": 2022, "return_pct": 11.9 }, { "year": 2023, "return_pct": 78.1 }, { "year": 2024, "return_pct": 42.5 }, { "year": 2025, "return_pct": 50.3 }, { "year": 2026, "return_pct": 14.5 } ], "start_date": "2022-06-24", "end_date": "2026-07-02", "post_stop_events": 229, "post_stop_reentries": 142, "post_stop_states_open_at_end": 87 } ] }, { "id": "next_open", "label": "Next-open fill (decision baseline)", "config": { "fill_mode": "next_open" }, "windows": [ { "window": "train", "dsr": 0.6243, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "next_open", "final_equity": 15364.14, "total_return_pct": 53.6, "cagr_pct": 22.2, "max_drawdown_pct": 18.1, "calmar": 1.23, "sharpe": 0.94, "sharpe_se": 0.688, "psr": 0.9148, "n_returns": 536, "return_skew": -0.039, "return_kurtosis": 4.2924, "trades": 260, "win_rate": 31.2, "avg_trade_pnl": 20.63, "best_trade_r": 11.53, "worst_trade_r": -2.99, "best_trade_pnl": 1265.39, "worst_trade_pnl": -303.24, "avg_hold_days": 13.7, "exit_reasons": { "stop": 133, "time": 48, "trailing_stop": 79 }, "skipped_book_full": 140, "spy_return_pct": 39.0, "yearly_returns": [ { "year": 2022, "return_pct": 4.5 }, { "year": 2023, "return_pct": 44.6 }, { "year": 2024, "return_pct": 1.7 } ], "start_date": "2022-06-24", "end_date": "2024-08-13", "skipped_missing_fill": 0, "overnight_slippage": { "n": 260, "mean_pct": -0.063, "median_pct": -0.1627, "p05_pct": -2.5148, "p95_pct": 1.8498 }, "post_stop_events": 133, "post_stop_reentries": 79, "post_stop_states_open_at_end": 50 }, { "window": "validation", "dsr": 0.8327, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "next_open", "final_equity": 18586.06, "total_return_pct": 85.9, "cagr_pct": 36.3, "max_drawdown_pct": 28.2, "calmar": 1.29, "sharpe": 1.44, "sharpe_se": 0.719, "psr": 0.9774, "n_returns": 502, "return_skew": -0.2169, "return_kurtosis": 4.6486, "trades": 243, "win_rate": 35.0, "avg_trade_pnl": 35.33, "best_trade_r": 12.2, "worst_trade_r": -4.0, "best_trade_pnl": 1731.6, "worst_trade_pnl": -196.48, "avg_hold_days": 13.8, "exit_reasons": { "stop": 114, "time": 48, "trailing_stop": 81 }, "skipped_book_full": 197, "spy_return_pct": 36.6, "yearly_returns": [ { "year": 2024, "return_pct": 14.2 }, { "year": 2025, "return_pct": 42.6 }, { "year": 2026, "return_pct": 14.1 } ], "start_date": "2024-07-01", "end_date": "2026-07-02", "skipped_missing_fill": 0, "overnight_slippage": { "n": 243, "mean_pct": -0.519, "median_pct": -0.1786, "p05_pct": -4.5194, "p95_pct": 2.0911 }, "post_stop_events": 114, "post_stop_reentries": 51, "post_stop_states_open_at_end": 52 }, { "window": "full", "dsr": 0.9093, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "next_open", "final_equity": 28701.57, "total_return_pct": 187.0, "cagr_pct": 30.0, "max_drawdown_pct": 28.2, "calmar": 1.06, "sharpe": 1.2, "sharpe_se": 0.504, "psr": 0.9914, "n_returns": 1008, "return_skew": -0.1589, "return_kurtosis": 4.4517, "trades": 502, "win_rate": 32.5, "avg_trade_pnl": 37.25, "best_trade_r": 12.2, "worst_trade_r": -4.0, "best_trade_pnl": 2674.03, "worst_trade_pnl": -303.42, "avg_hold_days": 13.7, "exit_reasons": { "stop": 251, "time": 97, "trailing_stop": 154 }, "skipped_book_full": 356, "spy_return_pct": 90.9, "yearly_returns": [ { "year": 2022, "return_pct": 4.5 }, { "year": 2023, "return_pct": 44.6 }, { "year": 2024, "return_pct": 15.7 }, { "year": 2025, "return_pct": 44.0 }, { "year": 2026, "return_pct": 14.1 } ], "start_date": "2022-06-24", "end_date": "2026-07-02", "skipped_missing_fill": 0, "overnight_slippage": { "n": 502, "mean_pct": -0.2566, "median_pct": -0.1661, "p05_pct": -2.7763, "p95_pct": 1.8997 }, "post_stop_events": 251, "post_stop_reentries": 157, "post_stop_states_open_at_end": 81 } ] }, { "id": "stale_close", "label": "Stale-signal close fill (MOC proxy: signal t-1, fill t close)", "config": { "fill_mode": "stale_close" }, "windows": [ { "window": "train", "dsr": 0.8241, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "stale_close", "final_equity": 18942.53, "total_return_pct": 89.4, "cagr_pct": 34.8, "max_drawdown_pct": 17.0, "calmar": 2.05, "sharpe": 1.36, "sharpe_se": 0.685, "psr": 0.9767, "n_returns": 536, "return_skew": 0.0918, "return_kurtosis": 3.1111, "trades": 246, "win_rate": 39.0, "avg_trade_pnl": 36.35, "best_trade_r": 10.3, "worst_trade_r": -2.67, "best_trade_pnl": 1318.25, "worst_trade_pnl": -328.1, "avg_hold_days": 16.1, "exit_reasons": { "stop": 103, "time": 54, "trailing_stop": 89 }, "skipped_book_full": 668, "spy_return_pct": 39.0, "yearly_returns": [ { "year": 2022, "return_pct": -0.9 }, { "year": 2023, "return_pct": 72.8 }, { "year": 2024, "return_pct": 10.6 } ], "start_date": "2022-06-24", "end_date": "2024-08-13", "skipped_missing_fill": 0, "signal_to_fill_drift": { "n": 246, "mean_pct": -0.3836, "median_pct": -0.4703, "p05_pct": -4.841, "p95_pct": 3.908 }, "post_stop_events": 103, "post_stop_reentries": 54, "post_stop_states_open_at_end": 47 }, { "window": "validation", "dsr": 0.9216, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "stale_close", "final_equity": 20546.48, "total_return_pct": 105.5, "cagr_pct": 43.3, "max_drawdown_pct": 21.6, "calmar": 2.0, "sharpe": 1.74, "sharpe_se": 0.702, "psr": 0.9933, "n_returns": 502, "return_skew": 0.3013, "return_kurtosis": 5.6337, "trades": 234, "win_rate": 37.2, "avg_trade_pnl": 45.07, "best_trade_r": 11.94, "worst_trade_r": -4.23, "best_trade_pnl": 2186.87, "worst_trade_pnl": -732.55, "avg_hold_days": 15.2, "exit_reasons": { "open_at_end": 1, "stop": 103, "time": 50, "trailing_stop": 80 }, "skipped_book_full": 223, "spy_return_pct": 36.6, "yearly_returns": [ { "year": 2024, "return_pct": 17.6 }, { "year": 2025, "return_pct": 74.8 }, { "year": 2026, "return_pct": -0.1 } ], "start_date": "2024-07-01", "end_date": "2026-07-02", "skipped_missing_fill": 0, "signal_to_fill_drift": { "n": 234, "mean_pct": -0.5217, "median_pct": -0.0138, "p05_pct": -6.5593, "p95_pct": 4.5614 }, "post_stop_events": 103, "post_stop_reentries": 45, "post_stop_states_open_at_end": 53 }, { "window": "full", "dsr": 0.9816, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "stale_close", "final_equity": 39381.26, "total_return_pct": 293.8, "cagr_pct": 40.6, "max_drawdown_pct": 21.8, "calmar": 1.87, "sharpe": 1.57, "sharpe_se": 0.5, "psr": 0.9991, "n_returns": 1008, "return_skew": 0.0941, "return_kurtosis": 4.1297, "trades": 483, "win_rate": 37.5, "avg_trade_pnl": 60.83, "best_trade_r": 11.94, "worst_trade_r": -4.23, "best_trade_pnl": 4191.56, "worst_trade_pnl": -1404.07, "avg_hold_days": 15.5, "exit_reasons": { "open_at_end": 1, "stop": 208, "time": 102, "trailing_stop": 172 }, "skipped_book_full": 894, "spy_return_pct": 90.9, "yearly_returns": [ { "year": 2022, "return_pct": -0.9 }, { "year": 2023, "return_pct": 72.8 }, { "year": 2024, "return_pct": 31.7 }, { "year": 2025, "return_pct": 74.7 }, { "year": 2026, "return_pct": -0.1 } ], "start_date": "2022-06-24", "end_date": "2026-07-02", "skipped_missing_fill": 0, "signal_to_fill_drift": { "n": 483, "mean_pct": -0.4799, "median_pct": -0.381, "p05_pct": -5.5621, "p95_pct": 4.2818 }, "post_stop_events": 208, "post_stop_reentries": 118, "post_stop_states_open_at_end": 83 } ] }, { "id": "next_open_gap2", "label": "Next-open + skip gap-up > 2%", "config": { "fill_mode": "next_open", "max_entry_gap_pct": 0.02 }, "windows": [ { "window": "train", "dsr": 0.4988, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "next_open", "final_equity": 13619.82, "total_return_pct": 36.2, "cagr_pct": 15.5, "max_drawdown_pct": 21.5, "calmar": 0.72, "sharpe": 0.72, "sharpe_se": 0.686, "psr": 0.8518, "n_returns": 536, "return_skew": 0.0343, "return_kurtosis": 4.6315, "trades": 274, "win_rate": 31.4, "avg_trade_pnl": 13.21, "best_trade_r": 11.53, "worst_trade_r": -2.99, "best_trade_pnl": 1223.62, "worst_trade_pnl": -268.81, "avg_hold_days": 13.4, "exit_reasons": { "stop": 138, "time": 47, "trailing_stop": 89 }, "skipped_book_full": 325, "spy_return_pct": 39.0, "yearly_returns": [ { "year": 2022, "return_pct": -4.1 }, { "year": 2023, "return_pct": 38.7 }, { "year": 2024, "return_pct": 2.4 } ], "start_date": "2022-06-24", "end_date": "2024-08-13", "skipped_missing_fill": 0, "overnight_slippage": { "n": 274, "mean_pct": -0.4245, "median_pct": -0.2836, "p05_pct": -2.6277, "p95_pct": 1.3953 }, "max_entry_gap_pct": 0.02, "skipped_gap_cap": 146, "post_stop_events": 138, "post_stop_reentries": 76, "post_stop_states_open_at_end": 55 }, { "window": "validation", "dsr": 0.8234, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "next_open", "final_equity": 18053.3, "total_return_pct": 80.5, "cagr_pct": 34.3, "max_drawdown_pct": 28.2, "calmar": 1.22, "sharpe": 1.41, "sharpe_se": 0.715, "psr": 0.9758, "n_returns": 502, "return_skew": -0.0944, "return_kurtosis": 4.7767, "trades": 251, "win_rate": 35.1, "avg_trade_pnl": 32.08, "best_trade_r": 12.2, "worst_trade_r": -4.0, "best_trade_pnl": 1693.37, "worst_trade_pnl": -213.76, "avg_hold_days": 13.7, "exit_reasons": { "open_at_end": 1, "stop": 117, "time": 49, "trailing_stop": 84 }, "skipped_book_full": 200, "spy_return_pct": 36.6, "yearly_returns": [ { "year": 2024, "return_pct": 12.7 }, { "year": 2025, "return_pct": 40.4 }, { "year": 2026, "return_pct": 14.1 } ], "start_date": "2024-07-01", "end_date": "2026-07-02", "skipped_missing_fill": 0, "overnight_slippage": { "n": 251, "mean_pct": -0.7233, "median_pct": -0.2245, "p05_pct": -4.6154, "p95_pct": 1.0467 }, "max_entry_gap_pct": 0.02, "skipped_gap_cap": 116, "post_stop_events": 117, "post_stop_reentries": 56, "post_stop_states_open_at_end": 53 }, { "window": "full", "dsr": 0.8561, "starting_capital": 10000.0, "cost_per_side_pct": 0.1, "fill_mode": "next_open", "final_equity": 24698.25, "total_return_pct": 147.0, "cagr_pct": 25.2, "max_drawdown_pct": 27.8, "calmar": 0.91, "sharpe": 1.06, "sharpe_se": 0.502, "psr": 0.983, "n_returns": 1008, "return_skew": -0.0453, "return_kurtosis": 4.7254, "trades": 523, "win_rate": 32.7, "avg_trade_pnl": 28.1, "best_trade_r": 12.2, "worst_trade_r": -4.0, "best_trade_pnl": 2316.66, "worst_trade_pnl": -292.44, "avg_hold_days": 13.4, "exit_reasons": { "open_at_end": 1, "stop": 258, "time": 97, "trailing_stop": 167 }, "skipped_book_full": 525, "spy_return_pct": 90.9, "yearly_returns": [ { "year": 2022, "return_pct": -4.1 }, { "year": 2023, "return_pct": 38.7 }, { "year": 2024, "return_pct": 14.8 }, { "year": 2025, "return_pct": 41.7 }, { "year": 2026, "return_pct": 14.1 } ], "start_date": "2022-06-24", "end_date": "2026-07-02", "skipped_missing_fill": 0, "overnight_slippage": { "n": 523, "mean_pct": -0.5565, "median_pct": -0.2628, "p05_pct": -3.5771, "p95_pct": 1.3699 }, "max_entry_gap_pct": 0.02, "skipped_gap_cap": 262, "post_stop_events": 258, "post_stop_reentries": 158, "post_stop_states_open_at_end": 87 } ] } ], "recovery": { "recover": false, "near_close_control": true, "beats_next_open": true, "train_ok": false, "validation_delta_vs_close": 0.06, "validation_delta_vs_next_open": 0.3, "half_se": 0.358, "reason": "stale_close does not meet recovery criteria \u2014 see flags" } }