4115 lines
112 KiB
JSON
4115 lines
112 KiB
JSON
{
|
|
"generated_at": "2026-07-18T15:17:10.310517",
|
|
"snapshot": "/Users/taathde3/git/lab/signal_platform/backtest_snapshots/prod.sqlite",
|
|
"cadence": "daily",
|
|
"validation_split": "2024-07-01",
|
|
"n_trials": 20,
|
|
"pre_registered_arm_ids": [
|
|
"a0_control",
|
|
"a2_hold_30",
|
|
"a2_hold_45",
|
|
"a2_hold_60",
|
|
"a2_hold_90",
|
|
"a3_vt15_c05_15_lb60",
|
|
"a3_vt20_c05_15_lb60",
|
|
"a3_vt25_c05_15_lb60",
|
|
"a3_vt15_c025_20_lb60",
|
|
"a3_vt20_c025_20_lb60",
|
|
"a3_vt25_c025_20_lb60",
|
|
"a3_vt20_c05_15_lb20",
|
|
"a3_vt20_c05_15_lb126",
|
|
"a4_next_open",
|
|
"a5_corr06_skip",
|
|
"a5_corr07_skip",
|
|
"a5_corr08_skip",
|
|
"a5_corr06_half",
|
|
"a5_corr07_half",
|
|
"a5_corr08_half"
|
|
],
|
|
"selected_arm_ids": [
|
|
"a0_control",
|
|
"a2_hold_30",
|
|
"a2_hold_45",
|
|
"a2_hold_60",
|
|
"a2_hold_90",
|
|
"a3_vt15_c05_15_lb60",
|
|
"a3_vt20_c05_15_lb60",
|
|
"a3_vt25_c05_15_lb60",
|
|
"a3_vt15_c025_20_lb60",
|
|
"a3_vt20_c025_20_lb60",
|
|
"a3_vt25_c025_20_lb60",
|
|
"a3_vt20_c05_15_lb20",
|
|
"a3_vt20_c05_15_lb126",
|
|
"a4_next_open",
|
|
"a5_corr06_skip",
|
|
"a5_corr07_skip",
|
|
"a5_corr08_skip",
|
|
"a5_corr06_half",
|
|
"a5_corr07_half",
|
|
"a5_corr08_half"
|
|
],
|
|
"entry_candidate_count": 1011248,
|
|
"qualified_longs": 5189,
|
|
"promotion_rule": "Promote only if validation Sharpe \u2265 control, validation DD not worse by >2pp, and train Sharpe not worse. Always report whether validation Sharpe delta exceeds 1 SE (expect most will not).",
|
|
"fip_id_fingerprint": [
|
|
{
|
|
"signal": "fip_id",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": -0.045,
|
|
"ic_t_stat": -2.92,
|
|
"ic_positive_pct": 25.7,
|
|
"mean_quintile_spread": -0.0167,
|
|
"reliable": true
|
|
}
|
|
],
|
|
"arms": [
|
|
{
|
|
"id": "a0_control",
|
|
"group": "a0",
|
|
"label": "Control: close fill, hold 30, risk 1%, no corr/vol",
|
|
"config": {
|
|
"hold_days": 30,
|
|
"fill_mode": "close"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.7448,
|
|
"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.6786,
|
|
"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.9507,
|
|
"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": "a2_hold_30",
|
|
"group": "a2",
|
|
"label": "Max hold 30",
|
|
"config": {
|
|
"hold_days": 30
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.7448,
|
|
"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.6786,
|
|
"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.9507,
|
|
"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": "a2_hold_45",
|
|
"group": "a2",
|
|
"label": "Max hold 45",
|
|
"config": {
|
|
"hold_days": 45
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.5832,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19755.4,
|
|
"total_return_pct": 97.6,
|
|
"cagr_pct": 36.4,
|
|
"max_drawdown_pct": 21.2,
|
|
"calmar": 1.72,
|
|
"sharpe": 1.43,
|
|
"sharpe_se": 0.677,
|
|
"psr": 0.9827,
|
|
"n_returns": 550,
|
|
"return_skew": 0.0829,
|
|
"return_kurtosis": 3.5002,
|
|
"trades": 218,
|
|
"win_rate": 34.9,
|
|
"avg_trade_pnl": 44.75,
|
|
"best_trade_r": 11.65,
|
|
"worst_trade_r": -2.59,
|
|
"best_trade_pnl": 1579.96,
|
|
"worst_trade_pnl": -365.67,
|
|
"avg_hold_days": 17.4,
|
|
"exit_reasons": {
|
|
"stop": 102,
|
|
"time": 22,
|
|
"trailing_stop": 94
|
|
},
|
|
"skipped_book_full": 595,
|
|
"spy_return_pct": 41.5,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": -5.8
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 76.6
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 18.9
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-09-03",
|
|
"post_stop_events": 102,
|
|
"post_stop_reentries": 53,
|
|
"post_stop_states_open_at_end": 49
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.8495,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 25321.71,
|
|
"total_return_pct": 153.2,
|
|
"cagr_pct": 59.1,
|
|
"max_drawdown_pct": 19.3,
|
|
"calmar": 3.07,
|
|
"sharpe": 2.07,
|
|
"sharpe_se": 0.698,
|
|
"psr": 0.9985,
|
|
"n_returns": 502,
|
|
"return_skew": 0.3971,
|
|
"return_kurtosis": 5.7963,
|
|
"trades": 202,
|
|
"win_rate": 36.1,
|
|
"avg_trade_pnl": 75.85,
|
|
"best_trade_r": 26.57,
|
|
"worst_trade_r": -1.92,
|
|
"best_trade_pnl": 3989.15,
|
|
"worst_trade_pnl": -297.34,
|
|
"avg_hold_days": 16.9,
|
|
"exit_reasons": {
|
|
"stop": 96,
|
|
"time": 19,
|
|
"trailing_stop": 87
|
|
},
|
|
"skipped_book_full": 275,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 33.9
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 54.7
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 22.3
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"post_stop_events": 96,
|
|
"post_stop_reentries": 47,
|
|
"post_stop_states_open_at_end": 49
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9524,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 49958.07,
|
|
"total_return_pct": 399.6,
|
|
"cagr_pct": 49.2,
|
|
"max_drawdown_pct": 21.2,
|
|
"calmar": 2.32,
|
|
"sharpe": 1.78,
|
|
"sharpe_se": 0.497,
|
|
"psr": 0.9998,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.2269,
|
|
"return_kurtosis": 4.6832,
|
|
"trades": 415,
|
|
"win_rate": 35.2,
|
|
"avg_trade_pnl": 96.28,
|
|
"best_trade_r": 26.57,
|
|
"worst_trade_r": -2.59,
|
|
"best_trade_pnl": 7870.33,
|
|
"worst_trade_pnl": -586.62,
|
|
"avg_hold_days": 17.1,
|
|
"exit_reasons": {
|
|
"stop": 195,
|
|
"time": 39,
|
|
"trailing_stop": 181
|
|
},
|
|
"skipped_book_full": 870,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": -5.8
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 76.6
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 58.9
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 54.7
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 22.3
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"post_stop_events": 195,
|
|
"post_stop_reentries": 123,
|
|
"post_stop_states_open_at_end": 72
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a2_hold_60",
|
|
"group": "a2",
|
|
"label": "Max hold 60",
|
|
"config": {
|
|
"hold_days": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.4051,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 16925.56,
|
|
"total_return_pct": 69.3,
|
|
"cagr_pct": 26.3,
|
|
"max_drawdown_pct": 21.0,
|
|
"calmar": 1.25,
|
|
"sharpe": 1.11,
|
|
"sharpe_se": 0.668,
|
|
"psr": 0.9523,
|
|
"n_returns": 565,
|
|
"return_skew": 0.0582,
|
|
"return_kurtosis": 3.2911,
|
|
"trades": 186,
|
|
"win_rate": 37.1,
|
|
"avg_trade_pnl": 37.23,
|
|
"best_trade_r": 16.03,
|
|
"worst_trade_r": -2.59,
|
|
"best_trade_pnl": 1398.56,
|
|
"worst_trade_pnl": -321.33,
|
|
"avg_hold_days": 18.7,
|
|
"exit_reasons": {
|
|
"stop": 87,
|
|
"time": 7,
|
|
"trailing_stop": 92
|
|
},
|
|
"skipped_book_full": 286,
|
|
"spy_return_pct": 46.5,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": -5.5
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 66.9
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 7.5
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-09-24",
|
|
"post_stop_events": 87,
|
|
"post_stop_reentries": 45,
|
|
"post_stop_states_open_at_end": 42
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.8667,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 27225.08,
|
|
"total_return_pct": 172.3,
|
|
"cagr_pct": 64.9,
|
|
"max_drawdown_pct": 19.3,
|
|
"calmar": 3.37,
|
|
"sharpe": 2.12,
|
|
"sharpe_se": 0.695,
|
|
"psr": 0.9989,
|
|
"n_returns": 502,
|
|
"return_skew": 0.4856,
|
|
"return_kurtosis": 6.4287,
|
|
"trades": 201,
|
|
"win_rate": 36.8,
|
|
"avg_trade_pnl": 85.7,
|
|
"best_trade_r": 40.13,
|
|
"worst_trade_r": -2.86,
|
|
"best_trade_pnl": 4258.45,
|
|
"worst_trade_pnl": -548.9,
|
|
"avg_hold_days": 17.7,
|
|
"exit_reasons": {
|
|
"open_at_end": 1,
|
|
"stop": 100,
|
|
"time": 12,
|
|
"trailing_stop": 88
|
|
},
|
|
"skipped_book_full": 366,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 44.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 61.9
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 16.3
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"post_stop_events": 100,
|
|
"post_stop_reentries": 49,
|
|
"post_stop_states_open_at_end": 51
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.91,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 44405.75,
|
|
"total_return_pct": 344.1,
|
|
"cagr_pct": 44.9,
|
|
"max_drawdown_pct": 21.0,
|
|
"calmar": 2.14,
|
|
"sharpe": 1.62,
|
|
"sharpe_se": 0.499,
|
|
"psr": 0.9994,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.1398,
|
|
"return_kurtosis": 4.5028,
|
|
"trades": 385,
|
|
"win_rate": 36.9,
|
|
"avg_trade_pnl": 89.37,
|
|
"best_trade_r": 40.13,
|
|
"worst_trade_r": -2.86,
|
|
"best_trade_pnl": 6945.79,
|
|
"worst_trade_pnl": -895.28,
|
|
"avg_hold_days": 18.2,
|
|
"exit_reasons": {
|
|
"open_at_end": 1,
|
|
"stop": 186,
|
|
"time": 19,
|
|
"trailing_stop": 179
|
|
},
|
|
"skipped_book_full": 652,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": -5.5
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 66.9
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 49.8
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 61.9
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 16.3
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"post_stop_events": 186,
|
|
"post_stop_reentries": 113,
|
|
"post_stop_states_open_at_end": 73
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a2_hold_90",
|
|
"group": "a2",
|
|
"label": "Max hold 90",
|
|
"config": {
|
|
"hold_days": 90
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.5379,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 18864.58,
|
|
"total_return_pct": 88.6,
|
|
"cagr_pct": 30.7,
|
|
"max_drawdown_pct": 21.0,
|
|
"calmar": 1.47,
|
|
"sharpe": 1.3,
|
|
"sharpe_se": 0.652,
|
|
"psr": 0.9769,
|
|
"n_returns": 595,
|
|
"return_skew": 0.0227,
|
|
"return_kurtosis": 3.5498,
|
|
"trades": 179,
|
|
"win_rate": 38.0,
|
|
"avg_trade_pnl": 49.52,
|
|
"best_trade_r": 14.64,
|
|
"worst_trade_r": -2.59,
|
|
"best_trade_pnl": 1481.51,
|
|
"worst_trade_pnl": -355.87,
|
|
"avg_hold_days": 19.5,
|
|
"exit_reasons": {
|
|
"stop": 82,
|
|
"time": 1,
|
|
"trailing_stop": 96
|
|
},
|
|
"skipped_book_full": 286,
|
|
"spy_return_pct": 47.8,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": -5.5
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 70.1
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 17.5
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-11-05",
|
|
"post_stop_events": 82,
|
|
"post_stop_reentries": 41,
|
|
"post_stop_states_open_at_end": 41
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.8348,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 26180.66,
|
|
"total_return_pct": 161.8,
|
|
"cagr_pct": 61.8,
|
|
"max_drawdown_pct": 23.1,
|
|
"calmar": 2.67,
|
|
"sharpe": 2.04,
|
|
"sharpe_se": 0.711,
|
|
"psr": 0.998,
|
|
"n_returns": 502,
|
|
"return_skew": 0.1382,
|
|
"return_kurtosis": 6.6872,
|
|
"trades": 191,
|
|
"win_rate": 34.6,
|
|
"avg_trade_pnl": 84.72,
|
|
"best_trade_r": 34.25,
|
|
"worst_trade_r": -3.75,
|
|
"best_trade_pnl": 4290.25,
|
|
"worst_trade_pnl": -387.4,
|
|
"avg_hold_days": 18.2,
|
|
"exit_reasons": {
|
|
"stop": 97,
|
|
"time": 2,
|
|
"trailing_stop": 92
|
|
},
|
|
"skipped_book_full": 392,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 38.5
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 71.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 10.6
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"post_stop_events": 97,
|
|
"post_stop_reentries": 52,
|
|
"post_stop_states_open_at_end": 45
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9236,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 46896.64,
|
|
"total_return_pct": 369.0,
|
|
"cagr_pct": 46.8,
|
|
"max_drawdown_pct": 23.5,
|
|
"calmar": 1.99,
|
|
"sharpe": 1.67,
|
|
"sharpe_se": 0.503,
|
|
"psr": 0.9996,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.0159,
|
|
"return_kurtosis": 5.2177,
|
|
"trades": 367,
|
|
"win_rate": 35.7,
|
|
"avg_trade_pnl": 100.54,
|
|
"best_trade_r": 34.25,
|
|
"worst_trade_r": -3.75,
|
|
"best_trade_pnl": 7685.0,
|
|
"worst_trade_pnl": -693.94,
|
|
"avg_hold_days": 18.7,
|
|
"exit_reasons": {
|
|
"stop": 178,
|
|
"time": 3,
|
|
"trailing_stop": 186
|
|
},
|
|
"skipped_book_full": 678,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": -5.5
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 70.1
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 54.4
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 71.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 10.6
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"post_stop_events": 178,
|
|
"post_stop_reentries": 110,
|
|
"post_stop_states_open_at_end": 68
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt15_c05_15_lb60",
|
|
"group": "a3",
|
|
"label": "Vol target 15% clamp[0.5,1.5] lb60",
|
|
"config": {
|
|
"vol_target": 0.15,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"vol_lookback": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6359,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19815.66,
|
|
"total_return_pct": 98.2,
|
|
"cagr_pct": 37.7,
|
|
"max_drawdown_pct": 17.8,
|
|
"calmar": 2.12,
|
|
"sharpe": 1.54,
|
|
"sharpe_se": 0.674,
|
|
"psr": 0.9887,
|
|
"n_returns": 535,
|
|
"return_skew": 0.5013,
|
|
"return_kurtosis": 5.3503,
|
|
"trades": 283,
|
|
"win_rate": 37.1,
|
|
"avg_trade_pnl": 34.68,
|
|
"best_trade_r": 10.08,
|
|
"worst_trade_r": -3.26,
|
|
"best_trade_pnl": 846.53,
|
|
"worst_trade_pnl": -257.26,
|
|
"avg_hold_days": 15.2,
|
|
"exit_reasons": {
|
|
"stop": 127,
|
|
"time": 62,
|
|
"trailing_stop": 94
|
|
},
|
|
"skipped_book_full": 1044,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 49.2
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 22.0
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.15,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.7686,
|
|
"vol_scalar_entries": 1376,
|
|
"post_stop_events": 127,
|
|
"post_stop_reentries": 81,
|
|
"post_stop_states_open_at_end": 46
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.44,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 15850.9,
|
|
"total_return_pct": 58.5,
|
|
"cagr_pct": 25.9,
|
|
"max_drawdown_pct": 23.6,
|
|
"calmar": 1.1,
|
|
"sharpe": 1.24,
|
|
"sharpe_se": 0.715,
|
|
"psr": 0.9585,
|
|
"n_returns": 502,
|
|
"return_skew": -0.1415,
|
|
"return_kurtosis": 4.4243,
|
|
"trades": 268,
|
|
"win_rate": 35.4,
|
|
"avg_trade_pnl": 21.83,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1375.72,
|
|
"worst_trade_pnl": -377.92,
|
|
"avg_hold_days": 14.3,
|
|
"exit_reasons": {
|
|
"stop": 138,
|
|
"time": 50,
|
|
"trailing_stop": 80
|
|
},
|
|
"skipped_book_full": 350,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 15.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 23.6
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 10.9
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.15,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.7983,
|
|
"vol_scalar_entries": 731,
|
|
"post_stop_events": 138,
|
|
"post_stop_reentries": 77,
|
|
"post_stop_states_open_at_end": 61
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.8325,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 31341.46,
|
|
"total_return_pct": 213.4,
|
|
"cagr_pct": 32.8,
|
|
"max_drawdown_pct": 23.1,
|
|
"calmar": 1.42,
|
|
"sharpe": 1.43,
|
|
"sharpe_se": 0.497,
|
|
"psr": 0.998,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.2493,
|
|
"return_kurtosis": 5.1137,
|
|
"trades": 544,
|
|
"win_rate": 36.6,
|
|
"avg_trade_pnl": 39.23,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 2720.13,
|
|
"worst_trade_pnl": -751.53,
|
|
"avg_hold_days": 14.8,
|
|
"exit_reasons": {
|
|
"stop": 260,
|
|
"time": 112,
|
|
"trailing_stop": 172
|
|
},
|
|
"skipped_book_full": 1394,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 49.2
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 40.8
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 23.6
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 10.9
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.15,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.77,
|
|
"vol_scalar_entries": 2092,
|
|
"post_stop_events": 260,
|
|
"post_stop_reentries": 176,
|
|
"post_stop_states_open_at_end": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt20_c05_15_lb60",
|
|
"group": "a3",
|
|
"label": "Vol target 20% clamp[0.5,1.5] lb60",
|
|
"config": {
|
|
"vol_target": 0.2,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"vol_lookback": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6858,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 21573.25,
|
|
"total_return_pct": 115.7,
|
|
"cagr_pct": 43.3,
|
|
"max_drawdown_pct": 17.7,
|
|
"calmar": 2.45,
|
|
"sharpe": 1.63,
|
|
"sharpe_se": 0.67,
|
|
"psr": 0.9924,
|
|
"n_returns": 535,
|
|
"return_skew": 0.5966,
|
|
"return_kurtosis": 5.7904,
|
|
"trades": 257,
|
|
"win_rate": 35.8,
|
|
"avg_trade_pnl": 45.03,
|
|
"best_trade_r": 9.84,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1629.41,
|
|
"worst_trade_pnl": -509.82,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 124,
|
|
"time": 57,
|
|
"trailing_stop": 76
|
|
},
|
|
"skipped_book_full": 591,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.2
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 67.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 18.9
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.8951,
|
|
"vol_scalar_entries": 1872,
|
|
"post_stop_events": 124,
|
|
"post_stop_reentries": 72,
|
|
"post_stop_states_open_at_end": 52
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.5732,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 18152.75,
|
|
"total_return_pct": 81.5,
|
|
"cagr_pct": 34.7,
|
|
"max_drawdown_pct": 23.7,
|
|
"calmar": 1.46,
|
|
"sharpe": 1.48,
|
|
"sharpe_se": 0.715,
|
|
"psr": 0.9805,
|
|
"n_returns": 502,
|
|
"return_skew": -0.0903,
|
|
"return_kurtosis": 4.4154,
|
|
"trades": 248,
|
|
"win_rate": 35.5,
|
|
"avg_trade_pnl": 32.87,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1883.4,
|
|
"worst_trade_pnl": -476.87,
|
|
"avg_hold_days": 14.2,
|
|
"exit_reasons": {
|
|
"stop": 128,
|
|
"time": 46,
|
|
"trailing_stop": 74
|
|
},
|
|
"skipped_book_full": 214,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 16.5
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 30.9
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 19.1
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.9179,
|
|
"vol_scalar_entries": 899,
|
|
"post_stop_events": 128,
|
|
"post_stop_reentries": 66,
|
|
"post_stop_states_open_at_end": 62
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9017,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 39241.25,
|
|
"total_return_pct": 292.4,
|
|
"cagr_pct": 40.5,
|
|
"max_drawdown_pct": 23.5,
|
|
"calmar": 1.72,
|
|
"sharpe": 1.59,
|
|
"sharpe_se": 0.495,
|
|
"psr": 0.9994,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.3155,
|
|
"return_kurtosis": 5.3435,
|
|
"trades": 498,
|
|
"win_rate": 36.1,
|
|
"avg_trade_pnl": 58.72,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 4071.06,
|
|
"worst_trade_pnl": -1030.94,
|
|
"avg_hold_days": 14.6,
|
|
"exit_reasons": {
|
|
"stop": 246,
|
|
"time": 103,
|
|
"trailing_stop": 149
|
|
},
|
|
"skipped_book_full": 796,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.2
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 67.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 38.9
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 30.8
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 19.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.9026,
|
|
"vol_scalar_entries": 2765,
|
|
"post_stop_events": 246,
|
|
"post_stop_reentries": 155,
|
|
"post_stop_states_open_at_end": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt25_c05_15_lb60",
|
|
"group": "a3",
|
|
"label": "Vol target 25% clamp[0.5,1.5] lb60",
|
|
"config": {
|
|
"vol_target": 0.25,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"vol_lookback": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.7115,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 22903.39,
|
|
"total_return_pct": 129.0,
|
|
"cagr_pct": 47.4,
|
|
"max_drawdown_pct": 17.8,
|
|
"calmar": 2.66,
|
|
"sharpe": 1.68,
|
|
"sharpe_se": 0.671,
|
|
"psr": 0.994,
|
|
"n_returns": 535,
|
|
"return_skew": 0.5537,
|
|
"return_kurtosis": 5.5838,
|
|
"trades": 239,
|
|
"win_rate": 38.5,
|
|
"avg_trade_pnl": 53.99,
|
|
"best_trade_r": 12.02,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1662.58,
|
|
"worst_trade_pnl": -542.69,
|
|
"avg_hold_days": 15.6,
|
|
"exit_reasons": {
|
|
"stop": 108,
|
|
"time": 53,
|
|
"trailing_stop": 78
|
|
},
|
|
"skipped_book_full": 522,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 9.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 79.6
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 17.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.25,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 1.0502,
|
|
"vol_scalar_entries": 1935,
|
|
"post_stop_events": 108,
|
|
"post_stop_reentries": 60,
|
|
"post_stop_states_open_at_end": 48
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.6552,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20145.1,
|
|
"total_return_pct": 101.5,
|
|
"cagr_pct": 41.9,
|
|
"max_drawdown_pct": 21.8,
|
|
"calmar": 1.93,
|
|
"sharpe": 1.63,
|
|
"sharpe_se": 0.706,
|
|
"psr": 0.9896,
|
|
"n_returns": 502,
|
|
"return_skew": 0.2159,
|
|
"return_kurtosis": 5.4845,
|
|
"trades": 235,
|
|
"win_rate": 34.9,
|
|
"avg_trade_pnl": 43.17,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -2.72,
|
|
"best_trade_pnl": 2530.57,
|
|
"worst_trade_pnl": -319.31,
|
|
"avg_hold_days": 14.2,
|
|
"exit_reasons": {
|
|
"stop": 116,
|
|
"time": 42,
|
|
"trailing_stop": 77
|
|
},
|
|
"skipped_book_full": 206,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 17.6
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 40.1
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 22.3
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.25,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 1.0686,
|
|
"vol_scalar_entries": 925,
|
|
"post_stop_events": 116,
|
|
"post_stop_reentries": 61,
|
|
"post_stop_states_open_at_end": 55
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9482,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 49076.18,
|
|
"total_return_pct": 390.8,
|
|
"cagr_pct": 48.5,
|
|
"max_drawdown_pct": 22.2,
|
|
"calmar": 2.19,
|
|
"sharpe": 1.75,
|
|
"sharpe_se": 0.491,
|
|
"psr": 0.9998,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.4786,
|
|
"return_kurtosis": 5.7551,
|
|
"trades": 468,
|
|
"win_rate": 37.2,
|
|
"avg_trade_pnl": 83.5,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 6162.57,
|
|
"worst_trade_pnl": -778.05,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 220,
|
|
"time": 95,
|
|
"trailing_stop": 153
|
|
},
|
|
"skipped_book_full": 728,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 9.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 79.6
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 47.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 38.9
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 22.3
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.25,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 1.06,
|
|
"vol_scalar_entries": 2874,
|
|
"post_stop_events": 220,
|
|
"post_stop_reentries": 139,
|
|
"post_stop_states_open_at_end": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt15_c025_20_lb60",
|
|
"group": "a3",
|
|
"label": "Vol target 15% clamp[0.25,2.0] lb60",
|
|
"config": {
|
|
"vol_target": 0.15,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"vol_lookback": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6835,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20615.2,
|
|
"total_return_pct": 106.2,
|
|
"cagr_pct": 40.3,
|
|
"max_drawdown_pct": 17.8,
|
|
"calmar": 2.26,
|
|
"sharpe": 1.63,
|
|
"sharpe_se": 0.679,
|
|
"psr": 0.9919,
|
|
"n_returns": 535,
|
|
"return_skew": 0.3291,
|
|
"return_kurtosis": 4.5805,
|
|
"trades": 281,
|
|
"win_rate": 38.1,
|
|
"avg_trade_pnl": 37.78,
|
|
"best_trade_r": 9.84,
|
|
"worst_trade_r": -3.26,
|
|
"best_trade_pnl": 854.5,
|
|
"worst_trade_pnl": -268.17,
|
|
"avg_hold_days": 15.4,
|
|
"exit_reasons": {
|
|
"stop": 123,
|
|
"time": 62,
|
|
"trailing_stop": 96
|
|
},
|
|
"skipped_book_full": 1136,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 9.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 55.3
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 22.0
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.15,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 0.7755,
|
|
"vol_scalar_entries": 1257,
|
|
"post_stop_events": 123,
|
|
"post_stop_reentries": 76,
|
|
"post_stop_states_open_at_end": 47
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.44,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 15850.9,
|
|
"total_return_pct": 58.5,
|
|
"cagr_pct": 25.9,
|
|
"max_drawdown_pct": 23.6,
|
|
"calmar": 1.1,
|
|
"sharpe": 1.24,
|
|
"sharpe_se": 0.715,
|
|
"psr": 0.9585,
|
|
"n_returns": 502,
|
|
"return_skew": -0.1415,
|
|
"return_kurtosis": 4.4243,
|
|
"trades": 268,
|
|
"win_rate": 35.4,
|
|
"avg_trade_pnl": 21.83,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1375.72,
|
|
"worst_trade_pnl": -377.92,
|
|
"avg_hold_days": 14.3,
|
|
"exit_reasons": {
|
|
"stop": 138,
|
|
"time": 50,
|
|
"trailing_stop": 80
|
|
},
|
|
"skipped_book_full": 350,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 15.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 23.6
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 10.9
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.15,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 0.7983,
|
|
"vol_scalar_entries": 731,
|
|
"post_stop_events": 138,
|
|
"post_stop_reentries": 77,
|
|
"post_stop_states_open_at_end": 61
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.86,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 32607.63,
|
|
"total_return_pct": 226.1,
|
|
"cagr_pct": 34.2,
|
|
"max_drawdown_pct": 23.1,
|
|
"calmar": 1.48,
|
|
"sharpe": 1.49,
|
|
"sharpe_se": 0.499,
|
|
"psr": 0.9985,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.1399,
|
|
"return_kurtosis": 4.6022,
|
|
"trades": 542,
|
|
"win_rate": 37.1,
|
|
"avg_trade_pnl": 41.71,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 2830.02,
|
|
"worst_trade_pnl": -781.89,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 256,
|
|
"time": 112,
|
|
"trailing_stop": 174
|
|
},
|
|
"skipped_book_full": 1486,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 9.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 55.3
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 40.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 23.6
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 10.9
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.15,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 0.7744,
|
|
"vol_scalar_entries": 1973,
|
|
"post_stop_events": 256,
|
|
"post_stop_reentries": 169,
|
|
"post_stop_states_open_at_end": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt20_c025_20_lb60",
|
|
"group": "a3",
|
|
"label": "Vol target 20% clamp[0.25,2.0] lb60",
|
|
"config": {
|
|
"vol_target": 0.2,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"vol_lookback": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6858,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 21573.25,
|
|
"total_return_pct": 115.7,
|
|
"cagr_pct": 43.3,
|
|
"max_drawdown_pct": 17.7,
|
|
"calmar": 2.45,
|
|
"sharpe": 1.63,
|
|
"sharpe_se": 0.67,
|
|
"psr": 0.9924,
|
|
"n_returns": 535,
|
|
"return_skew": 0.5966,
|
|
"return_kurtosis": 5.7904,
|
|
"trades": 257,
|
|
"win_rate": 35.8,
|
|
"avg_trade_pnl": 45.03,
|
|
"best_trade_r": 9.84,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1629.41,
|
|
"worst_trade_pnl": -509.82,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 124,
|
|
"time": 57,
|
|
"trailing_stop": 76
|
|
},
|
|
"skipped_book_full": 591,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.2
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 67.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 18.9
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 0.8951,
|
|
"vol_scalar_entries": 1872,
|
|
"post_stop_events": 124,
|
|
"post_stop_reentries": 72,
|
|
"post_stop_states_open_at_end": 52
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.5732,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 18152.75,
|
|
"total_return_pct": 81.5,
|
|
"cagr_pct": 34.7,
|
|
"max_drawdown_pct": 23.7,
|
|
"calmar": 1.46,
|
|
"sharpe": 1.48,
|
|
"sharpe_se": 0.715,
|
|
"psr": 0.9805,
|
|
"n_returns": 502,
|
|
"return_skew": -0.0903,
|
|
"return_kurtosis": 4.4154,
|
|
"trades": 248,
|
|
"win_rate": 35.5,
|
|
"avg_trade_pnl": 32.87,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1883.4,
|
|
"worst_trade_pnl": -476.87,
|
|
"avg_hold_days": 14.2,
|
|
"exit_reasons": {
|
|
"stop": 128,
|
|
"time": 46,
|
|
"trailing_stop": 74
|
|
},
|
|
"skipped_book_full": 214,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 16.5
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 30.9
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 19.1
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 0.9179,
|
|
"vol_scalar_entries": 899,
|
|
"post_stop_events": 128,
|
|
"post_stop_reentries": 66,
|
|
"post_stop_states_open_at_end": 62
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9017,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 39241.25,
|
|
"total_return_pct": 292.4,
|
|
"cagr_pct": 40.5,
|
|
"max_drawdown_pct": 23.5,
|
|
"calmar": 1.72,
|
|
"sharpe": 1.59,
|
|
"sharpe_se": 0.495,
|
|
"psr": 0.9994,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.3155,
|
|
"return_kurtosis": 5.3435,
|
|
"trades": 498,
|
|
"win_rate": 36.1,
|
|
"avg_trade_pnl": 58.72,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 4071.06,
|
|
"worst_trade_pnl": -1030.94,
|
|
"avg_hold_days": 14.6,
|
|
"exit_reasons": {
|
|
"stop": 246,
|
|
"time": 103,
|
|
"trailing_stop": 149
|
|
},
|
|
"skipped_book_full": 796,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.2
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 67.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 38.9
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 30.8
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 19.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 0.9026,
|
|
"vol_scalar_entries": 2765,
|
|
"post_stop_events": 246,
|
|
"post_stop_reentries": 155,
|
|
"post_stop_states_open_at_end": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt25_c025_20_lb60",
|
|
"group": "a3",
|
|
"label": "Vol target 25% clamp[0.25,2.0] lb60",
|
|
"config": {
|
|
"vol_target": 0.25,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"vol_lookback": 60
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.7115,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 22922.59,
|
|
"total_return_pct": 129.2,
|
|
"cagr_pct": 47.5,
|
|
"max_drawdown_pct": 17.8,
|
|
"calmar": 2.66,
|
|
"sharpe": 1.68,
|
|
"sharpe_se": 0.671,
|
|
"psr": 0.994,
|
|
"n_returns": 535,
|
|
"return_skew": 0.5629,
|
|
"return_kurtosis": 5.6268,
|
|
"trades": 239,
|
|
"win_rate": 38.5,
|
|
"avg_trade_pnl": 54.07,
|
|
"best_trade_r": 12.02,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1664.73,
|
|
"worst_trade_pnl": -543.15,
|
|
"avg_hold_days": 15.6,
|
|
"exit_reasons": {
|
|
"stop": 108,
|
|
"time": 53,
|
|
"trailing_stop": 78
|
|
},
|
|
"skipped_book_full": 522,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 9.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 79.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 17.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.25,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 1.0511,
|
|
"vol_scalar_entries": 1935,
|
|
"post_stop_events": 108,
|
|
"post_stop_reentries": 60,
|
|
"post_stop_states_open_at_end": 48
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.6552,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20145.1,
|
|
"total_return_pct": 101.5,
|
|
"cagr_pct": 41.9,
|
|
"max_drawdown_pct": 21.8,
|
|
"calmar": 1.93,
|
|
"sharpe": 1.63,
|
|
"sharpe_se": 0.706,
|
|
"psr": 0.9896,
|
|
"n_returns": 502,
|
|
"return_skew": 0.2159,
|
|
"return_kurtosis": 5.4845,
|
|
"trades": 235,
|
|
"win_rate": 34.9,
|
|
"avg_trade_pnl": 43.17,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -2.72,
|
|
"best_trade_pnl": 2530.57,
|
|
"worst_trade_pnl": -319.31,
|
|
"avg_hold_days": 14.2,
|
|
"exit_reasons": {
|
|
"stop": 116,
|
|
"time": 42,
|
|
"trailing_stop": 77
|
|
},
|
|
"skipped_book_full": 206,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 17.6
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 40.1
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 22.3
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.25,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 1.0686,
|
|
"vol_scalar_entries": 925,
|
|
"post_stop_events": 116,
|
|
"post_stop_reentries": 61,
|
|
"post_stop_states_open_at_end": 55
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9486,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 49117.21,
|
|
"total_return_pct": 391.2,
|
|
"cagr_pct": 48.5,
|
|
"max_drawdown_pct": 22.2,
|
|
"calmar": 2.19,
|
|
"sharpe": 1.75,
|
|
"sharpe_se": 0.49,
|
|
"psr": 0.9998,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.484,
|
|
"return_kurtosis": 5.7805,
|
|
"trades": 468,
|
|
"win_rate": 37.2,
|
|
"avg_trade_pnl": 83.58,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 6167.72,
|
|
"worst_trade_pnl": -778.7,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 220,
|
|
"time": 95,
|
|
"trailing_stop": 153
|
|
},
|
|
"skipped_book_full": 728,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 9.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 79.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 47.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 38.9
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 22.3
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.25,
|
|
"vol_lookback": 60,
|
|
"vol_clamp": [
|
|
0.25,
|
|
2.0
|
|
],
|
|
"avg_vol_scalar": 1.0606,
|
|
"vol_scalar_entries": 2874,
|
|
"post_stop_events": 220,
|
|
"post_stop_reentries": 139,
|
|
"post_stop_states_open_at_end": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt20_c05_15_lb20",
|
|
"group": "a3",
|
|
"label": "Vol target 20% clamp[0.5,1.5] lb20 (sensitivity)",
|
|
"config": {
|
|
"vol_target": 0.2,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"vol_lookback": 20
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.7521,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 23344.83,
|
|
"total_return_pct": 133.4,
|
|
"cagr_pct": 48.7,
|
|
"max_drawdown_pct": 17.1,
|
|
"calmar": 2.84,
|
|
"sharpe": 1.76,
|
|
"sharpe_se": 0.667,
|
|
"psr": 0.9959,
|
|
"n_returns": 535,
|
|
"return_skew": 0.6432,
|
|
"return_kurtosis": 5.9259,
|
|
"trades": 253,
|
|
"win_rate": 38.3,
|
|
"avg_trade_pnl": 52.75,
|
|
"best_trade_r": 12.02,
|
|
"worst_trade_r": -3.26,
|
|
"best_trade_pnl": 2060.76,
|
|
"worst_trade_pnl": -550.83,
|
|
"avg_hold_days": 15.8,
|
|
"exit_reasons": {
|
|
"stop": 113,
|
|
"time": 57,
|
|
"trailing_stop": 83
|
|
},
|
|
"skipped_book_full": 653,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 11.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 75.4
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 20.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 20,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.9764,
|
|
"vol_scalar_entries": 1760,
|
|
"post_stop_events": 113,
|
|
"post_stop_reentries": 62,
|
|
"post_stop_states_open_at_end": 51
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.6645,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19720.49,
|
|
"total_return_pct": 97.2,
|
|
"cagr_pct": 40.4,
|
|
"max_drawdown_pct": 24.1,
|
|
"calmar": 1.67,
|
|
"sharpe": 1.65,
|
|
"sharpe_se": 0.711,
|
|
"psr": 0.99,
|
|
"n_returns": 502,
|
|
"return_skew": 0.0329,
|
|
"return_kurtosis": 4.2076,
|
|
"trades": 243,
|
|
"win_rate": 36.6,
|
|
"avg_trade_pnl": 40.0,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1947.61,
|
|
"worst_trade_pnl": -358.29,
|
|
"avg_hold_days": 14.4,
|
|
"exit_reasons": {
|
|
"stop": 121,
|
|
"time": 46,
|
|
"trailing_stop": 76
|
|
},
|
|
"skipped_book_full": 206,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 20.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 36.3
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 20.0
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 20,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.9384,
|
|
"vol_scalar_entries": 922,
|
|
"post_stop_events": 121,
|
|
"post_stop_reentries": 61,
|
|
"post_stop_states_open_at_end": 60
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9478,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 46345.17,
|
|
"total_return_pct": 363.5,
|
|
"cagr_pct": 46.4,
|
|
"max_drawdown_pct": 22.2,
|
|
"calmar": 2.1,
|
|
"sharpe": 1.75,
|
|
"sharpe_se": 0.492,
|
|
"psr": 0.9998,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.4316,
|
|
"return_kurtosis": 5.4453,
|
|
"trades": 487,
|
|
"win_rate": 37.8,
|
|
"avg_trade_pnl": 74.63,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 4576.94,
|
|
"worst_trade_pnl": -823.3,
|
|
"avg_hold_days": 15.1,
|
|
"exit_reasons": {
|
|
"stop": 228,
|
|
"time": 102,
|
|
"trailing_stop": 157
|
|
},
|
|
"skipped_book_full": 868,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 11.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 75.4
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 42.9
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 39.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 20.0
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 20,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.9656,
|
|
"vol_scalar_entries": 2676,
|
|
"post_stop_events": 228,
|
|
"post_stop_reentries": 141,
|
|
"post_stop_states_open_at_end": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a3_vt20_c05_15_lb126",
|
|
"group": "a3",
|
|
"label": "Vol target 20% clamp[0.5,1.5] lb126 (sensitivity)",
|
|
"config": {
|
|
"vol_target": 0.2,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"vol_lookback": 126
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6421,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20878.07,
|
|
"total_return_pct": 108.8,
|
|
"cagr_pct": 41.2,
|
|
"max_drawdown_pct": 17.9,
|
|
"calmar": 2.3,
|
|
"sharpe": 1.55,
|
|
"sharpe_se": 0.671,
|
|
"psr": 0.9894,
|
|
"n_returns": 535,
|
|
"return_skew": 0.5854,
|
|
"return_kurtosis": 5.365,
|
|
"trades": 260,
|
|
"win_rate": 35.8,
|
|
"avg_trade_pnl": 41.84,
|
|
"best_trade_r": 10.08,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1626.75,
|
|
"worst_trade_pnl": -493.16,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 122,
|
|
"time": 57,
|
|
"trailing_stop": 81
|
|
},
|
|
"skipped_book_full": 536,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 11.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 57.6
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 18.4
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 126,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.8802,
|
|
"vol_scalar_entries": 1922,
|
|
"post_stop_events": 122,
|
|
"post_stop_reentries": 70,
|
|
"post_stop_states_open_at_end": 52
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.5123,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 17065.5,
|
|
"total_return_pct": 70.7,
|
|
"cagr_pct": 30.6,
|
|
"max_drawdown_pct": 20.5,
|
|
"calmar": 1.49,
|
|
"sharpe": 1.37,
|
|
"sharpe_se": 0.714,
|
|
"psr": 0.972,
|
|
"n_returns": 502,
|
|
"return_skew": -0.0959,
|
|
"return_kurtosis": 4.5229,
|
|
"trades": 247,
|
|
"win_rate": 36.4,
|
|
"avg_trade_pnl": 28.61,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -2.82,
|
|
"best_trade_pnl": 1689.23,
|
|
"worst_trade_pnl": -330.36,
|
|
"avg_hold_days": 14.4,
|
|
"exit_reasons": {
|
|
"stop": 125,
|
|
"time": 47,
|
|
"trailing_stop": 75
|
|
},
|
|
"skipped_book_full": 230,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 16.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 28.1
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 14.2
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 126,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.933,
|
|
"vol_scalar_entries": 877,
|
|
"post_stop_events": 125,
|
|
"post_stop_reentries": 68,
|
|
"post_stop_states_open_at_end": 57
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.883,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 37188.08,
|
|
"total_return_pct": 271.9,
|
|
"cagr_pct": 38.6,
|
|
"max_drawdown_pct": 19.9,
|
|
"calmar": 1.94,
|
|
"sharpe": 1.54,
|
|
"sharpe_se": 0.495,
|
|
"psr": 0.9991,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.2986,
|
|
"return_kurtosis": 5.2346,
|
|
"trades": 497,
|
|
"win_rate": 36.2,
|
|
"avg_trade_pnl": 54.7,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -3.75,
|
|
"best_trade_pnl": 3595.79,
|
|
"worst_trade_pnl": -717.19,
|
|
"avg_hold_days": 14.7,
|
|
"exit_reasons": {
|
|
"stop": 239,
|
|
"time": 101,
|
|
"trailing_stop": 157
|
|
},
|
|
"skipped_book_full": 751,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 11.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 57.6
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 39.3
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 32.3
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 14.5
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"vol_target": 0.2,
|
|
"vol_lookback": 126,
|
|
"vol_clamp": [
|
|
0.5,
|
|
1.5
|
|
],
|
|
"avg_vol_scalar": 0.8948,
|
|
"vol_scalar_entries": 2802,
|
|
"post_stop_events": 239,
|
|
"post_stop_reentries": 154,
|
|
"post_stop_states_open_at_end": 85
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a4_next_open",
|
|
"group": "a4",
|
|
"label": "Next-open fill (t+1 open, stop from fill\u22121.5 ATR)",
|
|
"config": {
|
|
"fill_mode": "next_open"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.2981,
|
|
"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.5509,
|
|
"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.6895,
|
|
"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": "a5_corr06_skip",
|
|
"group": "a5",
|
|
"label": "Corr max 0.6 skip",
|
|
"config": {
|
|
"corr_max": 0.6,
|
|
"corr_action": "skip"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6735,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20498.09,
|
|
"total_return_pct": 105.0,
|
|
"cagr_pct": 39.9,
|
|
"max_drawdown_pct": 20.7,
|
|
"calmar": 1.93,
|
|
"sharpe": 1.61,
|
|
"sharpe_se": 0.677,
|
|
"psr": 0.9913,
|
|
"n_returns": 535,
|
|
"return_skew": 0.3787,
|
|
"return_kurtosis": 4.8393,
|
|
"trades": 235,
|
|
"win_rate": 37.4,
|
|
"avg_trade_pnl": 44.67,
|
|
"best_trade_r": 10.08,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1146.41,
|
|
"worst_trade_pnl": -387.09,
|
|
"avg_hold_days": 15.2,
|
|
"exit_reasons": {
|
|
"stop": 107,
|
|
"time": 49,
|
|
"trailing_stop": 79
|
|
},
|
|
"skipped_book_full": 167,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 16.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 44.9
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 21.0
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"corr_max": 0.6,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 1599,
|
|
"post_stop_events": 107,
|
|
"post_stop_reentries": 61,
|
|
"post_stop_states_open_at_end": 46
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.689,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19321.37,
|
|
"total_return_pct": 93.2,
|
|
"cagr_pct": 39.0,
|
|
"max_drawdown_pct": 17.0,
|
|
"calmar": 2.3,
|
|
"sharpe": 1.7,
|
|
"sharpe_se": 0.714,
|
|
"psr": 0.9913,
|
|
"n_returns": 502,
|
|
"return_skew": -0.031,
|
|
"return_kurtosis": 4.7331,
|
|
"trades": 222,
|
|
"win_rate": 32.9,
|
|
"avg_trade_pnl": 41.99,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -2.86,
|
|
"best_trade_pnl": 1911.95,
|
|
"worst_trade_pnl": -358.85,
|
|
"avg_hold_days": 14.1,
|
|
"exit_reasons": {
|
|
"stop": 114,
|
|
"time": 40,
|
|
"trailing_stop": 68
|
|
},
|
|
"skipped_book_full": 9,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 15.0
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 48.5
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 13.2
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.6,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 1043,
|
|
"post_stop_events": 114,
|
|
"post_stop_reentries": 63,
|
|
"post_stop_states_open_at_end": 51
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.8994,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 36781.87,
|
|
"total_return_pct": 267.8,
|
|
"cagr_pct": 38.2,
|
|
"max_drawdown_pct": 20.7,
|
|
"calmar": 1.85,
|
|
"sharpe": 1.59,
|
|
"sharpe_se": 0.5,
|
|
"psr": 0.9993,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.1221,
|
|
"return_kurtosis": 4.6895,
|
|
"trades": 450,
|
|
"win_rate": 35.1,
|
|
"avg_trade_pnl": 59.52,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 3609.23,
|
|
"worst_trade_pnl": -468.77,
|
|
"avg_hold_days": 14.7,
|
|
"exit_reasons": {
|
|
"stop": 212,
|
|
"time": 84,
|
|
"trailing_stop": 154
|
|
},
|
|
"skipped_book_full": 176,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 16.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 44.9
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 43.4
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 34.3
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 12.8
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.6,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 2648,
|
|
"post_stop_events": 212,
|
|
"post_stop_reentries": 138,
|
|
"post_stop_states_open_at_end": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a5_corr07_skip",
|
|
"group": "a5",
|
|
"label": "Corr max 0.7 skip",
|
|
"config": {
|
|
"corr_max": 0.7,
|
|
"corr_action": "skip"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.5555,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 18782.41,
|
|
"total_return_pct": 87.8,
|
|
"cagr_pct": 34.3,
|
|
"max_drawdown_pct": 19.9,
|
|
"calmar": 1.73,
|
|
"sharpe": 1.4,
|
|
"sharpe_se": 0.676,
|
|
"psr": 0.9805,
|
|
"n_returns": 535,
|
|
"return_skew": 0.4358,
|
|
"return_kurtosis": 5.1891,
|
|
"trades": 244,
|
|
"win_rate": 36.1,
|
|
"avg_trade_pnl": 35.99,
|
|
"best_trade_r": 10.08,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 963.2,
|
|
"worst_trade_pnl": -445.07,
|
|
"avg_hold_days": 15.0,
|
|
"exit_reasons": {
|
|
"stop": 108,
|
|
"time": 49,
|
|
"trailing_stop": 87
|
|
},
|
|
"skipped_book_full": 231,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 49.4
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 15.6
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"corr_max": 0.7,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 1193,
|
|
"post_stop_events": 108,
|
|
"post_stop_reentries": 61,
|
|
"post_stop_states_open_at_end": 47
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.6546,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19451.8,
|
|
"total_return_pct": 94.5,
|
|
"cagr_pct": 39.4,
|
|
"max_drawdown_pct": 25.5,
|
|
"calmar": 1.55,
|
|
"sharpe": 1.63,
|
|
"sharpe_se": 0.709,
|
|
"psr": 0.9891,
|
|
"n_returns": 502,
|
|
"return_skew": 0.0966,
|
|
"return_kurtosis": 4.7322,
|
|
"trades": 234,
|
|
"win_rate": 34.2,
|
|
"avg_trade_pnl": 40.39,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1836.08,
|
|
"worst_trade_pnl": -569.85,
|
|
"avg_hold_days": 14.1,
|
|
"exit_reasons": {
|
|
"stop": 117,
|
|
"time": 42,
|
|
"trailing_stop": 75
|
|
},
|
|
"skipped_book_full": 121,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 15.5
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 38.6
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 21.6
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.7,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 891,
|
|
"post_stop_events": 117,
|
|
"post_stop_reentries": 60,
|
|
"post_stop_states_open_at_end": 57
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.8869,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 37002.38,
|
|
"total_return_pct": 270.0,
|
|
"cagr_pct": 38.4,
|
|
"max_drawdown_pct": 26.0,
|
|
"calmar": 1.48,
|
|
"sharpe": 1.55,
|
|
"sharpe_se": 0.495,
|
|
"psr": 0.9991,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.2957,
|
|
"return_kurtosis": 5.0413,
|
|
"trades": 472,
|
|
"win_rate": 36.0,
|
|
"avg_trade_pnl": 57.21,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 3492.7,
|
|
"worst_trade_pnl": -1084.05,
|
|
"avg_hold_days": 14.6,
|
|
"exit_reasons": {
|
|
"stop": 220,
|
|
"time": 93,
|
|
"trailing_stop": 159
|
|
},
|
|
"skipped_book_full": 352,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 8.9
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 49.4
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 35.1
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 38.6
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 21.6
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.7,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 2081,
|
|
"post_stop_events": 220,
|
|
"post_stop_reentries": 138,
|
|
"post_stop_states_open_at_end": 82
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a5_corr08_skip",
|
|
"group": "a5",
|
|
"label": "Corr max 0.8 skip",
|
|
"config": {
|
|
"corr_max": 0.8,
|
|
"corr_action": "skip"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6307,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20630.49,
|
|
"total_return_pct": 106.3,
|
|
"cagr_pct": 40.4,
|
|
"max_drawdown_pct": 19.1,
|
|
"calmar": 2.11,
|
|
"sharpe": 1.53,
|
|
"sharpe_se": 0.672,
|
|
"psr": 0.9888,
|
|
"n_returns": 535,
|
|
"return_skew": 0.549,
|
|
"return_kurtosis": 5.0219,
|
|
"trades": 246,
|
|
"win_rate": 34.6,
|
|
"avg_trade_pnl": 43.21,
|
|
"best_trade_r": 12.02,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1747.97,
|
|
"worst_trade_pnl": -488.82,
|
|
"avg_hold_days": 14.6,
|
|
"exit_reasons": {
|
|
"stop": 115,
|
|
"time": 49,
|
|
"trailing_stop": 82
|
|
},
|
|
"skipped_book_full": 110,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 7.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 62.1
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 19.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"corr_max": 0.8,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 972,
|
|
"post_stop_events": 115,
|
|
"post_stop_reentries": 64,
|
|
"post_stop_states_open_at_end": 51
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.5124,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 17526.76,
|
|
"total_return_pct": 75.3,
|
|
"cagr_pct": 32.4,
|
|
"max_drawdown_pct": 25.8,
|
|
"calmar": 1.26,
|
|
"sharpe": 1.37,
|
|
"sharpe_se": 0.709,
|
|
"psr": 0.9734,
|
|
"n_returns": 502,
|
|
"return_skew": 0.0771,
|
|
"return_kurtosis": 4.5796,
|
|
"trades": 233,
|
|
"win_rate": 33.9,
|
|
"avg_trade_pnl": 32.3,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1754.79,
|
|
"worst_trade_pnl": -584.11,
|
|
"avg_hold_days": 14.0,
|
|
"exit_reasons": {
|
|
"stop": 119,
|
|
"time": 40,
|
|
"trailing_stop": 74
|
|
},
|
|
"skipped_book_full": 175,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 18.4
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 40.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 5.8
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.8,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 786,
|
|
"post_stop_events": 119,
|
|
"post_stop_reentries": 64,
|
|
"post_stop_states_open_at_end": 55
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.8629,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 36493.29,
|
|
"total_return_pct": 264.9,
|
|
"cagr_pct": 38.0,
|
|
"max_drawdown_pct": 26.6,
|
|
"calmar": 1.43,
|
|
"sharpe": 1.49,
|
|
"sharpe_se": 0.493,
|
|
"psr": 0.9988,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.3855,
|
|
"return_kurtosis": 5.0281,
|
|
"trades": 475,
|
|
"win_rate": 34.7,
|
|
"avg_trade_pnl": 55.78,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 3653.74,
|
|
"worst_trade_pnl": -1216.23,
|
|
"avg_hold_days": 14.3,
|
|
"exit_reasons": {
|
|
"stop": 231,
|
|
"time": 90,
|
|
"trailing_stop": 154
|
|
},
|
|
"skipped_book_full": 285,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 7.0
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 62.1
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 42.2
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 40.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 5.8
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.8,
|
|
"corr_action": "skip",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 1753,
|
|
"post_stop_events": 231,
|
|
"post_stop_reentries": 146,
|
|
"post_stop_states_open_at_end": 85
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a5_corr06_half",
|
|
"group": "a5",
|
|
"label": "Corr max 0.6 half-size",
|
|
"config": {
|
|
"corr_max": 0.6,
|
|
"corr_action": "half_size"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.584,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19336.9,
|
|
"total_return_pct": 93.4,
|
|
"cagr_pct": 36.2,
|
|
"max_drawdown_pct": 16.5,
|
|
"calmar": 2.19,
|
|
"sharpe": 1.45,
|
|
"sharpe_se": 0.68,
|
|
"psr": 0.9836,
|
|
"n_returns": 535,
|
|
"return_skew": 0.288,
|
|
"return_kurtosis": 4.1851,
|
|
"trades": 273,
|
|
"win_rate": 35.5,
|
|
"avg_trade_pnl": 34.2,
|
|
"best_trade_r": 10.08,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1659.4,
|
|
"worst_trade_pnl": -434.74,
|
|
"avg_hold_days": 14.9,
|
|
"exit_reasons": {
|
|
"stop": 127,
|
|
"time": 60,
|
|
"trailing_stop": 86
|
|
},
|
|
"skipped_book_full": 852,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 13.3
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 44.4
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 18.3
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"corr_max": 0.6,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 127,
|
|
"post_stop_reentries": 77,
|
|
"post_stop_states_open_at_end": 50
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.4123,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 15635.8,
|
|
"total_return_pct": 56.4,
|
|
"cagr_pct": 25.0,
|
|
"max_drawdown_pct": 25.7,
|
|
"calmar": 0.97,
|
|
"sharpe": 1.19,
|
|
"sharpe_se": 0.713,
|
|
"psr": 0.9522,
|
|
"n_returns": 502,
|
|
"return_skew": -0.0745,
|
|
"return_kurtosis": 3.9876,
|
|
"trades": 255,
|
|
"win_rate": 36.1,
|
|
"avg_trade_pnl": 22.1,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 1618.15,
|
|
"worst_trade_pnl": -582.94,
|
|
"avg_hold_days": 14.2,
|
|
"exit_reasons": {
|
|
"stop": 129,
|
|
"time": 50,
|
|
"trailing_stop": 76
|
|
},
|
|
"skipped_book_full": 319,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 17.9
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 22.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 8.7
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.6,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 129,
|
|
"post_stop_reentries": 69,
|
|
"post_stop_states_open_at_end": 60
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.8061,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 31027.6,
|
|
"total_return_pct": 210.3,
|
|
"cagr_pct": 32.5,
|
|
"max_drawdown_pct": 25.4,
|
|
"calmar": 1.28,
|
|
"sharpe": 1.38,
|
|
"sharpe_se": 0.497,
|
|
"psr": 0.9973,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.2057,
|
|
"return_kurtosis": 4.4463,
|
|
"trades": 521,
|
|
"win_rate": 36.1,
|
|
"avg_trade_pnl": 40.36,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -5.98,
|
|
"best_trade_pnl": 3211.04,
|
|
"worst_trade_pnl": -1156.81,
|
|
"avg_hold_days": 14.5,
|
|
"exit_reasons": {
|
|
"stop": 252,
|
|
"time": 109,
|
|
"trailing_stop": 160
|
|
},
|
|
"skipped_book_full": 1156,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 13.3
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 44.4
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 43.1
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 22.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 8.7
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.6,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 252,
|
|
"post_stop_reentries": 165,
|
|
"post_stop_states_open_at_end": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a5_corr07_half",
|
|
"group": "a5",
|
|
"label": "Corr max 0.7 half-size",
|
|
"config": {
|
|
"corr_max": 0.7,
|
|
"corr_action": "half_size"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.6795,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 21294.81,
|
|
"total_return_pct": 112.9,
|
|
"cagr_pct": 42.5,
|
|
"max_drawdown_pct": 16.2,
|
|
"calmar": 2.62,
|
|
"sharpe": 1.62,
|
|
"sharpe_se": 0.674,
|
|
"psr": 0.9919,
|
|
"n_returns": 535,
|
|
"return_skew": 0.4864,
|
|
"return_kurtosis": 5.2162,
|
|
"trades": 253,
|
|
"win_rate": 36.4,
|
|
"avg_trade_pnl": 44.64,
|
|
"best_trade_r": 9.84,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1805.21,
|
|
"worst_trade_pnl": -504.62,
|
|
"avg_hold_days": 15.3,
|
|
"exit_reasons": {
|
|
"stop": 116,
|
|
"time": 57,
|
|
"trailing_stop": 80
|
|
},
|
|
"skipped_book_full": 640,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 10.1
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 57.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 22.6
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"corr_max": 0.7,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 116,
|
|
"post_stop_reentries": 68,
|
|
"post_stop_states_open_at_end": 48
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.6383,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 19079.7,
|
|
"total_return_pct": 90.8,
|
|
"cagr_pct": 38.1,
|
|
"max_drawdown_pct": 21.1,
|
|
"calmar": 1.8,
|
|
"sharpe": 1.6,
|
|
"sharpe_se": 0.712,
|
|
"psr": 0.9877,
|
|
"n_returns": 502,
|
|
"return_skew": 0.0092,
|
|
"return_kurtosis": 4.5927,
|
|
"trades": 246,
|
|
"win_rate": 36.6,
|
|
"avg_trade_pnl": 36.91,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -2.72,
|
|
"best_trade_pnl": 1841.96,
|
|
"worst_trade_pnl": -244.78,
|
|
"avg_hold_days": 14.5,
|
|
"exit_reasons": {
|
|
"stop": 121,
|
|
"time": 47,
|
|
"trailing_stop": 78
|
|
},
|
|
"skipped_book_full": 268,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 16.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 36.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 20.3
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.7,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 121,
|
|
"post_stop_reentries": 64,
|
|
"post_stop_states_open_at_end": 57
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.9244,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 41509.52,
|
|
"total_return_pct": 315.1,
|
|
"cagr_pct": 42.5,
|
|
"max_drawdown_pct": 21.8,
|
|
"calmar": 1.95,
|
|
"sharpe": 1.66,
|
|
"sharpe_se": 0.494,
|
|
"psr": 0.9996,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.3293,
|
|
"return_kurtosis": 5.1731,
|
|
"trades": 492,
|
|
"win_rate": 36.8,
|
|
"avg_trade_pnl": 64.04,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 4007.34,
|
|
"worst_trade_pnl": -532.55,
|
|
"avg_hold_days": 14.8,
|
|
"exit_reasons": {
|
|
"stop": 233,
|
|
"time": 103,
|
|
"trailing_stop": 156
|
|
},
|
|
"skipped_book_full": 893,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 10.1
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 57.8
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 46.1
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 36.0
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 20.3
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.7,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 233,
|
|
"post_stop_reentries": 149,
|
|
"post_stop_states_open_at_end": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "a5_corr08_half",
|
|
"group": "a5",
|
|
"label": "Corr max 0.8 half-size",
|
|
"config": {
|
|
"corr_max": 0.8,
|
|
"corr_action": "half_size"
|
|
},
|
|
"windows": [
|
|
{
|
|
"window": "train",
|
|
"dsr": 0.647,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 20772.57,
|
|
"total_return_pct": 107.7,
|
|
"cagr_pct": 40.8,
|
|
"max_drawdown_pct": 16.1,
|
|
"calmar": 2.54,
|
|
"sharpe": 1.56,
|
|
"sharpe_se": 0.674,
|
|
"psr": 0.9898,
|
|
"n_returns": 535,
|
|
"return_skew": 0.4833,
|
|
"return_kurtosis": 5.2408,
|
|
"trades": 256,
|
|
"win_rate": 35.5,
|
|
"avg_trade_pnl": 42.08,
|
|
"best_trade_r": 9.84,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 1760.01,
|
|
"worst_trade_pnl": -492.18,
|
|
"avg_hold_days": 15.2,
|
|
"exit_reasons": {
|
|
"stop": 118,
|
|
"time": 56,
|
|
"trailing_stop": 82
|
|
},
|
|
"skipped_book_full": 496,
|
|
"spy_return_pct": 36.7,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 11.2
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 57.1
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 19.1
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2024-08-12",
|
|
"corr_max": 0.8,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 118,
|
|
"post_stop_reentries": 68,
|
|
"post_stop_states_open_at_end": 50
|
|
},
|
|
{
|
|
"window": "validation",
|
|
"dsr": 0.5404,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 17761.84,
|
|
"total_return_pct": 77.6,
|
|
"cagr_pct": 33.2,
|
|
"max_drawdown_pct": 21.1,
|
|
"calmar": 1.57,
|
|
"sharpe": 1.42,
|
|
"sharpe_se": 0.709,
|
|
"psr": 0.9775,
|
|
"n_returns": 502,
|
|
"return_skew": 0.0929,
|
|
"return_kurtosis": 4.6772,
|
|
"trades": 243,
|
|
"win_rate": 34.2,
|
|
"avg_trade_pnl": 31.94,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -2.72,
|
|
"best_trade_pnl": 1781.5,
|
|
"worst_trade_pnl": -323.26,
|
|
"avg_hold_days": 13.9,
|
|
"exit_reasons": {
|
|
"stop": 124,
|
|
"time": 42,
|
|
"trailing_stop": 77
|
|
},
|
|
"skipped_book_full": 207,
|
|
"spy_return_pct": 36.6,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 16.7
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 40.1
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 8.7
|
|
}
|
|
],
|
|
"start_date": "2024-07-01",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.8,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 124,
|
|
"post_stop_reentries": 69,
|
|
"post_stop_states_open_at_end": 55
|
|
},
|
|
{
|
|
"window": "full",
|
|
"dsr": 0.8874,
|
|
"starting_capital": 10000.0,
|
|
"cost_per_side_pct": 0.1,
|
|
"fill_mode": "close",
|
|
"final_equity": 37868.93,
|
|
"total_return_pct": 278.7,
|
|
"cagr_pct": 39.2,
|
|
"max_drawdown_pct": 21.8,
|
|
"calmar": 1.8,
|
|
"sharpe": 1.55,
|
|
"sharpe_se": 0.494,
|
|
"psr": 0.9992,
|
|
"n_returns": 1008,
|
|
"return_skew": 0.3727,
|
|
"return_kurtosis": 5.2567,
|
|
"trades": 492,
|
|
"win_rate": 35.2,
|
|
"avg_trade_pnl": 56.64,
|
|
"best_trade_r": 12.37,
|
|
"worst_trade_r": -3.1,
|
|
"best_trade_pnl": 3798.23,
|
|
"worst_trade_pnl": -689.2,
|
|
"avg_hold_days": 14.5,
|
|
"exit_reasons": {
|
|
"stop": 238,
|
|
"time": 97,
|
|
"trailing_stop": 157
|
|
},
|
|
"skipped_book_full": 688,
|
|
"spy_return_pct": 90.9,
|
|
"yearly_returns": [
|
|
{
|
|
"year": 2022,
|
|
"return_pct": 11.2
|
|
},
|
|
{
|
|
"year": 2023,
|
|
"return_pct": 57.1
|
|
},
|
|
{
|
|
"year": 2024,
|
|
"return_pct": 42.5
|
|
},
|
|
{
|
|
"year": 2025,
|
|
"return_pct": 40.1
|
|
},
|
|
{
|
|
"year": 2026,
|
|
"return_pct": 8.7
|
|
}
|
|
],
|
|
"start_date": "2022-06-24",
|
|
"end_date": "2026-07-02",
|
|
"corr_max": 0.8,
|
|
"corr_action": "half_size",
|
|
"corr_lookback": 120,
|
|
"skipped_corr": 0,
|
|
"post_stop_events": 238,
|
|
"post_stop_reentries": 154,
|
|
"post_stop_states_open_at_end": 84
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"promotion": {
|
|
"a2_hold_30": {
|
|
"promote": true,
|
|
"reason": "validation Sharpe 1.68 \u2265 control 1.68; DD 20.9 within +2pp of 20.9; train Sharpe 1.75 \u2265 1.75 (delta \u2264 1 SE \u2014 distinguishable noise bar not cleared)",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": true,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": true,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": 0.0,
|
|
"se_used": 0.716
|
|
}
|
|
},
|
|
"a2_hold_45": {
|
|
"promote": false,
|
|
"reason": "failed: train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": true,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": 0.39,
|
|
"se_used": 0.698
|
|
}
|
|
},
|
|
"a2_hold_60": {
|
|
"promote": false,
|
|
"reason": "failed: train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": true,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": 0.44,
|
|
"se_used": 0.695
|
|
}
|
|
},
|
|
"a2_hold_90": {
|
|
"promote": false,
|
|
"reason": "failed: validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": true,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": 0.36,
|
|
"se_used": 0.711
|
|
}
|
|
},
|
|
"a3_vt15_c05_15_lb60": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.44,
|
|
"se_used": 0.715
|
|
}
|
|
},
|
|
"a3_vt20_c05_15_lb60": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.2,
|
|
"se_used": 0.715
|
|
}
|
|
},
|
|
"a3_vt25_c05_15_lb60": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.05,
|
|
"se_used": 0.706
|
|
}
|
|
},
|
|
"a3_vt15_c025_20_lb60": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.44,
|
|
"se_used": 0.715
|
|
}
|
|
},
|
|
"a3_vt20_c025_20_lb60": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.2,
|
|
"se_used": 0.715
|
|
}
|
|
},
|
|
"a3_vt25_c025_20_lb60": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.05,
|
|
"se_used": 0.706
|
|
}
|
|
},
|
|
"a3_vt20_c05_15_lb20": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": true,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.03,
|
|
"se_used": 0.711
|
|
}
|
|
},
|
|
"a3_vt20_c05_15_lb126": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.31,
|
|
"se_used": 0.714
|
|
}
|
|
},
|
|
"a4_next_open": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.24,
|
|
"se_used": 0.719
|
|
}
|
|
},
|
|
"a5_corr06_skip": {
|
|
"promote": false,
|
|
"reason": "failed: train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": true,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": 0.02,
|
|
"se_used": 0.714
|
|
}
|
|
},
|
|
"a5_corr07_skip": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.05,
|
|
"se_used": 0.709
|
|
}
|
|
},
|
|
"a5_corr08_skip": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.31,
|
|
"se_used": 0.709
|
|
}
|
|
},
|
|
"a5_corr06_half": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, validation_dd_not_worse_by_2pp, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": false,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.49,
|
|
"se_used": 0.713
|
|
}
|
|
},
|
|
"a5_corr07_half": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.08,
|
|
"se_used": 0.712
|
|
}
|
|
},
|
|
"a5_corr08_half": {
|
|
"promote": false,
|
|
"reason": "failed: validation_sharpe_ge_control, train_sharpe_not_worse",
|
|
"checks": {
|
|
"validation_sharpe_ge_control": false,
|
|
"validation_dd_not_worse_by_2pp": true,
|
|
"train_sharpe_not_worse": false,
|
|
"delta_exceeds_1se": false,
|
|
"validation_sharpe_delta": -0.26,
|
|
"se_used": 0.709
|
|
}
|
|
}
|
|
}
|
|
} |