{"runs":[{"id":49,"run_date":"2026-07-22","lookback_days":90,"sample_count":1472,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":537,"trading_days":22,"gross_pnl":14079232,"net_pnl":13378164,"avg_profit_rate":5.476727353833049,"win_rate":84.17132216014897,"avg_hold_minutes":74.09075108628181,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":937,"trading_days":40,"gross_pnl":24714498,"net_pnl":23513660,"avg_profit_rate":5.608482811675736,"win_rate":86.01921024546425,"avg_hold_minutes":71.69548203486305,"max_loss_rate":-33.824057450628366},"90":{"lookback_days":90,"sample_count":1472,"trading_days":60,"gross_pnl":39175638,"net_pnl":37347190,"avg_profit_rate":5.864710036475321,"win_rate":86.07336956521739,"avg_hold_minutes":71.02266757246377,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":537,"trading_days":22,"gross_pnl":14079232,"net_pnl":13378164,"avg_profit_rate":5.476727353833049,"win_rate":84.17132216014897,"avg_hold_minutes":74.09075108628181,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":937,"trading_days":40,"gross_pnl":24714498,"net_pnl":23513660,"avg_profit_rate":5.608482811675736,"win_rate":86.01921024546425,"avg_hold_minutes":71.69548203486305,"max_loss_rate":-33.824057450628366},"90":{"lookback_days":90,"sample_count":1472,"trading_days":60,"gross_pnl":39175638,"net_pnl":37347190,"avg_profit_rate":5.864710036475321,"win_rate":86.07336956521739,"avg_hold_minutes":71.02266757246377,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":20,"bought_count":17,"avg_max_profit_rate":6.08935,"avg_min_profit_rate":-9.526315,"avg_close_profit_rate":3.615565,"win_rate":70.0,"target_rate":50.0,"risk_rate":100.0,"max_loss_rate":-12.9187,"trading_days":12,"lookback_days":30},"60":{"count":32,"bought_count":29,"avg_max_profit_rate":5.3432625,"avg_min_profit_rate":-9.665334375,"avg_close_profit_rate":2.903359375,"win_rate":68.75,"target_rate":43.75,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":17,"lookback_days":60},"90":{"count":32,"bought_count":29,"avg_max_profit_rate":5.3432625,"avg_min_profit_rate":-9.665334375,"avg_close_profit_rate":2.903359375,"win_rate":68.75,"target_rate":43.75,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":17,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1472,"trading_days":60,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":32,"trading_days":17,"improved_windows":1,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_0~3","horizon_minutes":60},"outcome_refresh":{"snapshots":534,"outcomes_updated":1587,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_0~3"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-22 16:12:39"},{"id":48,"run_date":"2026-07-21","lookback_days":90,"sample_count":1481,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":517,"trading_days":21,"gross_pnl":13581264,"net_pnl":12906147,"avg_profit_rate":5.4866710049609795,"win_rate":84.13926499032883,"avg_hold_minutes":73.98833010960671,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":949,"trading_days":40,"gross_pnl":24936640,"net_pnl":23724264,"avg_profit_rate":5.605461895110917,"win_rate":85.98524762908325,"avg_hold_minutes":71.3632420091324,"max_loss_rate":-33.824057450628366},"90":{"lookback_days":90,"sample_count":1481,"trading_days":60,"gross_pnl":39530149,"net_pnl":37694329,"avg_profit_rate":5.897155686424317,"win_rate":86.09047940580689,"avg_hold_minutes":70.9281453972541,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":517,"trading_days":21,"gross_pnl":13581264,"net_pnl":12906147,"avg_profit_rate":5.4866710049609795,"win_rate":84.13926499032883,"avg_hold_minutes":73.98833010960671,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":949,"trading_days":40,"gross_pnl":24936640,"net_pnl":23724264,"avg_profit_rate":5.605461895110917,"win_rate":85.98524762908325,"avg_hold_minutes":71.3632420091324,"max_loss_rate":-33.824057450628366},"90":{"lookback_days":90,"sample_count":1481,"trading_days":60,"gross_pnl":39530149,"net_pnl":37694329,"avg_profit_rate":5.897155686424317,"win_rate":86.09047940580689,"avg_hold_minutes":70.9281453972541,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":20,"bought_count":17,"avg_max_profit_rate":6.08935,"avg_min_profit_rate":-9.526315,"avg_close_profit_rate":3.615565,"win_rate":70.0,"target_rate":50.0,"risk_rate":100.0,"max_loss_rate":-12.9187,"trading_days":12,"lookback_days":30},"60":{"count":32,"bought_count":29,"avg_max_profit_rate":5.3432625,"avg_min_profit_rate":-9.665334375,"avg_close_profit_rate":2.903359375,"win_rate":68.75,"target_rate":43.75,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":17,"lookback_days":60},"90":{"count":32,"bought_count":29,"avg_max_profit_rate":5.3432625,"avg_min_profit_rate":-9.665334375,"avg_close_profit_rate":2.903359375,"win_rate":68.75,"target_rate":43.75,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":17,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1481,"trading_days":60,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":32,"trading_days":17,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_0~3","horizon_minutes":60},"outcome_refresh":{"snapshots":517,"outcomes_updated":1536,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_0~3"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-21 16:12:18"},{"id":47,"run_date":"2026-07-20","lookback_days":90,"sample_count":1493,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":498,"trading_days":20,"gross_pnl":13054236,"net_pnl":12405295,"avg_profit_rate":5.491505754532994,"win_rate":84.33734939759037,"avg_hold_minutes":73.78577643908969,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":954,"trading_days":40,"gross_pnl":24902014,"net_pnl":23687086,"avg_profit_rate":5.584291688731811,"win_rate":85.9538784067086,"avg_hold_minutes":71.28958770090846,"max_loss_rate":-33.824057450628366},"90":{"lookback_days":90,"sample_count":1493,"trading_days":60,"gross_pnl":39846783,"net_pnl":38000471,"avg_profit_rate":5.909979367720229,"win_rate":86.20227729403884,"avg_hold_minutes":70.81368609064523,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":498,"trading_days":20,"gross_pnl":13054236,"net_pnl":12405295,"avg_profit_rate":5.491505754532994,"win_rate":84.33734939759037,"avg_hold_minutes":73.78577643908969,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":954,"trading_days":40,"gross_pnl":24902014,"net_pnl":23687086,"avg_profit_rate":5.584291688731811,"win_rate":85.9538784067086,"avg_hold_minutes":71.28958770090846,"max_loss_rate":-33.824057450628366},"90":{"lookback_days":90,"sample_count":1493,"trading_days":60,"gross_pnl":39846783,"net_pnl":38000471,"avg_profit_rate":5.909979367720229,"win_rate":86.20227729403884,"avg_hold_minutes":70.81368609064523,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":20,"bought_count":17,"avg_max_profit_rate":6.08935,"avg_min_profit_rate":-9.526315,"avg_close_profit_rate":3.615565,"win_rate":70.0,"target_rate":50.0,"risk_rate":100.0,"max_loss_rate":-12.9187,"trading_days":12,"lookback_days":30},"60":{"count":32,"bought_count":29,"avg_max_profit_rate":5.3432625,"avg_min_profit_rate":-9.665334375,"avg_close_profit_rate":2.903359375,"win_rate":68.75,"target_rate":43.75,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":17,"lookback_days":60},"90":{"count":32,"bought_count":29,"avg_max_profit_rate":5.3432625,"avg_min_profit_rate":-9.665334375,"avg_close_profit_rate":2.903359375,"win_rate":68.75,"target_rate":43.75,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":17,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1493,"trading_days":60,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":32,"trading_days":17,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_0~3","horizon_minutes":60},"outcome_refresh":{"snapshots":505,"outcomes_updated":1500,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_0~3"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-20 16:12:17"},{"id":46,"run_date":"2026-07-17","lookback_days":90,"sample_count":1504,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":555,"trading_days":22,"gross_pnl":15004506,"net_pnl":14285387,"avg_profit_rate":5.713876529868442,"win_rate":85.58558558558559,"avg_hold_minutes":71.84177177177177,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1008,"trading_days":42,"gross_pnl":26191562,"net_pnl":24908981,"avg_profit_rate":5.557452129256998,"win_rate":85.81349206349206,"avg_hold_minutes":71.40934193121693,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1504,"trading_days":60,"gross_pnl":40755838,"net_pnl":38895823,"avg_profit_rate":6.006553199872053,"win_rate":86.70212765957447,"avg_hold_minutes":70.5157579787234,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":555,"trading_days":22,"gross_pnl":15004506,"net_pnl":14285387,"avg_profit_rate":5.713876529868442,"win_rate":85.58558558558559,"avg_hold_minutes":71.84177177177177,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1008,"trading_days":42,"gross_pnl":26191562,"net_pnl":24908981,"avg_profit_rate":5.557452129256998,"win_rate":85.81349206349206,"avg_hold_minutes":71.40934193121693,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1504,"trading_days":60,"gross_pnl":40755838,"net_pnl":38895823,"avg_profit_rate":6.006553199872053,"win_rate":86.70212765957447,"avg_hold_minutes":70.5157579787234,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":39,"bought_count":38,"avg_max_profit_rate":7.3052230769230775,"avg_min_profit_rate":-8.64801282051282,"avg_close_profit_rate":3.47464358974359,"win_rate":82.05128205128204,"target_rate":56.41025641025641,"risk_rate":100.0,"max_loss_rate":-12.8238,"trading_days":18,"lookback_days":30},"60":{"count":47,"bought_count":46,"avg_max_profit_rate":6.828140425531915,"avg_min_profit_rate":-8.401510638297871,"avg_close_profit_rate":3.0547638297872344,"win_rate":78.72340425531915,"target_rate":53.191489361702125,"risk_rate":97.87234042553192,"max_loss_rate":-12.8238,"trading_days":24,"lookback_days":60},"90":{"count":47,"bought_count":46,"avg_max_profit_rate":6.828140425531915,"avg_min_profit_rate":-8.401510638297871,"avg_close_profit_rate":3.0547638297872344,"win_rate":78.72340425531915,"target_rate":53.191489361702125,"risk_rate":97.87234042553192,"max_loss_rate":-12.8238,"trading_days":24,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1504,"trading_days":60,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":true,"sample_count":47,"trading_days":24,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":488,"outcomes_updated":1449,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"no_change","applied_strategy_version":null,"created_at":"2026-07-17 16:12:48"},{"id":45,"run_date":"2026-07-16","lookback_days":90,"sample_count":1529,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":576,"trading_days":23,"gross_pnl":15581549,"net_pnl":14836491,"avg_profit_rate":5.723198250008945,"win_rate":85.59027777777779,"avg_hold_minutes":71.66689814814815,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1008,"trading_days":42,"gross_pnl":26191562,"net_pnl":24908981,"avg_profit_rate":5.557452129256998,"win_rate":85.81349206349206,"avg_hold_minutes":71.40934193121693,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1529,"trading_days":61,"gross_pnl":41159692,"net_pnl":39270234,"avg_profit_rate":5.968217434928596,"win_rate":86.46173969914977,"avg_hold_minutes":70.43093525179856,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":576,"trading_days":23,"gross_pnl":15581549,"net_pnl":14836491,"avg_profit_rate":5.723198250008945,"win_rate":85.59027777777779,"avg_hold_minutes":71.66689814814815,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1008,"trading_days":42,"gross_pnl":26191562,"net_pnl":24908981,"avg_profit_rate":5.557452129256998,"win_rate":85.81349206349206,"avg_hold_minutes":71.40934193121693,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1529,"trading_days":61,"gross_pnl":41159692,"net_pnl":39270234,"avg_profit_rate":5.968217434928596,"win_rate":86.46173969914977,"avg_hold_minutes":70.43093525179856,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":40,"bought_count":39,"avg_max_profit_rate":7.315655,"avg_min_profit_rate":-8.582335,"avg_close_profit_rate":3.4761274999999996,"win_rate":82.5,"target_rate":57.49999999999999,"risk_rate":100.0,"max_loss_rate":-12.8238,"trading_days":19,"lookback_days":30},"60":{"count":47,"bought_count":46,"avg_max_profit_rate":6.828140425531915,"avg_min_profit_rate":-8.401510638297871,"avg_close_profit_rate":3.0547638297872344,"win_rate":78.72340425531915,"target_rate":53.191489361702125,"risk_rate":97.87234042553192,"max_loss_rate":-12.8238,"trading_days":24,"lookback_days":60},"90":{"count":47,"bought_count":46,"avg_max_profit_rate":6.828140425531915,"avg_min_profit_rate":-8.401510638297871,"avg_close_profit_rate":3.0547638297872344,"win_rate":78.72340425531915,"target_rate":53.191489361702125,"risk_rate":97.87234042553192,"max_loss_rate":-12.8238,"trading_days":24,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1529,"trading_days":61,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":true,"sample_count":47,"trading_days":24,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":488,"outcomes_updated":1449,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"no_change","applied_strategy_version":null,"created_at":"2026-07-16 16:12:47"},{"id":44,"run_date":"2026-07-15","lookback_days":90,"sample_count":1520,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":565,"trading_days":23,"gross_pnl":15513991,"net_pnl":14782127,"avg_profit_rate":5.796221369382614,"win_rate":85.6637168141593,"avg_hold_minutes":71.76209439528024,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":974,"trading_days":41,"gross_pnl":25468820,"net_pnl":24229395,"avg_profit_rate":5.586623187912051,"win_rate":86.0369609856263,"avg_hold_minutes":71.28658453114305,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1520,"trading_days":61,"gross_pnl":41032549,"net_pnl":39157702,"avg_profit_rate":5.987912809755154,"win_rate":86.64473684210526,"avg_hold_minutes":70.36836622807017,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":565,"trading_days":23,"gross_pnl":15513991,"net_pnl":14782127,"avg_profit_rate":5.796221369382614,"win_rate":85.6637168141593,"avg_hold_minutes":71.76209439528024,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":974,"trading_days":41,"gross_pnl":25468820,"net_pnl":24229395,"avg_profit_rate":5.586623187912051,"win_rate":86.0369609856263,"avg_hold_minutes":71.28658453114305,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1520,"trading_days":61,"gross_pnl":41032549,"net_pnl":39157702,"avg_profit_rate":5.987912809755154,"win_rate":86.64473684210526,"avg_hold_minutes":70.36836622807017,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":40,"bought_count":39,"avg_max_profit_rate":6.8798575,"avg_min_profit_rate":-8.5599575,"avg_close_profit_rate":3.39492,"win_rate":82.5,"target_rate":57.49999999999999,"risk_rate":100.0,"max_loss_rate":-12.8238,"trading_days":19,"lookback_days":30},"60":{"count":46,"bought_count":45,"avg_max_profit_rate":6.476578260869565,"avg_min_profit_rate":-8.384876086956522,"avg_close_profit_rate":3.041460869565217,"win_rate":78.26086956521739,"target_rate":52.17391304347826,"risk_rate":97.82608695652173,"max_loss_rate":-12.8238,"trading_days":23,"lookback_days":60},"90":{"count":46,"bought_count":45,"avg_max_profit_rate":6.476578260869565,"avg_min_profit_rate":-8.384876086956522,"avg_close_profit_rate":3.041460869565217,"win_rate":78.26086956521739,"target_rate":52.17391304347826,"risk_rate":97.82608695652173,"max_loss_rate":-12.8238,"trading_days":23,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1520,"trading_days":61,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":true,"sample_count":46,"trading_days":23,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":472,"outcomes_updated":1401,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"no_change","applied_strategy_version":null,"created_at":"2026-07-15 16:12:44"},{"id":43,"run_date":"2026-07-14","lookback_days":90,"sample_count":1524,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":540,"trading_days":22,"gross_pnl":14825778,"net_pnl":14125644,"avg_profit_rate":5.794056681759773,"win_rate":85.37037037037038,"avg_hold_minutes":71.06864197530864,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":978,"trading_days":41,"gross_pnl":25236678,"net_pnl":23997193,"avg_profit_rate":5.527979472072306,"win_rate":85.78732106339469,"avg_hold_minutes":71.10419222903884,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1524,"trading_days":61,"gross_pnl":41240227,"net_pnl":39362560,"avg_profit_rate":6.013260980350258,"win_rate":86.81102362204724,"avg_hold_minutes":70.12961504811899,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":540,"trading_days":22,"gross_pnl":14825778,"net_pnl":14125644,"avg_profit_rate":5.794056681759773,"win_rate":85.37037037037038,"avg_hold_minutes":71.06864197530864,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":978,"trading_days":41,"gross_pnl":25236678,"net_pnl":23997193,"avg_profit_rate":5.527979472072306,"win_rate":85.78732106339469,"avg_hold_minutes":71.10419222903884,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1524,"trading_days":61,"gross_pnl":41240227,"net_pnl":39362560,"avg_profit_rate":6.013260980350258,"win_rate":86.81102362204724,"avg_hold_minutes":70.12961504811899,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":39,"bought_count":38,"avg_max_profit_rate":7.015894871794871,"avg_min_profit_rate":-8.637500000000001,"avg_close_profit_rate":3.463738461538462,"win_rate":82.05128205128204,"target_rate":58.97435897435898,"risk_rate":100.0,"max_loss_rate":-12.8238,"trading_days":18,"lookback_days":30},"60":{"count":45,"bought_count":44,"avg_max_profit_rate":6.585515555555556,"avg_min_profit_rate":-8.44818888888889,"avg_close_profit_rate":3.093248888888889,"win_rate":77.77777777777779,"target_rate":53.333333333333336,"risk_rate":97.77777777777777,"max_loss_rate":-12.8238,"trading_days":22,"lookback_days":60},"90":{"count":45,"bought_count":44,"avg_max_profit_rate":6.585515555555556,"avg_min_profit_rate":-8.44818888888889,"avg_close_profit_rate":3.093248888888889,"win_rate":77.77777777777779,"target_rate":53.333333333333336,"risk_rate":97.77777777777777,"max_loss_rate":-12.8238,"trading_days":22,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1524,"trading_days":61,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":true,"sample_count":45,"trading_days":22,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":463,"outcomes_updated":1374,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"no_change","applied_strategy_version":null,"created_at":"2026-07-14 16:12:41"},{"id":42,"run_date":"2026-07-13","lookback_days":90,"sample_count":1521,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":514,"trading_days":21,"gross_pnl":14044206,"net_pnl":13379281,"avg_profit_rate":5.777580425780329,"win_rate":85.60311284046692,"avg_hold_minutes":71.35171854734111,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":984,"trading_days":41,"gross_pnl":25174472,"net_pnl":23933374,"avg_profit_rate":5.512420068276829,"win_rate":85.97560975609755,"avg_hold_minutes":71.48426490514905,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1521,"trading_days":61,"gross_pnl":41060512,"net_pnl":39190432,"avg_profit_rate":6.007498497986526,"win_rate":86.85075608152532,"avg_hold_minutes":70.24639491562569,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":514,"trading_days":21,"gross_pnl":14044206,"net_pnl":13379281,"avg_profit_rate":5.777580425780329,"win_rate":85.60311284046692,"avg_hold_minutes":71.35171854734111,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":984,"trading_days":41,"gross_pnl":25174472,"net_pnl":23933374,"avg_profit_rate":5.512420068276829,"win_rate":85.97560975609755,"avg_hold_minutes":71.48426490514905,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1521,"trading_days":61,"gross_pnl":41060512,"net_pnl":39190432,"avg_profit_rate":6.007498497986526,"win_rate":86.85075608152532,"avg_hold_minutes":70.24639491562569,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":37,"bought_count":36,"avg_max_profit_rate":7.277902702702702,"avg_min_profit_rate":-8.548437837837838,"avg_close_profit_rate":3.736705405405406,"win_rate":83.78378378378379,"target_rate":62.16216216216216,"risk_rate":100.0,"max_loss_rate":-12.0347,"trading_days":17,"lookback_days":30},"60":{"count":43,"bought_count":42,"avg_max_profit_rate":6.790946511627907,"avg_min_profit_rate":-8.362748837209303,"avg_close_profit_rate":3.3108953488372097,"win_rate":79.06976744186046,"target_rate":55.81395348837209,"risk_rate":97.67441860465115,"max_loss_rate":-12.0347,"trading_days":21,"lookback_days":60},"90":{"count":43,"bought_count":42,"avg_max_profit_rate":6.790946511627907,"avg_min_profit_rate":-8.362748837209303,"avg_close_profit_rate":3.3108953488372097,"win_rate":79.06976744186046,"target_rate":55.81395348837209,"risk_rate":97.67441860465115,"max_loss_rate":-12.0347,"trading_days":21,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1521,"trading_days":61,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":true,"sample_count":43,"trading_days":21,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":448,"outcomes_updated":1329,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"no_change","applied_strategy_version":null,"created_at":"2026-07-13 16:12:38"},{"id":41,"run_date":"2026-07-10","lookback_days":90,"sample_count":1539,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":556,"trading_days":23,"gross_pnl":15257889,"net_pnl":14540496,"avg_profit_rate":5.8222187176900135,"win_rate":86.15107913669064,"avg_hold_minutes":70.24298561151079,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1047,"trading_days":43,"gross_pnl":27101374,"net_pnl":25793137,"avg_profit_rate":5.6823840316912815,"win_rate":86.15090735434575,"avg_hold_minutes":70.8411652340019,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1539,"trading_days":61,"gross_pnl":41762863,"net_pnl":39873959,"avg_profit_rate":6.057000457466876,"win_rate":87.06952566601689,"avg_hold_minutes":70.11333116742473,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":true,"source":"feature_learning","summary":"change_rate=5~7","rules":[{"field":"change_rate","bucket":"5~7"}],"change_rate_min":5,"change_rate_max":7}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":556,"trading_days":23,"gross_pnl":15257889,"net_pnl":14540496,"avg_profit_rate":5.8222187176900135,"win_rate":86.15107913669064,"avg_hold_minutes":70.24298561151079,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1047,"trading_days":43,"gross_pnl":27101374,"net_pnl":25793137,"avg_profit_rate":5.6823840316912815,"win_rate":86.15090735434575,"avg_hold_minutes":70.8411652340019,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1539,"trading_days":61,"gross_pnl":41762863,"net_pnl":39873959,"avg_profit_rate":6.057000457466876,"win_rate":87.06952566601689,"avg_hold_minutes":70.11333116742473,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":41,"bought_count":40,"avg_max_profit_rate":7.096914634146342,"avg_min_profit_rate":-8.504490243902438,"avg_close_profit_rate":3.4707,"win_rate":80.48780487804879,"target_rate":58.536585365853654,"risk_rate":100.0,"max_loss_rate":-12.0347,"trading_days":19,"lookback_days":30},"60":{"count":42,"bought_count":41,"avg_max_profit_rate":6.9421309523809525,"avg_min_profit_rate":-8.40079761904762,"avg_close_profit_rate":3.3967285714285715,"win_rate":80.95238095238095,"target_rate":57.14285714285714,"risk_rate":97.61904761904762,"max_loss_rate":-12.0347,"trading_days":20,"lookback_days":60},"90":{"count":42,"bought_count":41,"avg_max_profit_rate":6.9421309523809525,"avg_min_profit_rate":-8.40079761904762,"avg_close_profit_rate":3.3967285714285715,"win_rate":80.95238095238095,"target_rate":57.14285714285714,"risk_rate":97.61904761904762,"max_loss_rate":-12.0347,"trading_days":20,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1539,"trading_days":61,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk","effective_date":"2026-07-13"},"buy_entry":{"sample_ok":true,"sample_count":42,"trading_days":20,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60,"effective_date":"2026-07-13"},"outcome_refresh":{"snapshots":428,"outcomes_updated":1269,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"applied","applied_strategy_version":"v20260710161213-auto","created_at":"2026-07-10 16:12:13"},{"id":40,"run_date":"2026-07-09","lookback_days":90,"sample_count":1512,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":546,"trading_days":23,"gross_pnl":14942748,"net_pnl":14237747,"avg_profit_rate":5.805634287852131,"win_rate":85.8974358974359,"avg_hold_minutes":70.2415750915751,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1020,"trading_days":42,"gross_pnl":26330289,"net_pnl":25055225,"avg_profit_rate":5.667651968008647,"win_rate":85.7843137254902,"avg_hold_minutes":70.97565359477125,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1512,"trading_days":60,"gross_pnl":40991778,"net_pnl":39136047,"avg_profit_rate":6.053751739569821,"win_rate":86.83862433862434,"avg_hold_minutes":70.19106040564374,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":546,"trading_days":23,"gross_pnl":14942748,"net_pnl":14237747,"avg_profit_rate":5.805634287852131,"win_rate":85.8974358974359,"avg_hold_minutes":70.2415750915751,"max_loss_rate":-22.531214528944382},"60":{"lookback_days":60,"sample_count":1020,"trading_days":42,"gross_pnl":26330289,"net_pnl":25055225,"avg_profit_rate":5.667651968008647,"win_rate":85.7843137254902,"avg_hold_minutes":70.97565359477125,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1512,"trading_days":60,"gross_pnl":40991778,"net_pnl":39136047,"avg_profit_rate":6.053751739569821,"win_rate":86.83862433862434,"avg_hold_minutes":70.19106040564374,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":40,"bought_count":39,"avg_max_profit_rate":6.985995,"avg_min_profit_rate":-8.447165,"avg_close_profit_rate":3.3580799999999997,"win_rate":80.0,"target_rate":57.49999999999999,"risk_rate":100.0,"max_loss_rate":-12.0347,"trading_days":18,"lookback_days":30},"60":{"count":41,"bought_count":40,"avg_max_profit_rate":6.830141463414634,"avg_min_profit_rate":-8.342341463414634,"avg_close_profit_rate":3.285051219512195,"win_rate":80.48780487804879,"target_rate":56.09756097560976,"risk_rate":97.5609756097561,"max_loss_rate":-12.0347,"trading_days":19,"lookback_days":60},"90":{"count":41,"bought_count":40,"avg_max_profit_rate":6.830141463414634,"avg_min_profit_rate":-8.342341463414634,"avg_close_profit_rate":3.285051219512195,"win_rate":80.48780487804879,"target_rate":56.09756097560976,"risk_rate":97.5609756097561,"max_loss_rate":-12.0347,"trading_days":19,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1512,"trading_days":60,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":41,"trading_days":19,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":412,"outcomes_updated":1221,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-09 16:13:08"},{"id":39,"run_date":"2026-07-08","lookback_days":90,"sample_count":1495,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":540,"trading_days":23,"gross_pnl":14484471,"net_pnl":13787280,"avg_profit_rate":5.699500217571364,"win_rate":85.74074074074073,"avg_hold_minutes":70.14475308641975,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1003,"trading_days":41,"gross_pnl":25801616,"net_pnl":24550630,"avg_profit_rate":5.657912310390096,"win_rate":85.84247258225324,"avg_hold_minutes":70.99220671319375,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1495,"trading_days":59,"gross_pnl":40463105,"net_pnl":38631452,"avg_profit_rate":6.051607806141816,"win_rate":86.8896321070234,"avg_hold_minutes":70.19324414715719,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":540,"trading_days":23,"gross_pnl":14484471,"net_pnl":13787280,"avg_profit_rate":5.699500217571364,"win_rate":85.74074074074073,"avg_hold_minutes":70.14475308641975,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1003,"trading_days":41,"gross_pnl":25801616,"net_pnl":24550630,"avg_profit_rate":5.657912310390096,"win_rate":85.84247258225324,"avg_hold_minutes":70.99220671319375,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1495,"trading_days":59,"gross_pnl":40463105,"net_pnl":38631452,"avg_profit_rate":6.051607806141816,"win_rate":86.8896321070234,"avg_hold_minutes":70.19324414715719,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":38,"bought_count":37,"avg_max_profit_rate":7.03543947368421,"avg_min_profit_rate":-8.477084210526316,"avg_close_profit_rate":3.267384210526316,"win_rate":81.57894736842105,"target_rate":57.89473684210527,"risk_rate":100.0,"max_loss_rate":-12.0347,"trading_days":17,"lookback_days":30},"60":{"count":39,"bought_count":38,"avg_max_profit_rate":6.870325641025641,"avg_min_profit_rate":-8.366117948717948,"avg_close_profit_rate":3.1929358974358975,"win_rate":82.05128205128204,"target_rate":56.41025641025641,"risk_rate":97.43589743589743,"max_loss_rate":-12.0347,"trading_days":18,"lookback_days":60},"90":{"count":39,"bought_count":38,"avg_max_profit_rate":6.870325641025641,"avg_min_profit_rate":-8.366117948717948,"avg_close_profit_rate":3.1929358974358975,"win_rate":82.05128205128204,"target_rate":56.41025641025641,"risk_rate":97.43589743589743,"max_loss_rate":-12.0347,"trading_days":18,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1495,"trading_days":59,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":39,"trading_days":18,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":394,"outcomes_updated":1167,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-08 16:12:25"},{"id":38,"run_date":"2026-07-07","lookback_days":90,"sample_count":1467,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":512,"trading_days":22,"gross_pnl":14203096,"net_pnl":13542604,"avg_profit_rate":5.899157422361432,"win_rate":87.109375,"avg_hold_minutes":68.97317708333334,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1003,"trading_days":41,"gross_pnl":26347760,"net_pnl":25099719,"avg_profit_rate":5.7816614804896815,"win_rate":86.73978065802592,"avg_hold_minutes":70.3348620804254,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1467,"trading_days":58,"gross_pnl":40181730,"net_pnl":38386776,"avg_profit_rate":6.128011010867439,"win_rate":87.38922972051807,"avg_hold_minutes":69.78527607361963,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":512,"trading_days":22,"gross_pnl":14203096,"net_pnl":13542604,"avg_profit_rate":5.899157422361432,"win_rate":87.109375,"avg_hold_minutes":68.97317708333334,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1003,"trading_days":41,"gross_pnl":26347760,"net_pnl":25099719,"avg_profit_rate":5.7816614804896815,"win_rate":86.73978065802592,"avg_hold_minutes":70.3348620804254,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1467,"trading_days":58,"gross_pnl":40181730,"net_pnl":38386776,"avg_profit_rate":6.128011010867439,"win_rate":87.38922972051807,"avg_hold_minutes":69.78527607361963,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":38,"bought_count":37,"avg_max_profit_rate":7.03543947368421,"avg_min_profit_rate":-8.477084210526316,"avg_close_profit_rate":3.267384210526316,"win_rate":81.57894736842105,"target_rate":57.89473684210527,"risk_rate":100.0,"max_loss_rate":-12.0347,"trading_days":17,"lookback_days":30},"60":{"count":39,"bought_count":38,"avg_max_profit_rate":6.870325641025641,"avg_min_profit_rate":-8.366117948717948,"avg_close_profit_rate":3.1929358974358975,"win_rate":82.05128205128204,"target_rate":56.41025641025641,"risk_rate":97.43589743589743,"max_loss_rate":-12.0347,"trading_days":18,"lookback_days":60},"90":{"count":39,"bought_count":38,"avg_max_profit_rate":6.870325641025641,"avg_min_profit_rate":-8.366117948717948,"avg_close_profit_rate":3.1929358974358975,"win_rate":82.05128205128204,"target_rate":56.41025641025641,"risk_rate":97.43589743589743,"max_loss_rate":-12.0347,"trading_days":18,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1467,"trading_days":58,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":39,"trading_days":18,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":379,"outcomes_updated":1122,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-07 16:12:10"},{"id":37,"run_date":"2026-07-06","lookback_days":90,"sample_count":1445,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":490,"trading_days":21,"gross_pnl":13526195,"net_pnl":12894550,"avg_profit_rate":5.871749991677793,"win_rate":87.34693877551021,"avg_hold_minutes":68.78659863945579,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1000,"trading_days":41,"gross_pnl":26089280,"net_pnl":24846845,"avg_profit_rate":5.744856448990104,"win_rate":86.8,"avg_hold_minutes":70.38293333333334,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1445,"trading_days":57,"gross_pnl":39504829,"net_pnl":37738722,"avg_profit_rate":6.122201417727057,"win_rate":87.47404844290656,"avg_hold_minutes":69.73437139561707,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":490,"trading_days":21,"gross_pnl":13526195,"net_pnl":12894550,"avg_profit_rate":5.871749991677793,"win_rate":87.34693877551021,"avg_hold_minutes":68.78659863945579,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1000,"trading_days":41,"gross_pnl":26089280,"net_pnl":24846845,"avg_profit_rate":5.744856448990104,"win_rate":86.8,"avg_hold_minutes":70.38293333333334,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1445,"trading_days":57,"gross_pnl":39504829,"net_pnl":37738722,"avg_profit_rate":6.122201417727057,"win_rate":87.47404844290656,"avg_hold_minutes":69.73437139561707,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":32,"bought_count":31,"avg_max_profit_rate":6.775859375,"avg_min_profit_rate":-8.509546875,"avg_close_profit_rate":2.724984375,"win_rate":78.125,"target_rate":56.25,"risk_rate":100.0,"max_loss_rate":-11.4238,"trading_days":16,"lookback_days":30},"60":{"count":33,"bought_count":32,"avg_max_profit_rate":6.588590909090909,"avg_min_profit_rate":-8.377421212121213,"avg_close_profit_rate":2.653436363636364,"win_rate":78.78787878787878,"target_rate":54.54545454545454,"risk_rate":96.96969696969697,"max_loss_rate":-11.4238,"trading_days":17,"lookback_days":60},"90":{"count":33,"bought_count":32,"avg_max_profit_rate":6.588590909090909,"avg_min_profit_rate":-8.377421212121213,"avg_close_profit_rate":2.653436363636364,"win_rate":78.78787878787878,"target_rate":54.54545454545454,"risk_rate":96.96969696969697,"max_loss_rate":-11.4238,"trading_days":17,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1445,"trading_days":57,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":33,"trading_days":17,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_5~7","horizon_minutes":60},"outcome_refresh":{"snapshots":358,"outcomes_updated":1059,"outcomes_skipped":15},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_5~7"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-06 16:12:13"},{"id":36,"run_date":"2026-07-03","lookback_days":90,"sample_count":1413,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":504,"trading_days":22,"gross_pnl":13769017,"net_pnl":13121435,"avg_profit_rate":5.776202216541635,"win_rate":86.70634920634922,"avg_hold_minutes":68.9067791005291,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1018,"trading_days":42,"gross_pnl":26488736,"net_pnl":25229996,"avg_profit_rate":5.756398044413265,"win_rate":86.83693516699411,"avg_hold_minutes":70.25168631303208,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1413,"trading_days":56,"gross_pnl":38511684,"net_pnl":36786894,"avg_profit_rate":6.105537174521151,"win_rate":87.26114649681529,"avg_hold_minutes":69.67320122670442,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":504,"trading_days":22,"gross_pnl":13769017,"net_pnl":13121435,"avg_profit_rate":5.776202216541635,"win_rate":86.70634920634922,"avg_hold_minutes":68.9067791005291,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1018,"trading_days":42,"gross_pnl":26488736,"net_pnl":25229996,"avg_profit_rate":5.756398044413265,"win_rate":86.83693516699411,"avg_hold_minutes":70.25168631303208,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1413,"trading_days":56,"gross_pnl":38511684,"net_pnl":36786894,"avg_profit_rate":6.105537174521151,"win_rate":87.26114649681529,"avg_hold_minutes":69.67320122670442,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":70,"bought_count":70,"avg_max_profit_rate":6.3507871428571425,"avg_min_profit_rate":-8.894655714285713,"avg_close_profit_rate":2.322044285714286,"win_rate":62.857142857142854,"target_rate":42.857142857142854,"risk_rate":100.0,"max_loss_rate":-15.6627,"trading_days":19,"lookback_days":30},"60":{"count":73,"bought_count":73,"avg_max_profit_rate":6.523087671232877,"avg_min_profit_rate":-8.854823287671232,"avg_close_profit_rate":2.412805479452055,"win_rate":64.38356164383562,"target_rate":43.83561643835616,"risk_rate":100.0,"max_loss_rate":-15.6627,"trading_days":20,"lookback_days":60},"90":{"count":73,"bought_count":73,"avg_max_profit_rate":6.523087671232877,"avg_min_profit_rate":-8.854823287671232,"avg_close_profit_rate":2.412805479452055,"win_rate":64.38356164383562,"target_rate":43.83561643835616,"risk_rate":100.0,"max_loss_rate":-15.6627,"trading_days":20,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1413,"trading_days":56,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":true,"sample_count":73,"trading_days":20,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_7~10","horizon_minutes":60},"outcome_refresh":{"snapshots":343,"outcomes_updated":1017,"outcomes_skipped":12},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_7~10"},"decision":"recommendation_only","applied_strategy_version":null,"created_at":"2026-07-03 16:12:19"},{"id":35,"run_date":"2026-07-02","lookback_days":90,"sample_count":1394,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":505,"trading_days":22,"gross_pnl":13633668,"net_pnl":12985993,"avg_profit_rate":5.715593242869357,"win_rate":86.53465346534654,"avg_hold_minutes":69.20359735973597,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":999,"trading_days":41,"gross_pnl":25957611,"net_pnl":24724946,"avg_profit_rate":5.75905401545679,"win_rate":86.98698698698699,"avg_hold_minutes":70.39718051384719,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1394,"trading_days":55,"gross_pnl":37980559,"net_pnl":36281844,"avg_profit_rate":6.112199268168592,"win_rate":87.37446197991392,"avg_hold_minutes":69.76958393113343,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":505,"trading_days":22,"gross_pnl":13633668,"net_pnl":12985993,"avg_profit_rate":5.715593242869357,"win_rate":86.53465346534654,"avg_hold_minutes":69.20359735973597,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":999,"trading_days":41,"gross_pnl":25957611,"net_pnl":24724946,"avg_profit_rate":5.75905401545679,"win_rate":86.98698698698699,"avg_hold_minutes":70.39718051384719,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1394,"trading_days":55,"gross_pnl":37980559,"net_pnl":36281844,"avg_profit_rate":6.112199268168592,"win_rate":87.37446197991392,"avg_hold_minutes":69.76958393113343,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":30,"bought_count":30,"avg_max_profit_rate":8.175526666666666,"avg_min_profit_rate":-9.43675,"avg_close_profit_rate":2.4598066666666667,"win_rate":60.0,"target_rate":73.33333333333333,"risk_rate":100.0,"max_loss_rate":-16.1565,"trading_days":15,"lookback_days":30},"60":{"count":30,"bought_count":30,"avg_max_profit_rate":8.175526666666666,"avg_min_profit_rate":-9.43675,"avg_close_profit_rate":2.4598066666666667,"win_rate":60.0,"target_rate":73.33333333333333,"risk_rate":100.0,"max_loss_rate":-16.1565,"trading_days":15,"lookback_days":60},"90":{"count":30,"bought_count":30,"avg_max_profit_rate":8.175526666666666,"avg_min_profit_rate":-9.43675,"avg_close_profit_rate":2.4598066666666667,"win_rate":60.0,"target_rate":73.33333333333333,"risk_rate":100.0,"max_loss_rate":-16.1565,"trading_days":15,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1394,"trading_days":55,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":30,"trading_days":15,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"high_low_position_50~75","horizon_minutes":60},"outcome_refresh":{"snapshots":329,"outcomes_updated":978,"outcomes_skipped":9},"candidate_name":"slower_risk","entry_candidate_name":"high_low_position_50~75"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-02 16:12:24"},{"id":34,"run_date":"2026-07-01","lookback_days":90,"sample_count":1368,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":496,"trading_days":22,"gross_pnl":13713210,"net_pnl":13078883,"avg_profit_rate":5.869512852466272,"win_rate":87.90322580645162,"avg_hold_minutes":69.34129704301075,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":973,"trading_days":40,"gross_pnl":25610301,"net_pnl":24410591,"avg_profit_rate":5.837059626252291,"win_rate":87.46145940390545,"avg_hold_minutes":70.50512161699213,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1368,"trading_days":54,"gross_pnl":37633249,"net_pnl":35967489,"avg_profit_rate":6.174393154041785,"win_rate":87.71929824561403,"avg_hold_minutes":69.8344298245614,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":496,"trading_days":22,"gross_pnl":13713210,"net_pnl":13078883,"avg_profit_rate":5.869512852466272,"win_rate":87.90322580645162,"avg_hold_minutes":69.34129704301075,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":973,"trading_days":40,"gross_pnl":25610301,"net_pnl":24410591,"avg_profit_rate":5.837059626252291,"win_rate":87.46145940390545,"avg_hold_minutes":70.50512161699213,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1368,"trading_days":54,"gross_pnl":37633249,"net_pnl":35967489,"avg_profit_rate":6.174393154041785,"win_rate":87.71929824561403,"avg_hold_minutes":69.8344298245614,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":19,"bought_count":19,"avg_max_profit_rate":5.268268421052632,"avg_min_profit_rate":-9.969684210526315,"avg_close_profit_rate":2.5842105263157897,"win_rate":63.1578947368421,"target_rate":36.84210526315789,"risk_rate":100.0,"max_loss_rate":-14.0435,"trading_days":12,"lookback_days":30},"60":{"count":21,"bought_count":21,"avg_max_profit_rate":5.311595238095238,"avg_min_profit_rate":-9.789219047619047,"avg_close_profit_rate":2.4577380952380956,"win_rate":61.904761904761905,"target_rate":38.095238095238095,"risk_rate":100.0,"max_loss_rate":-14.0435,"trading_days":13,"lookback_days":60},"90":{"count":21,"bought_count":21,"avg_max_profit_rate":5.311595238095238,"avg_min_profit_rate":-9.789219047619047,"avg_close_profit_rate":2.4577380952380956,"win_rate":61.904761904761905,"target_rate":38.095238095238095,"risk_rate":100.0,"max_loss_rate":-14.0435,"trading_days":13,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1368,"trading_days":54,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":21,"trading_days":13,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:15","horizon_minutes":60},"outcome_refresh":{"snapshots":316,"outcomes_updated":942,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"time_bucket_09:15"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-07-01 16:12:34"},{"id":33,"run_date":"2026-06-30","lookback_days":90,"sample_count":1341,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":469,"trading_days":21,"gross_pnl":12712922,"net_pnl":12113883,"avg_profit_rate":5.767366925618814,"win_rate":87.63326226012794,"avg_hold_minutes":69.43521677327647,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":946,"trading_days":39,"gross_pnl":24610013,"net_pnl":23445591,"avg_profit_rate":5.785492314625191,"win_rate":87.31501057082453,"avg_hold_minutes":70.58490133897111,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1341,"trading_days":53,"gross_pnl":36632961,"net_pnl":35002489,"avg_profit_rate":6.144807269217833,"win_rate":87.62117822520507,"avg_hold_minutes":69.87720606512552,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":469,"trading_days":21,"gross_pnl":12712922,"net_pnl":12113883,"avg_profit_rate":5.767366925618814,"win_rate":87.63326226012794,"avg_hold_minutes":69.43521677327647,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":946,"trading_days":39,"gross_pnl":24610013,"net_pnl":23445591,"avg_profit_rate":5.785492314625191,"win_rate":87.31501057082453,"avg_hold_minutes":70.58490133897111,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1341,"trading_days":53,"gross_pnl":36632961,"net_pnl":35002489,"avg_profit_rate":6.144807269217833,"win_rate":87.62117822520507,"avg_hold_minutes":69.87720606512552,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":19,"bought_count":19,"avg_max_profit_rate":5.268268421052632,"avg_min_profit_rate":-9.969684210526315,"avg_close_profit_rate":2.5842105263157897,"win_rate":63.1578947368421,"target_rate":36.84210526315789,"risk_rate":100.0,"max_loss_rate":-14.0435,"trading_days":12,"lookback_days":30},"60":{"count":21,"bought_count":21,"avg_max_profit_rate":5.311595238095238,"avg_min_profit_rate":-9.789219047619047,"avg_close_profit_rate":2.4577380952380956,"win_rate":61.904761904761905,"target_rate":38.095238095238095,"risk_rate":100.0,"max_loss_rate":-14.0435,"trading_days":13,"lookback_days":60},"90":{"count":21,"bought_count":21,"avg_max_profit_rate":5.311595238095238,"avg_min_profit_rate":-9.789219047619047,"avg_close_profit_rate":2.4577380952380956,"win_rate":61.904761904761905,"target_rate":38.095238095238095,"risk_rate":100.0,"max_loss_rate":-14.0435,"trading_days":13,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1341,"trading_days":53,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":21,"trading_days":13,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:15","horizon_minutes":60},"outcome_refresh":{"snapshots":303,"outcomes_updated":903,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"time_bucket_09:15"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-30 16:12:42"},{"id":32,"run_date":"2026-06-29","lookback_days":90,"sample_count":1317,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":445,"trading_days":20,"gross_pnl":11873127,"net_pnl":11305832,"avg_profit_rate":5.681650746961668,"win_rate":87.86516853932585,"avg_hold_minutes":68.98737827715355,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":942,"trading_days":39,"gross_pnl":24474118,"net_pnl":23317687,"avg_profit_rate":5.792415593680162,"win_rate":87.47346072186836,"avg_hold_minutes":70.19184359518754,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1317,"trading_days":52,"gross_pnl":35793166,"net_pnl":34194438,"avg_profit_rate":6.1227228870947865,"win_rate":87.6993166287016,"avg_hold_minutes":69.73394077448748,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":445,"trading_days":20,"gross_pnl":11873127,"net_pnl":11305832,"avg_profit_rate":5.681650746961668,"win_rate":87.86516853932585,"avg_hold_minutes":68.98737827715355,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":942,"trading_days":39,"gross_pnl":24474118,"net_pnl":23317687,"avg_profit_rate":5.792415593680162,"win_rate":87.47346072186836,"avg_hold_minutes":70.19184359518754,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1317,"trading_days":52,"gross_pnl":35793166,"net_pnl":34194438,"avg_profit_rate":6.1227228870947865,"win_rate":87.6993166287016,"avg_hold_minutes":69.73394077448748,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":20,"bought_count":20,"avg_max_profit_rate":4.958235,"avg_min_profit_rate":-9.604075,"avg_close_profit_rate":2.5775099999999997,"win_rate":65.0,"target_rate":40.0,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":10,"lookback_days":30},"60":{"count":20,"bought_count":20,"avg_max_profit_rate":4.958235,"avg_min_profit_rate":-9.604075,"avg_close_profit_rate":2.5775099999999997,"win_rate":65.0,"target_rate":40.0,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":10,"lookback_days":60},"90":{"count":20,"bought_count":20,"avg_max_profit_rate":4.958235,"avg_min_profit_rate":-9.604075,"avg_close_profit_rate":2.5775099999999997,"win_rate":65.0,"target_rate":40.0,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":10,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1317,"trading_days":52,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":20,"trading_days":10,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_0~3","horizon_minutes":60},"outcome_refresh":{"snapshots":288,"outcomes_updated":858,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_0~3"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-29 16:11:54"},{"id":31,"run_date":"2026-06-26","lookback_days":90,"sample_count":1288,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":485,"trading_days":22,"gross_pnl":12661447,"net_pnl":12043684,"avg_profit_rate":5.5678533819451355,"win_rate":87.42268041237114,"avg_hold_minutes":69.64013745704467,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":996,"trading_days":41,"gross_pnl":26143182,"net_pnl":24927616,"avg_profit_rate":5.874870553897363,"win_rate":87.04819277108435,"avg_hold_minutes":70.07694109772423,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1288,"trading_days":51,"gross_pnl":34918047,"net_pnl":33356584,"avg_profit_rate":6.118042047742682,"win_rate":87.5776397515528,"avg_hold_minutes":69.70646997929607,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":485,"trading_days":22,"gross_pnl":12661447,"net_pnl":12043684,"avg_profit_rate":5.5678533819451355,"win_rate":87.42268041237114,"avg_hold_minutes":69.64013745704467,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":996,"trading_days":41,"gross_pnl":26143182,"net_pnl":24927616,"avg_profit_rate":5.874870553897363,"win_rate":87.04819277108435,"avg_hold_minutes":70.07694109772423,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1288,"trading_days":51,"gross_pnl":34918047,"net_pnl":33356584,"avg_profit_rate":6.118042047742682,"win_rate":87.5776397515528,"avg_hold_minutes":69.70646997929607,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":18,"bought_count":18,"avg_max_profit_rate":4.929383333333333,"avg_min_profit_rate":-9.434166666666666,"avg_close_profit_rate":2.357811111111111,"win_rate":61.111111111111114,"target_rate":38.88888888888889,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":9,"lookback_days":30},"60":{"count":18,"bought_count":18,"avg_max_profit_rate":4.929383333333333,"avg_min_profit_rate":-9.434166666666666,"avg_close_profit_rate":2.357811111111111,"win_rate":61.111111111111114,"target_rate":38.88888888888889,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":9,"lookback_days":60},"90":{"count":18,"bought_count":18,"avg_max_profit_rate":4.929383333333333,"avg_min_profit_rate":-9.434166666666666,"avg_close_profit_rate":2.357811111111111,"win_rate":61.111111111111114,"target_rate":38.88888888888889,"risk_rate":100.0,"max_loss_rate":-16.2837,"trading_days":9,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1288,"trading_days":51,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":18,"trading_days":9,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_0~3","horizon_minutes":60},"outcome_refresh":{"snapshots":271,"outcomes_updated":807,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_0~3"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-26 16:12:06"},{"id":30,"run_date":"2026-06-25","lookback_days":90,"sample_count":1264,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":504,"trading_days":22,"gross_pnl":12611181,"net_pnl":11976784,"avg_profit_rate":5.385640745369366,"win_rate":88.29365079365078,"avg_hold_minutes":68.3264880952381,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":991,"trading_days":40,"gross_pnl":25311241,"net_pnl":24106232,"avg_profit_rate":5.732340409375423,"win_rate":87.38647830474268,"avg_hold_minutes":68.6407164480323,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1287,"trading_days":50,"gross_pnl":34171270,"net_pnl":32615301,"avg_profit_rate":6.0043159870328795,"win_rate":87.87878787878788,"avg_hold_minutes":68.19757834757836,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":5.0,"second_target_pct":7.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":492,"trading_days":22,"gross_pnl":12699481,"net_pnl":12079320,"avg_profit_rate":5.55780529752461,"win_rate":88.00813008130082,"avg_hold_minutes":69.9529132791328,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":972,"trading_days":40,"gross_pnl":25378477,"net_pnl":24196098,"avg_profit_rate":5.8631778429614485,"win_rate":87.03703703703704,"avg_hold_minutes":70.13604252400549,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1264,"trading_days":50,"gross_pnl":34153342,"net_pnl":32625066,"avg_profit_rate":6.113667681304849,"win_rate":87.57911392405063,"avg_hold_minutes":69.74488396624473,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":23,"bought_count":23,"avg_max_profit_rate":7.713417391304348,"avg_min_profit_rate":-8.970717391304348,"avg_close_profit_rate":2.3475043478260873,"win_rate":65.21739130434783,"target_rate":69.56521739130434,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":12,"lookback_days":30},"60":{"count":23,"bought_count":23,"avg_max_profit_rate":7.713417391304348,"avg_min_profit_rate":-8.970717391304348,"avg_close_profit_rate":2.3475043478260873,"win_rate":65.21739130434783,"target_rate":69.56521739130434,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":12,"lookback_days":60},"90":{"count":23,"bought_count":23,"avg_max_profit_rate":7.713417391304348,"avg_min_profit_rate":-8.970717391304348,"avg_close_profit_rate":2.3475043478260873,"win_rate":65.21739130434783,"target_rate":69.56521739130434,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":12,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1264,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"higher_targets","effective_date":"2026-06-26"},"buy_entry":{"sample_ok":false,"sample_count":23,"trading_days":12,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"high_low_position_50~75","horizon_minutes":60,"effective_date":"2026-06-26"},"outcome_refresh":{"snapshots":258,"outcomes_updated":768,"outcomes_skipped":6},"candidate_name":"higher_targets","entry_candidate_name":"high_low_position_50~75"},"decision":"applied","applied_strategy_version":"v20260625161223-auto","created_at":"2026-06-25 16:12:23"},{"id":29,"run_date":"2026-06-24","lookback_days":90,"sample_count":1289,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":480,"trading_days":21,"gross_pnl":11919783,"net_pnl":11316806,"avg_profit_rate":5.362572013227097,"win_rate":88.125,"avg_hold_minutes":67.85107638888888,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":967,"trading_days":39,"gross_pnl":24619843,"net_pnl":23446254,"avg_profit_rate":5.729494287873724,"win_rate":87.28024819027922,"avg_hold_minutes":68.4125301620131,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1289,"trading_days":50,"gross_pnl":34404890,"net_pnl":32848315,"avg_profit_rate":6.053188690508794,"win_rate":87.8200155159038,"avg_hold_minutes":67.87861391259375,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":4.5,"second_target_pct":6.5,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":480,"trading_days":21,"gross_pnl":11919783,"net_pnl":11316806,"avg_profit_rate":5.362572013227097,"win_rate":88.125,"avg_hold_minutes":67.85107638888888,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":967,"trading_days":39,"gross_pnl":24619843,"net_pnl":23446254,"avg_profit_rate":5.729494287873724,"win_rate":87.28024819027922,"avg_hold_minutes":68.4125301620131,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1289,"trading_days":50,"gross_pnl":34404890,"net_pnl":32848315,"avg_profit_rate":6.053188690508794,"win_rate":87.8200155159038,"avg_hold_minutes":67.87861391259375,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":14,"bought_count":14,"avg_max_profit_rate":5.383378571428572,"avg_min_profit_rate":-12.010499999999999,"avg_close_profit_rate":2.4704928571428573,"win_rate":71.42857142857143,"target_rate":42.857142857142854,"risk_rate":100.0,"max_loss_rate":-17.2897,"trading_days":11,"lookback_days":30},"60":{"count":14,"bought_count":14,"avg_max_profit_rate":5.383378571428572,"avg_min_profit_rate":-12.010499999999999,"avg_close_profit_rate":2.4704928571428573,"win_rate":71.42857142857143,"target_rate":42.857142857142854,"risk_rate":100.0,"max_loss_rate":-17.2897,"trading_days":11,"lookback_days":60},"90":{"count":14,"bought_count":14,"avg_max_profit_rate":5.383378571428572,"avg_min_profit_rate":-12.010499999999999,"avg_close_profit_rate":2.4704928571428573,"win_rate":71.42857142857143,"target_rate":42.857142857142854,"risk_rate":100.0,"max_loss_rate":-17.2897,"trading_days":11,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1289,"trading_days":50,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":14,"trading_days":11,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:25","horizon_minutes":60},"outcome_refresh":{"snapshots":237,"outcomes_updated":705,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"time_bucket_09:25"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-24 16:12:05"},{"id":28,"run_date":"2026-06-23","lookback_days":90,"sample_count":1301,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":467,"trading_days":20,"gross_pnl":11493939,"net_pnl":10910745,"avg_profit_rate":5.3350952113934245,"win_rate":88.6509635974304,"avg_hold_minutes":65.44032833690221,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":993,"trading_days":39,"gross_pnl":25044211,"net_pnl":23845920,"avg_profit_rate":5.70038944938175,"win_rate":87.51258811681772,"avg_hold_minutes":66.59157435381,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1324,"trading_days":50,"gross_pnl":35107155,"net_pnl":33511785,"avg_profit_rate":6.016097131605855,"win_rate":88.29305135951661,"avg_hold_minutes":65.87005287009063,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":4.5,"second_target_pct":6.5,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":460,"trading_days":20,"gross_pnl":11501448,"net_pnl":10926653,"avg_profit_rate":5.426415830597988,"win_rate":88.47826086956522,"avg_hold_minutes":67.18840579710145,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":976,"trading_days":39,"gross_pnl":25040979,"net_pnl":23862823,"avg_profit_rate":5.804285660351099,"win_rate":87.29508196721312,"avg_hold_minutes":68.28994193989071,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1301,"trading_days":50,"gross_pnl":35119275,"net_pnl":33551419,"avg_profit_rate":6.132704852780761,"win_rate":88.00922367409684,"avg_hold_minutes":67.72960543171918,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":21,"bought_count":21,"avg_max_profit_rate":7.9075999999999995,"avg_min_profit_rate":-8.842690476190475,"avg_close_profit_rate":2.6089857142857142,"win_rate":66.66666666666666,"target_rate":80.95238095238095,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":10,"lookback_days":30},"60":{"count":21,"bought_count":21,"avg_max_profit_rate":7.9075999999999995,"avg_min_profit_rate":-8.842690476190475,"avg_close_profit_rate":2.6089857142857142,"win_rate":66.66666666666666,"target_rate":80.95238095238095,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":10,"lookback_days":60},"90":{"count":21,"bought_count":21,"avg_max_profit_rate":7.9075999999999995,"avg_min_profit_rate":-8.842690476190475,"avg_close_profit_rate":2.6089857142857142,"win_rate":66.66666666666666,"target_rate":80.95238095238095,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":10,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1301,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"higher_targets","effective_date":"2026-06-24"},"buy_entry":{"sample_ok":false,"sample_count":21,"trading_days":10,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"high_low_position_50~75","horizon_minutes":60,"effective_date":"2026-06-24"},"outcome_refresh":{"snapshots":215,"outcomes_updated":639,"outcomes_skipped":6},"candidate_name":"higher_targets","entry_candidate_name":"high_low_position_50~75"},"decision":"applied","applied_strategy_version":"v20260623161222-auto","created_at":"2026-06-23 16:12:23"},{"id":27,"run_date":"2026-06-22","lookback_days":90,"sample_count":1317,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":441,"trading_days":19,"gross_pnl":10823925,"net_pnl":10275514,"avg_profit_rate":5.34096901599739,"win_rate":88.88888888888889,"avg_hold_minutes":63.64822373393802,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1001,"trading_days":39,"gross_pnl":25197445,"net_pnl":23992950,"avg_profit_rate":5.700069999665864,"win_rate":87.81218781218782,"avg_hold_minutes":64.68976023976023,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1328,"trading_days":50,"gross_pnl":34814308,"net_pnl":33217497,"avg_profit_rate":5.952354450957075,"win_rate":88.32831325301204,"avg_hold_minutes":64.55180722891566,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":4.0,"second_target_pct":6.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":440,"trading_days":19,"gross_pnl":10986665,"net_pnl":10439068,"avg_profit_rate":5.439921176661302,"win_rate":88.63636363636364,"avg_hold_minutes":65.2840909090909,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":994,"trading_days":39,"gross_pnl":25505079,"net_pnl":24307495,"avg_profit_rate":5.813424261823025,"win_rate":87.62575452716298,"avg_hold_minutes":66.17218309859155,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1317,"trading_days":50,"gross_pnl":35161782,"net_pnl":33576180,"avg_profit_rate":6.063513237794715,"win_rate":88.15489749430525,"avg_hold_minutes":65.90898506707163,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":21,"bought_count":21,"avg_max_profit_rate":7.9075999999999995,"avg_min_profit_rate":-8.842690476190475,"avg_close_profit_rate":2.6089857142857142,"win_rate":66.66666666666666,"target_rate":90.47619047619048,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":10,"lookback_days":30},"60":{"count":21,"bought_count":21,"avg_max_profit_rate":7.9075999999999995,"avg_min_profit_rate":-8.842690476190475,"avg_close_profit_rate":2.6089857142857142,"win_rate":66.66666666666666,"target_rate":90.47619047619048,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":10,"lookback_days":60},"90":{"count":21,"bought_count":21,"avg_max_profit_rate":7.9075999999999995,"avg_min_profit_rate":-8.842690476190475,"avg_close_profit_rate":2.6089857142857142,"win_rate":66.66666666666666,"target_rate":90.47619047619048,"risk_rate":100.0,"max_loss_rate":-12.6569,"trading_days":10,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1317,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"higher_targets","effective_date":"2026-06-23"},"buy_entry":{"sample_ok":false,"sample_count":21,"trading_days":10,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"high_low_position_50~75","horizon_minutes":60,"effective_date":"2026-06-23"},"outcome_refresh":{"snapshots":200,"outcomes_updated":594,"outcomes_skipped":6},"candidate_name":"higher_targets","entry_candidate_name":"high_low_position_50~75"},"decision":"applied","applied_strategy_version":"v20260622161157-auto","created_at":"2026-06-22 16:11:57"},{"id":26,"run_date":"2026-06-19","lookback_days":90,"sample_count":1333,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":508,"trading_days":21,"gross_pnl":12333719,"net_pnl":11702622,"avg_profit_rate":5.275723592941571,"win_rate":88.58267716535433,"avg_hold_minutes":62.64662073490814,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1087,"trading_days":41,"gross_pnl":27851499,"net_pnl":26543428,"avg_profit_rate":5.797715286085247,"win_rate":88.59245630174793,"avg_hold_minutes":63.146979454155165,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1351,"trading_days":50,"gross_pnl":35128637,"net_pnl":33504329,"avg_profit_rate":5.892187927813299,"win_rate":88.97113249444855,"avg_hold_minutes":63.1934246237355,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.5,"second_target_pct":5.5,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":502,"trading_days":21,"gross_pnl":12337633,"net_pnl":11713954,"avg_profit_rate":5.348201841396274,"win_rate":88.04780876494024,"avg_hold_minutes":64.18452855245684,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1075,"trading_days":41,"gross_pnl":27852519,"net_pnl":26558208,"avg_profit_rate":5.866330332529804,"win_rate":88.27906976744187,"avg_hold_minutes":64.64511627906977,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1333,"trading_days":50,"gross_pnl":35128390,"net_pnl":33524441,"avg_profit_rate":5.974280495328858,"win_rate":88.6721680420105,"avg_hold_minutes":64.56352838209553,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":41,"bought_count":41,"avg_max_profit_rate":6.728256097560975,"avg_min_profit_rate":-8.237546341463414,"avg_close_profit_rate":2.391970731707317,"win_rate":63.41463414634146,"target_rate":58.536585365853654,"risk_rate":100.0,"max_loss_rate":-15.3173,"trading_days":10,"lookback_days":30},"60":{"count":41,"bought_count":41,"avg_max_profit_rate":6.728256097560975,"avg_min_profit_rate":-8.237546341463414,"avg_close_profit_rate":2.391970731707317,"win_rate":63.41463414634146,"target_rate":58.536585365853654,"risk_rate":100.0,"max_loss_rate":-15.3173,"trading_days":10,"lookback_days":60},"90":{"count":41,"bought_count":41,"avg_max_profit_rate":6.728256097560975,"avg_min_profit_rate":-8.237546341463414,"avg_close_profit_rate":2.391970731707317,"win_rate":63.41463414634146,"target_rate":58.536585365853654,"risk_rate":100.0,"max_loss_rate":-15.3173,"trading_days":10,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1333,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"higher_targets","effective_date":"2026-06-22"},"buy_entry":{"sample_ok":false,"sample_count":41,"trading_days":10,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_7~10","horizon_minutes":60,"effective_date":"2026-06-22"},"outcome_refresh":{"snapshots":186,"outcomes_updated":552,"outcomes_skipped":6},"candidate_name":"higher_targets","entry_candidate_name":"change_rate_7~10"},"decision":"applied","applied_strategy_version":"v20260619161216-auto","created_at":"2026-06-19 16:12:16"},{"id":25,"run_date":"2026-06-18","lookback_days":90,"sample_count":1352,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":509,"trading_days":21,"gross_pnl":12244230,"net_pnl":11615308,"avg_profit_rate":5.24378578951129,"win_rate":88.8015717092338,"avg_hold_minutes":63.14253438113949,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1056,"trading_days":40,"gross_pnl":27174995,"net_pnl":25906474,"avg_profit_rate":5.830669803648717,"win_rate":88.82575757575758,"avg_hold_minutes":63.16014835858586,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1352,"trading_days":50,"gross_pnl":35408845,"net_pnl":33786011,"avg_profit_rate":5.944025804911009,"win_rate":89.27514792899409,"avg_hold_minutes":63.1664201183432,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":509,"trading_days":21,"gross_pnl":12244230,"net_pnl":11615308,"avg_profit_rate":5.24378578951129,"win_rate":88.8015717092338,"avg_hold_minutes":63.14253438113949,"max_loss_rate":-33.824057450628366},"60":{"lookback_days":60,"sample_count":1056,"trading_days":40,"gross_pnl":27174995,"net_pnl":25906474,"avg_profit_rate":5.830669803648717,"win_rate":88.82575757575758,"avg_hold_minutes":63.16014835858586,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1352,"trading_days":50,"gross_pnl":35408845,"net_pnl":33786011,"avg_profit_rate":5.944025804911009,"win_rate":89.27514792899409,"avg_hold_minutes":63.1664201183432,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":37,"bought_count":37,"avg_max_profit_rate":6.555035135135135,"avg_min_profit_rate":-8.313851351351351,"avg_close_profit_rate":2.3663702702702705,"win_rate":62.16216216216216,"target_rate":56.75675675675676,"risk_rate":100.0,"max_loss_rate":-15.3173,"trading_days":9,"lookback_days":30},"60":{"count":37,"bought_count":37,"avg_max_profit_rate":6.555035135135135,"avg_min_profit_rate":-8.313851351351351,"avg_close_profit_rate":2.3663702702702705,"win_rate":62.16216216216216,"target_rate":56.75675675675676,"risk_rate":100.0,"max_loss_rate":-15.3173,"trading_days":9,"lookback_days":60},"90":{"count":37,"bought_count":37,"avg_max_profit_rate":6.555035135135135,"avg_min_profit_rate":-8.313851351351351,"avg_close_profit_rate":2.3663702702702705,"win_rate":62.16216216216216,"target_rate":56.75675675675676,"risk_rate":100.0,"max_loss_rate":-15.3173,"trading_days":9,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1352,"trading_days":50,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":37,"trading_days":9,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_7~10","horizon_minutes":60},"outcome_refresh":{"snapshots":176,"outcomes_updated":522,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_7~10"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-18 16:12:37"},{"id":24,"run_date":"2026-06-17","lookback_days":90,"sample_count":1350,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":503,"trading_days":21,"gross_pnl":11871093,"net_pnl":11246531,"avg_profit_rate":5.092565405700148,"win_rate":88.07157057654076,"avg_hold_minutes":63.49927104042413,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1024,"trading_days":39,"gross_pnl":26350388,"net_pnl":25119761,"avg_profit_rate":5.8220347518706586,"win_rate":88.671875,"avg_hold_minutes":63.386767578125,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1350,"trading_days":50,"gross_pnl":35280255,"net_pnl":33660341,"avg_profit_rate":5.926675301179825,"win_rate":89.4074074074074,"avg_hold_minutes":63.40524691358024,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":503,"trading_days":21,"gross_pnl":11871093,"net_pnl":11246531,"avg_profit_rate":5.092565405700148,"win_rate":88.07157057654076,"avg_hold_minutes":63.49927104042413,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1024,"trading_days":39,"gross_pnl":26350388,"net_pnl":25119761,"avg_profit_rate":5.8220347518706586,"win_rate":88.671875,"avg_hold_minutes":63.386767578125,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1350,"trading_days":50,"gross_pnl":35280255,"net_pnl":33660341,"avg_profit_rate":5.926675301179825,"win_rate":89.4074074074074,"avg_hold_minutes":63.40524691358024,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":4.680936363636364,"avg_min_profit_rate":-9.69900909090909,"avg_close_profit_rate":2.2791,"win_rate":63.63636363636363,"target_rate":45.45454545454545,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":7,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":4.680936363636364,"avg_min_profit_rate":-9.69900909090909,"avg_close_profit_rate":2.2791,"win_rate":63.63636363636363,"target_rate":45.45454545454545,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":7,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":4.680936363636364,"avg_min_profit_rate":-9.69900909090909,"avg_close_profit_rate":2.2791,"win_rate":63.63636363636363,"target_rate":45.45454545454545,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":7,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1350,"trading_days":50,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":false,"auto_apply_enabled":true,"candidate_name":"slower_risk"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":7,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:15","horizon_minutes":60},"outcome_refresh":{"snapshots":149,"outcomes_updated":441,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"time_bucket_09:15"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-17 16:11:57"},{"id":23,"run_date":"2026-06-16","lookback_days":90,"sample_count":1362,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":479,"trading_days":20,"gross_pnl":10988841,"net_pnl":10395158,"avg_profit_rate":4.963030771712653,"win_rate":87.68267223382045,"avg_hold_minutes":63.914822546972864,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1029,"trading_days":39,"gross_pnl":25846465,"net_pnl":24612786,"avg_profit_rate":5.696476151633836,"win_rate":87.94946550048591,"avg_hold_minutes":63.56775186264982,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1363,"trading_days":50,"gross_pnl":35186752,"net_pnl":33555657,"avg_profit_rate":5.876725769049867,"win_rate":89.28833455612619,"avg_hold_minutes":63.869320127170454,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-5.0,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":479,"trading_days":20,"gross_pnl":11014322,"net_pnl":10420576,"avg_profit_rate":4.974080023087251,"win_rate":87.68267223382045,"avg_hold_minutes":64.11945024356298,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1028,"trading_days":39,"gross_pnl":25933065,"net_pnl":24700206,"avg_profit_rate":5.721906197150113,"win_rate":88.13229571984435,"avg_hold_minutes":63.681566147859925,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1362,"trading_days":50,"gross_pnl":35275184,"net_pnl":33644906,"avg_profit_rate":5.896411534308411,"win_rate":89.42731277533039,"avg_hold_minutes":63.96108663729809,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":4.680936363636364,"avg_min_profit_rate":-9.69900909090909,"avg_close_profit_rate":2.2791,"win_rate":63.63636363636363,"target_rate":45.45454545454545,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":7,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":4.680936363636364,"avg_min_profit_rate":-9.69900909090909,"avg_close_profit_rate":2.2791,"win_rate":63.63636363636363,"target_rate":45.45454545454545,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":7,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":4.680936363636364,"avg_min_profit_rate":-9.69900909090909,"avg_close_profit_rate":2.2791,"win_rate":63.63636363636363,"target_rate":45.45454545454545,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":7,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1362,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"slower_risk","effective_date":"2026-06-17"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":7,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:15","horizon_minutes":60,"effective_date":"2026-06-17"},"outcome_refresh":{"snapshots":138,"outcomes_updated":408,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"time_bucket_09:15"},"decision":"applied","applied_strategy_version":"v20260616161215-auto","created_at":"2026-06-16 16:12:15"},{"id":22,"run_date":"2026-06-15","lookback_days":90,"sample_count":1364,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":457,"trading_days":19,"gross_pnl":10437961,"net_pnl":9871230,"avg_profit_rate":4.936763227192742,"win_rate":87.527352297593,"avg_hold_minutes":63.416630196936545,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1035,"trading_days":39,"gross_pnl":25780904,"net_pnl":24542640,"avg_profit_rate":5.6563522210204225,"win_rate":87.6328502415459,"avg_hold_minutes":63.29492753623188,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1366,"trading_days":50,"gross_pnl":35246826,"net_pnl":33610981,"avg_profit_rate":5.874775165426516,"win_rate":89.16544655929722,"avg_hold_minutes":63.4533308931186,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-4.5,"risk_recovery_minutes":20,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":457,"trading_days":19,"gross_pnl":10455785,"net_pnl":9889010,"avg_profit_rate":4.945087470022729,"win_rate":87.74617067833698,"avg_hold_minutes":64.08424507658643,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1033,"trading_days":39,"gross_pnl":25868976,"net_pnl":24632640,"avg_profit_rate":5.684352178221711,"win_rate":87.99612778315586,"avg_hold_minutes":63.74656340755082,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1364,"trading_days":50,"gross_pnl":35322803,"net_pnl":33688915,"avg_profit_rate":5.894282097407112,"win_rate":89.44281524926686,"avg_hold_minutes":63.80597507331379,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":10,"bought_count":10,"avg_max_profit_rate":5.12533,"avg_min_profit_rate":-9.64995,"avg_close_profit_rate":2.62549,"win_rate":70.0,"target_rate":50.0,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":6,"lookback_days":30},"60":{"count":10,"bought_count":10,"avg_max_profit_rate":5.12533,"avg_min_profit_rate":-9.64995,"avg_close_profit_rate":2.62549,"win_rate":70.0,"target_rate":50.0,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":6,"lookback_days":60},"90":{"count":10,"bought_count":10,"avg_max_profit_rate":5.12533,"avg_min_profit_rate":-9.64995,"avg_close_profit_rate":2.62549,"win_rate":70.0,"target_rate":50.0,"risk_rate":100.0,"max_loss_rate":-13.6146,"trading_days":6,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1364,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"slower_risk","effective_date":"2026-06-16"},"buy_entry":{"sample_ok":false,"sample_count":10,"trading_days":6,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:15","horizon_minutes":60,"effective_date":"2026-06-16"},"outcome_refresh":{"snapshots":114,"outcomes_updated":336,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"time_bucket_09:15"},"decision":"applied","applied_strategy_version":"v20260615161236-auto","created_at":"2026-06-15 16:12:36"},{"id":21,"run_date":"2026-06-12","lookback_days":90,"sample_count":1373,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":526,"trading_days":21,"gross_pnl":11501647,"net_pnl":10862410,"avg_profit_rate":4.858459716548781,"win_rate":86.69201520912547,"avg_hold_minutes":62.999271229404314,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1113,"trading_days":41,"gross_pnl":27946936,"net_pnl":26620617,"avg_profit_rate":5.730441770195516,"win_rate":87.96046720575022,"avg_hold_minutes":62.5267445342917,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1376,"trading_days":50,"gross_pnl":35177097,"net_pnl":33531140,"avg_profit_rate":5.823001916272404,"win_rate":89.02616279069767,"avg_hold_minutes":63.092272286821704,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-4.0,"risk_recovery_minutes":15,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":523,"trading_days":21,"gross_pnl":11670588,"net_pnl":11034400,"avg_profit_rate":4.956932297465093,"win_rate":87.76290630975143,"avg_hold_minutes":63.40694710006374,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1110,"trading_days":41,"gross_pnl":28102469,"net_pnl":26779234,"avg_profit_rate":5.777217415480133,"win_rate":88.46846846846846,"avg_hold_minutes":62.92028528528528,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1373,"trading_days":50,"gross_pnl":35369470,"net_pnl":33726506,"avg_profit_rate":5.866121396231378,"win_rate":89.51201747997086,"avg_hold_minutes":63.42941247875697,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":10,"bought_count":10,"avg_max_profit_rate":5.9099200000000005,"avg_min_profit_rate":-8.7402,"avg_close_profit_rate":2.38959,"win_rate":60.0,"target_rate":90.0,"risk_rate":100.0,"max_loss_rate":-11.039,"trading_days":5,"lookback_days":30},"60":{"count":10,"bought_count":10,"avg_max_profit_rate":5.9099200000000005,"avg_min_profit_rate":-8.7402,"avg_close_profit_rate":2.38959,"win_rate":60.0,"target_rate":90.0,"risk_rate":100.0,"max_loss_rate":-11.039,"trading_days":5,"lookback_days":60},"90":{"count":10,"bought_count":10,"avg_max_profit_rate":5.9099200000000005,"avg_min_profit_rate":-8.7402,"avg_close_profit_rate":2.38959,"win_rate":60.0,"target_rate":90.0,"risk_rate":100.0,"max_loss_rate":-11.039,"trading_days":5,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1373,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"slower_risk","effective_date":"2026-06-15"},"buy_entry":{"sample_ok":false,"sample_count":10,"trading_days":5,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"high_low_position_50~75","horizon_minutes":60,"effective_date":"2026-06-15"},"outcome_refresh":{"snapshots":102,"outcomes_updated":300,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"high_low_position_50~75"},"decision":"applied","applied_strategy_version":"v20260612161153-auto","created_at":"2026-06-12 16:11:53"},{"id":20,"run_date":"2026-06-11","lookback_days":90,"sample_count":1379,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":536,"trading_days":21,"gross_pnl":11829079,"net_pnl":11178897,"avg_profit_rate":4.934361871349041,"win_rate":85.44776119402985,"avg_hold_minutes":62.78125,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1099,"trading_days":40,"gross_pnl":27209448,"net_pnl":25901522,"avg_profit_rate":5.655609807739712,"win_rate":87.07916287534123,"avg_hold_minutes":62.2851076736427,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1387,"trading_days":50,"gross_pnl":35065135,"net_pnl":33406596,"avg_profit_rate":5.759326295314582,"win_rate":88.17591925018024,"avg_hold_minutes":62.75714972362413,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.5,"risk_recovery_minutes":10,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":532,"trading_days":21,"gross_pnl":11875933,"net_pnl":11230346,"avg_profit_rate":4.9875555763068835,"win_rate":86.2781954887218,"avg_hold_minutes":63.116134085213034,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1092,"trading_days":40,"gross_pnl":27348952,"net_pnl":26048802,"avg_profit_rate":5.719100609539988,"win_rate":87.82051282051282,"avg_hold_minutes":62.6127442002442,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1379,"trading_days":50,"gross_pnl":35253184,"net_pnl":33603486,"avg_profit_rate":5.8207408459876335,"win_rate":88.90500362581581,"avg_hold_minutes":63.036620739666425,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":16,"bought_count":16,"avg_max_profit_rate":4.93371875,"avg_min_profit_rate":-9.6419625,"avg_close_profit_rate":2.135775,"win_rate":62.5,"target_rate":56.25,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":5,"lookback_days":30},"60":{"count":16,"bought_count":16,"avg_max_profit_rate":4.93371875,"avg_min_profit_rate":-9.6419625,"avg_close_profit_rate":2.135775,"win_rate":62.5,"target_rate":56.25,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":5,"lookback_days":60},"90":{"count":16,"bought_count":16,"avg_max_profit_rate":4.93371875,"avg_min_profit_rate":-9.6419625,"avg_close_profit_rate":2.135775,"win_rate":62.5,"target_rate":56.25,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":5,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1379,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"slower_risk","effective_date":"2026-06-12"},"buy_entry":{"sample_ok":false,"sample_count":16,"trading_days":5,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_3~5","horizon_minutes":60,"effective_date":"2026-06-12"},"outcome_refresh":{"snapshots":84,"outcomes_updated":246,"outcomes_skipped":6},"candidate_name":"slower_risk","entry_candidate_name":"change_rate_3~5"},"decision":"applied","applied_strategy_version":"v20260611161234-auto","created_at":"2026-06-11 16:12:40"},{"id":19,"run_date":"2026-06-10","lookback_days":90,"sample_count":1393,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":567,"trading_days":21,"gross_pnl":11768199,"net_pnl":11091610,"avg_profit_rate":4.738247599031619,"win_rate":84.12698412698413,"avg_hold_minutes":62.318694885361545,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1108,"trading_days":39,"gross_pnl":26186751,"net_pnl":24874944,"avg_profit_rate":5.4083111457709965,"win_rate":85.5595667870036,"avg_hold_minutes":61.63861311672683,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1430,"trading_days":50,"gross_pnl":35162935,"net_pnl":33459429,"avg_profit_rate":5.604419768449096,"win_rate":87.13286713286713,"avg_hold_minutes":61.6074358974359,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":120,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":549,"trading_days":21,"gross_pnl":11954150,"net_pnl":11295984,"avg_profit_rate":4.958623493371519,"win_rate":85.97449908925319,"avg_hold_minutes":63.17662416514876,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1077,"trading_days":39,"gross_pnl":26514092,"net_pnl":25234029,"avg_profit_rate":5.628265160446496,"win_rate":87.09377901578459,"avg_hold_minutes":62.5713556174559,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1393,"trading_days":50,"gross_pnl":35494653,"net_pnl":33829183,"avg_profit_rate":5.80349917445746,"win_rate":88.37042354630294,"avg_hold_minutes":62.75704714046422,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":12,"bought_count":12,"avg_max_profit_rate":6.391416666666667,"avg_min_profit_rate":-10.332533333333332,"avg_close_profit_rate":2.991858333333333,"win_rate":83.33333333333334,"target_rate":75.0,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":4,"lookback_days":30},"60":{"count":12,"bought_count":12,"avg_max_profit_rate":6.391416666666667,"avg_min_profit_rate":-10.332533333333332,"avg_close_profit_rate":2.991858333333333,"win_rate":83.33333333333334,"target_rate":75.0,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":4,"lookback_days":60},"90":{"count":12,"bought_count":12,"avg_max_profit_rate":6.391416666666667,"avg_min_profit_rate":-10.332533333333332,"avg_close_profit_rate":2.991858333333333,"win_rate":83.33333333333334,"target_rate":75.0,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":4,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1393,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_120","effective_date":"2026-06-11"},"buy_entry":{"sample_ok":false,"sample_count":12,"trading_days":4,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_3~5","horizon_minutes":60,"effective_date":"2026-06-11"},"outcome_refresh":{"snapshots":63,"outcomes_updated":183,"outcomes_skipped":6},"candidate_name":"time_exit_120","entry_candidate_name":"change_rate_3~5"},"decision":"applied","applied_strategy_version":"v20260610161227-auto","created_at":"2026-06-10 16:12:27"},{"id":18,"run_date":"2026-06-09","lookback_days":90,"sample_count":1435,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":569,"trading_days":20,"gross_pnl":11017682,"net_pnl":10340502,"avg_profit_rate":4.4223651358596765,"win_rate":82.42530755711776,"avg_hold_minutes":59.37882249560633,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1136,"trading_days":38,"gross_pnl":25336683,"net_pnl":23994772,"avg_profit_rate":5.106093483113435,"win_rate":83.97887323943662,"avg_hold_minutes":58.961355633802825,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1510,"trading_days":50,"gross_pnl":35258189,"net_pnl":33462159,"avg_profit_rate":5.318316459230456,"win_rate":85.56291390728477,"avg_hold_minutes":58.9335761589404,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":90,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":541,"trading_days":20,"gross_pnl":11170865,"net_pnl":10525679,"avg_profit_rate":4.72728467429315,"win_rate":84.10351201478743,"avg_hold_minutes":62.498767714109675,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1082,"trading_days":38,"gross_pnl":25589417,"net_pnl":24309013,"avg_profit_rate":5.418931025560009,"win_rate":85.58225508317929,"avg_hold_minutes":61.71230745532963,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1435,"trading_days":50,"gross_pnl":35645127,"net_pnl":33934933,"avg_profit_rate":5.662140245812865,"win_rate":87.3170731707317,"avg_hold_minutes":61.63786295005807,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":10,"bought_count":10,"avg_max_profit_rate":5.789479999999999,"avg_min_profit_rate":-10.1508,"avg_close_profit_rate":2.71962,"win_rate":90.0,"target_rate":70.0,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":3,"lookback_days":30},"60":{"count":10,"bought_count":10,"avg_max_profit_rate":5.789479999999999,"avg_min_profit_rate":-10.1508,"avg_close_profit_rate":2.71962,"win_rate":90.0,"target_rate":70.0,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":3,"lookback_days":60},"90":{"count":10,"bought_count":10,"avg_max_profit_rate":5.789479999999999,"avg_min_profit_rate":-10.1508,"avg_close_profit_rate":2.71962,"win_rate":90.0,"target_rate":70.0,"risk_rate":100.0,"max_loss_rate":-14.1475,"trading_days":3,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1435,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_90","effective_date":"2026-06-10"},"buy_entry":{"sample_ok":false,"sample_count":10,"trading_days":3,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"change_rate_3~5","horizon_minutes":60,"effective_date":"2026-06-10"},"outcome_refresh":{"snapshots":43,"outcomes_updated":126,"outcomes_skipped":3},"candidate_name":"time_exit_90","entry_candidate_name":"change_rate_3~5"},"decision":"applied","applied_strategy_version":"v20260609161153-auto","created_at":"2026-06-09 16:11:53"},{"id":17,"run_date":"2026-06-08","lookback_days":90,"sample_count":1511,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":559,"trading_days":19,"gross_pnl":10480039,"net_pnl":9815988,"avg_profit_rate":4.3048571581415995,"win_rate":82.11091234347049,"avg_hold_minutes":55.50655933214073,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1140,"trading_days":37,"gross_pnl":24839313,"net_pnl":23495225,"avg_profit_rate":4.995112527130185,"win_rate":83.85964912280703,"avg_hold_minutes":55.07826023391813,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1539,"trading_days":50,"gross_pnl":34822187,"net_pnl":32992869,"avg_profit_rate":5.1540024750119615,"win_rate":85.44509421702404,"avg_hold_minutes":55.10830625947585,"max_loss_rate":-34.101623886851755}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":45,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":550,"trading_days":19,"gross_pnl":10657680,"net_pnl":10003335,"avg_profit_rate":4.429371532479928,"win_rate":81.81818181818183,"avg_hold_minutes":59.587575757575756,"max_loss_rate":-34.101623886851755},"60":{"lookback_days":60,"sample_count":1117,"trading_days":37,"gross_pnl":24976681,"net_pnl":23657605,"avg_profit_rate":5.121173480193972,"win_rate":83.70635631154879,"avg_hold_minutes":59.057042673828704,"max_loss_rate":-34.101623886851755},"90":{"lookback_days":90,"sample_count":1511,"trading_days":50,"gross_pnl":35320887,"net_pnl":33521317,"avg_profit_rate":5.318618363704082,"win_rate":85.50628722700199,"avg_hold_minutes":59.070747849106546,"max_loss_rate":-34.101623886851755}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":11.713799999999999,"avg_min_profit_rate":-11.090499999999999,"avg_close_profit_rate":2.757309090909091,"win_rate":81.81818181818183,"target_rate":81.81818181818183,"risk_rate":100.0,"max_loss_rate":-26.7504,"trading_days":2,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":11.713799999999999,"avg_min_profit_rate":-11.090499999999999,"avg_close_profit_rate":2.757309090909091,"win_rate":81.81818181818183,"target_rate":81.81818181818183,"risk_rate":100.0,"max_loss_rate":-26.7504,"trading_days":2,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":11.713799999999999,"avg_min_profit_rate":-11.090499999999999,"avg_close_profit_rate":2.757309090909091,"win_rate":81.81818181818183,"target_rate":81.81818181818183,"risk_rate":100.0,"max_loss_rate":-26.7504,"trading_days":2,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":1511,"trading_days":50,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"longer_min_hold","effective_date":"2026-06-09"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":2,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_bucket_09:00","horizon_minutes":60,"effective_date":"2026-06-09"},"outcome_refresh":{"snapshots":23,"outcomes_updated":66,"outcomes_skipped":3},"candidate_name":"longer_min_hold","entry_candidate_name":"time_bucket_09:00"},"decision":"applied","applied_strategy_version":"v20260608161220-auto","created_at":"2026-06-08 16:12:20"},{"id":16,"run_date":"2026-06-05","lookback_days":90,"sample_count":126,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":86,"trading_days":19,"gross_pnl":1998332,"net_pnl":-8694585,"avg_profit_rate":5.332790697674419,"win_rate":81.3953488372093,"avg_hold_minutes":68.02267441860465,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":178,"trading_days":34,"gross_pnl":4180750,"net_pnl":-17537277,"avg_profit_rate":5.4564044943820225,"win_rate":81.46067415730337,"avg_hold_minutes":68.2876404494382,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":203,"trading_days":44,"gross_pnl":4553587,"net_pnl":-20192213,"avg_profit_rate":5.220246305418719,"win_rate":79.3103448275862,"avg_hold_minutes":67.49901477832512,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":53,"trading_days":18,"gross_pnl":988610,"net_pnl":-5376986,"avg_profit_rate":4.357169811320754,"win_rate":71.69811320754717,"avg_hold_minutes":57.77075471698113,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":105,"trading_days":32,"gross_pnl":1833385,"net_pnl":-10666006,"avg_profit_rate":4.0906666666666665,"win_rate":70.47619047619048,"avg_hold_minutes":57.05968253968254,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":126,"trading_days":41,"gross_pnl":2151747,"net_pnl":-12878316,"avg_profit_rate":4.01436507936508,"win_rate":69.04761904761905,"avg_hold_minutes":57.20820105820106,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181818,"avg_min_profit_rate":-8.908172727272728,"avg_close_profit_rate":1.9467272727272726,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181818,"avg_min_profit_rate":-8.908172727272728,"avg_close_profit_rate":1.9467272727272726,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181818,"avg_min_profit_rate":-8.908172727272728,"avg_close_profit_rate":1.9467272727272726,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":126,"trading_days":41,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-05 19:22:11"},{"id":15,"run_date":"2026-06-05","lookback_days":90,"sample_count":126,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":86,"trading_days":19,"gross_pnl":1998332,"net_pnl":-8694585,"avg_profit_rate":5.332790697674418,"win_rate":81.3953488372093,"avg_hold_minutes":68.02267441860462,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":178,"trading_days":34,"gross_pnl":4180750,"net_pnl":-17537277,"avg_profit_rate":5.456404494382025,"win_rate":81.46067415730337,"avg_hold_minutes":68.28764044943823,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":203,"trading_days":44,"gross_pnl":4553587,"net_pnl":-20192213,"avg_profit_rate":5.220246305418723,"win_rate":79.3103448275862,"avg_hold_minutes":67.49901477832515,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":53,"trading_days":18,"gross_pnl":988610,"net_pnl":-5376986,"avg_profit_rate":4.3571698113207535,"win_rate":71.69811320754717,"avg_hold_minutes":57.77075471698114,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":105,"trading_days":32,"gross_pnl":1833385,"net_pnl":-10666006,"avg_profit_rate":4.090666666666666,"win_rate":70.47619047619048,"avg_hold_minutes":57.05968253968249,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":126,"trading_days":41,"gross_pnl":2151747,"net_pnl":-12878316,"avg_profit_rate":4.014365079365079,"win_rate":69.04761904761905,"avg_hold_minutes":57.20820105820104,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":126,"trading_days":41,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-05 16:10:20"},{"id":14,"run_date":"2026-06-04","lookback_days":90,"sample_count":128,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":86,"trading_days":19,"gross_pnl":1998332,"net_pnl":-8694585,"avg_profit_rate":5.332790697674419,"win_rate":81.3953488372093,"avg_hold_minutes":68.02267441860465,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":178,"trading_days":34,"gross_pnl":4180750,"net_pnl":-17537277,"avg_profit_rate":5.4564044943820225,"win_rate":81.46067415730337,"avg_hold_minutes":68.2876404494382,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":205,"trading_days":45,"gross_pnl":4584587,"net_pnl":-20380283,"avg_profit_rate":5.208243902439024,"win_rate":79.51219512195122,"avg_hold_minutes":67.33227642276422,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":53,"trading_days":18,"gross_pnl":988610,"net_pnl":-5376986,"avg_profit_rate":4.357169811320754,"win_rate":71.69811320754717,"avg_hold_minutes":57.77075471698113,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":105,"trading_days":32,"gross_pnl":1833385,"net_pnl":-10666006,"avg_profit_rate":4.0906666666666665,"win_rate":70.47619047619048,"avg_hold_minutes":57.05968253968254,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":128,"trading_days":42,"gross_pnl":2182747,"net_pnl":-13066386,"avg_profit_rate":4.013984375,"win_rate":69.53125,"avg_hold_minutes":57.101953125,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181818,"avg_min_profit_rate":-8.908172727272728,"avg_close_profit_rate":1.9467272727272726,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181818,"avg_min_profit_rate":-8.908172727272728,"avg_close_profit_rate":1.9467272727272726,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181818,"avg_min_profit_rate":-8.908172727272728,"avg_close_profit_rate":1.9467272727272726,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":128,"trading_days":42,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-04 17:44:07"},{"id":13,"run_date":"2026-06-04","lookback_days":90,"sample_count":128,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":86,"trading_days":19,"gross_pnl":1998332,"net_pnl":-8694585,"avg_profit_rate":5.332790697674418,"win_rate":81.3953488372093,"avg_hold_minutes":68.02267441860462,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":178,"trading_days":34,"gross_pnl":4180750,"net_pnl":-17537277,"avg_profit_rate":5.456404494382025,"win_rate":81.46067415730337,"avg_hold_minutes":68.28764044943823,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":205,"trading_days":45,"gross_pnl":4584587,"net_pnl":-20380283,"avg_profit_rate":5.208243902439027,"win_rate":79.51219512195122,"avg_hold_minutes":67.33227642276425,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":53,"trading_days":18,"gross_pnl":988610,"net_pnl":-5376986,"avg_profit_rate":4.3571698113207535,"win_rate":71.69811320754717,"avg_hold_minutes":57.77075471698114,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":105,"trading_days":32,"gross_pnl":1833385,"net_pnl":-10666006,"avg_profit_rate":4.090666666666666,"win_rate":70.47619047619048,"avg_hold_minutes":57.05968253968249,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":128,"trading_days":42,"gross_pnl":2182747,"net_pnl":-13066386,"avg_profit_rate":4.013984374999999,"win_rate":69.53125,"avg_hold_minutes":57.10195312499999,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":128,"trading_days":42,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-04 16:10:17"},{"id":12,"run_date":"2026-06-03","lookback_days":90,"sample_count":126,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":91,"trading_days":19,"gross_pnl":2113590,"net_pnl":-9099085,"avg_profit_rate":5.417802197802196,"win_rate":82.41758241758241,"avg_hold_minutes":68.8373626373626,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":174,"trading_days":33,"gross_pnl":4038560,"net_pnl":-17123172,"avg_profit_rate":5.4283333333333355,"win_rate":81.03448275862068,"avg_hold_minutes":68.2477011494253,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":202,"trading_days":45,"gross_pnl":4444345,"net_pnl":-20113064,"avg_profit_rate":5.155148514851488,"win_rate":79.20792079207921,"avg_hold_minutes":67.23069306930694,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":52,"trading_days":18,"gross_pnl":967288,"net_pnl":-5254404,"avg_profit_rate":4.363461538461537,"win_rate":71.15384615384616,"avg_hold_minutes":57.26538461538462,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":102,"trading_days":31,"gross_pnl":1783695,"net_pnl":-10341635,"avg_profit_rate":4.103627450980391,"win_rate":69.6078431372549,"avg_hold_minutes":56.85408496732022,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":126,"trading_days":42,"gross_pnl":2135005,"net_pnl":-12888901,"avg_profit_rate":3.9936507936507932,"win_rate":69.04761904761905,"avg_hold_minutes":56.940343915343895,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":126,"trading_days":42,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-03 16:10:15"},{"id":11,"run_date":"2026-06-02","lookback_days":90,"sample_count":126,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":91,"trading_days":19,"gross_pnl":2113590,"net_pnl":-9099085,"avg_profit_rate":5.417802197802196,"win_rate":82.41758241758241,"avg_hold_minutes":68.8373626373626,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":174,"trading_days":33,"gross_pnl":4038560,"net_pnl":-17123172,"avg_profit_rate":5.4283333333333355,"win_rate":81.03448275862068,"avg_hold_minutes":68.2477011494253,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":202,"trading_days":45,"gross_pnl":4444345,"net_pnl":-20113064,"avg_profit_rate":5.155148514851488,"win_rate":79.20792079207921,"avg_hold_minutes":67.23069306930694,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":52,"trading_days":18,"gross_pnl":967288,"net_pnl":-5254404,"avg_profit_rate":4.363461538461537,"win_rate":71.15384615384616,"avg_hold_minutes":57.26538461538462,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":102,"trading_days":31,"gross_pnl":1783695,"net_pnl":-10341635,"avg_profit_rate":4.103627450980391,"win_rate":69.6078431372549,"avg_hold_minutes":56.85408496732022,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":126,"trading_days":42,"gross_pnl":2135005,"net_pnl":-12888901,"avg_profit_rate":3.9936507936507932,"win_rate":69.04761904761905,"avg_hold_minutes":56.940343915343895,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":126,"trading_days":42,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-02 16:10:13"},{"id":10,"run_date":"2026-06-01","lookback_days":90,"sample_count":127,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":89,"trading_days":18,"gross_pnl":2043489,"net_pnl":-8869430,"avg_profit_rate":5.386292134831459,"win_rate":82.02247191011236,"avg_hold_minutes":68.73764044943817,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":172,"trading_days":32,"gross_pnl":3968459,"net_pnl":-16893517,"avg_profit_rate":5.412151162790701,"win_rate":80.81395348837209,"avg_hold_minutes":68.18924418604652,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":202,"trading_days":45,"gross_pnl":4387744,"net_pnl":-20090624,"avg_profit_rate":5.105495049504953,"win_rate":78.71287128712872,"avg_hold_minutes":66.95709570957095,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":51,"trading_days":17,"gross_pnl":941692,"net_pnl":-5127358,"avg_profit_rate":4.355686274509802,"win_rate":70.58823529411765,"avg_hold_minutes":57.11470588235295,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":101,"trading_days":30,"gross_pnl":1758099,"net_pnl":-10214589,"avg_profit_rate":4.097128712871286,"win_rate":69.3069306930693,"avg_hold_minutes":56.77392739273923,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":127,"trading_days":42,"gross_pnl":2122909,"net_pnl":-12969070,"avg_profit_rate":3.9531496062992124,"win_rate":68.50393700787401,"avg_hold_minutes":56.69934383202098,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":127,"trading_days":42,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-06-01 16:10:11"},{"id":9,"run_date":"2026-05-29","lookback_days":90,"sample_count":125,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":100,"trading_days":19,"gross_pnl":2339309,"net_pnl":-9965443,"avg_profit_rate":5.425999999999999,"win_rate":79.0,"avg_hold_minutes":67.65783333333331,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":168,"trading_days":31,"gross_pnl":3849779,"net_pnl":-16491326,"avg_profit_rate":5.389107142857146,"win_rate":80.35714285714286,"avg_hold_minutes":68.18085317460317,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":198,"trading_days":44,"gross_pnl":4269064,"net_pnl":-19688433,"avg_profit_rate":5.079747474747477,"win_rate":78.28282828282829,"avg_hold_minutes":66.92508417508417,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":45,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5},"candidate_metrics_json":{"30":{"lookback_days":30,"sample_count":59,"trading_days":18,"gross_pnl":975662,"net_pnl":-6053507,"avg_profit_rate":3.8772881355932194,"win_rate":66.10169491525424,"avg_hold_minutes":55.945762711864425,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":99,"trading_days":29,"gross_pnl":1724239,"net_pnl":-10009495,"avg_profit_rate":4.099191919191918,"win_rate":68.68686868686868,"avg_hold_minutes":56.81228956228952,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":125,"trading_days":41,"gross_pnl":2089049,"net_pnl":-12763976,"avg_profit_rate":3.95248,"win_rate":68.0,"avg_hold_minutes":56.72853333333332,"max_loss_rate":-1.58}},"guardrail_result_json":{"sample_ok":true,"sample_count":125,"trading_days":41,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"decision":"rejected_guardrail","applied_strategy_version":null,"created_at":"2026-05-29 16:10:53"},{"id":8,"run_date":"2026-05-29","lookback_days":90,"sample_count":125,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":100,"trading_days":19,"gross_pnl":2339309,"net_pnl":-9965443,"avg_profit_rate":5.425999999999999,"win_rate":79.0,"avg_hold_minutes":67.65783333333331,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":168,"trading_days":31,"gross_pnl":3849779,"net_pnl":-16491326,"avg_profit_rate":5.389107142857146,"win_rate":80.35714285714286,"avg_hold_minutes":68.18085317460317,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":198,"trading_days":44,"gross_pnl":4269064,"net_pnl":-19688433,"avg_profit_rate":5.079747474747477,"win_rate":78.28282828282829,"avg_hold_minutes":66.92508417508417,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":59,"trading_days":18,"gross_pnl":975662,"net_pnl":-6053507,"avg_profit_rate":3.8772881355932194,"win_rate":66.10169491525424,"avg_hold_minutes":55.945762711864425,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":99,"trading_days":29,"gross_pnl":1724239,"net_pnl":-10009495,"avg_profit_rate":4.099191919191918,"win_rate":68.68686868686868,"avg_hold_minutes":56.81228956228952,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":125,"trading_days":41,"gross_pnl":2089049,"net_pnl":-12763976,"avg_profit_rate":3.95248,"win_rate":68.0,"avg_hold_minutes":56.72853333333332,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":125,"trading_days":41,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-05-29 16:10:07"},{"id":7,"run_date":"2026-05-28","lookback_days":90,"sample_count":195,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":136,"trading_days":20,"gross_pnl":2877001,"net_pnl":-13702230,"avg_profit_rate":4.90544117647059,"win_rate":75.0,"avg_hold_minutes":59.57022058823528,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":218,"trading_days":31,"gross_pnl":4862445,"net_pnl":-21463261,"avg_profit_rate":5.263532110091743,"win_rate":77.06422018348624,"avg_hold_minutes":60.06536697247705,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":264,"trading_days":48,"gross_pnl":5648200,"net_pnl":-26402415,"avg_profit_rate":5.016818181818181,"win_rate":75.0,"avg_hold_minutes":58.675252525252525,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5},"candidate_metrics_json":{"30":{"lookback_days":30,"sample_count":101,"trading_days":19,"gross_pnl":2334064,"net_pnl":-10114189,"avg_profit_rate":5.37079207920792,"win_rate":80.19801980198021,"avg_hold_minutes":68.29933993399338,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":164,"trading_days":30,"gross_pnl":3786019,"net_pnl":-16120419,"avg_profit_rate":5.436158536585369,"win_rate":81.09756097560977,"avg_hold_minutes":68.51798780487805,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":195,"trading_days":44,"gross_pnl":4220384,"net_pnl":-19409930,"avg_profit_rate":5.10717948717949,"win_rate":78.97435897435898,"avg_hold_minutes":67.2388888888889,"max_loss_rate":-1.58}},"guardrail_result_json":{"sample_ok":true,"sample_count":195,"trading_days":44,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":true,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"longer_min_hold"},"decision":"rejected_once_per_day","applied_strategy_version":null,"created_at":"2026-05-28 16:10:32"},{"id":6,"run_date":"2026-05-28","lookback_days":90,"sample_count":195,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":136,"trading_days":20,"gross_pnl":2877001,"net_pnl":-13702230,"avg_profit_rate":4.90544117647059,"win_rate":75.0,"avg_hold_minutes":59.57022058823528,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":218,"trading_days":31,"gross_pnl":4862445,"net_pnl":-21463261,"avg_profit_rate":5.263532110091743,"win_rate":77.06422018348624,"avg_hold_minutes":60.06536697247705,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":264,"trading_days":48,"gross_pnl":5648200,"net_pnl":-26402415,"avg_profit_rate":5.016818181818181,"win_rate":75.0,"avg_hold_minutes":58.675252525252525,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":40,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":101,"trading_days":19,"gross_pnl":2334064,"net_pnl":-10114189,"avg_profit_rate":5.37079207920792,"win_rate":80.19801980198021,"avg_hold_minutes":68.29933993399338,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":164,"trading_days":30,"gross_pnl":3786019,"net_pnl":-16120419,"avg_profit_rate":5.436158536585369,"win_rate":81.09756097560977,"avg_hold_minutes":68.51798780487805,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":195,"trading_days":44,"gross_pnl":4220384,"net_pnl":-19409930,"avg_profit_rate":5.10717948717949,"win_rate":78.97435897435898,"avg_hold_minutes":67.2388888888889,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":195,"trading_days":44,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"longer_min_hold","effective_date":"2026-05-29"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60,"effective_date":"2026-05-29"},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"longer_min_hold","entry_candidate_name":"accumulated_volume_<1M"},"decision":"applied","applied_strategy_version":"v20260528161004-auto","created_at":"2026-05-28 16:10:04"},{"id":5,"run_date":"2026-05-27","lookback_days":90,"sample_count":189,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":141,"trading_days":20,"gross_pnl":2925341,"net_pnl":-14154967,"avg_profit_rate":4.829290780141846,"win_rate":73.04964539007092,"avg_hold_minutes":58.88262411347517,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":215,"trading_days":30,"gross_pnl":4771835,"net_pnl":-21125480,"avg_profit_rate":5.249534883720931,"win_rate":77.20930232558139,"avg_hold_minutes":60.14651162790696,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":262,"trading_days":48,"gross_pnl":5557590,"net_pnl":-26225698,"avg_profit_rate":4.983358778625953,"win_rate":74.80916030534351,"avg_hold_minutes":58.73358778625954,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":30,"time_exit_minutes":45,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5},"candidate_metrics_json":{"30":{"lookback_days":30,"sample_count":98,"trading_days":19,"gross_pnl":1567639,"net_pnl":-10025103,"avg_profit_rate":3.74938775510204,"win_rate":62.244897959183675,"avg_hold_minutes":47.56870748299319,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":147,"trading_days":29,"gross_pnl":2692755,"net_pnl":-14733522,"avg_profit_rate":4.348367346938778,"win_rate":68.02721088435374,"avg_hold_minutes":48.90011337868478,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":189,"trading_days":46,"gross_pnl":3408955,"net_pnl":-19298710,"avg_profit_rate":4.233174603174605,"win_rate":66.66666666666666,"avg_hold_minutes":48.873192239858916,"max_loss_rate":-1.58}},"guardrail_result_json":{"sample_ok":true,"sample_count":189,"trading_days":46,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"decision":"rejected_guardrail","applied_strategy_version":null,"created_at":"2026-05-27 16:10:35"},{"id":4,"run_date":"2026-05-27","lookback_days":90,"sample_count":189,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":141,"trading_days":20,"gross_pnl":2925341,"net_pnl":-14154967,"avg_profit_rate":4.829290780141846,"win_rate":73.04964539007092,"avg_hold_minutes":58.88262411347517,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":215,"trading_days":30,"gross_pnl":4771835,"net_pnl":-21125480,"avg_profit_rate":5.249534883720931,"win_rate":77.20930232558139,"avg_hold_minutes":60.14651162790696,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":262,"trading_days":48,"gross_pnl":5557590,"net_pnl":-26225698,"avg_profit_rate":4.983358778625953,"win_rate":74.80916030534351,"avg_hold_minutes":58.73358778625954,"max_loss_rate":-1.58}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":30,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5,"entry_filter_json":{"enabled":false,"rules":[],"summary":"feature filter disabled"}},"candidate_metrics_json":{"sell_exit":{"30":{"lookback_days":30,"sample_count":98,"trading_days":19,"gross_pnl":1567639,"net_pnl":-10025103,"avg_profit_rate":3.74938775510204,"win_rate":62.244897959183675,"avg_hold_minutes":47.56870748299319,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":147,"trading_days":29,"gross_pnl":2692755,"net_pnl":-14733522,"avg_profit_rate":4.348367346938778,"win_rate":68.02721088435374,"avg_hold_minutes":48.90011337868478,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":189,"trading_days":46,"gross_pnl":3408955,"net_pnl":-19298710,"avg_profit_rate":4.233174603174605,"win_rate":66.66666666666666,"avg_hold_minutes":48.873192239858916,"max_loss_rate":-1.58}},"buy_entry":{"30":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":30},"60":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":60},"90":{"count":11,"bought_count":11,"avg_max_profit_rate":6.783581818181816,"avg_min_profit_rate":-8.908172727272726,"avg_close_profit_rate":1.9467272727272729,"win_rate":72.72727272727273,"target_rate":72.72727272727273,"risk_rate":100.0,"max_loss_rate":-15.27,"trading_days":1,"lookback_days":90}}},"guardrail_result_json":{"sell_exit":{"sample_ok":true,"sample_count":189,"trading_days":46,"improved_windows":0,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"time_exit_45"},"buy_entry":{"sample_ok":false,"sample_count":11,"trading_days":1,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"accumulated_volume_<1M","horizon_minutes":60},"outcome_refresh":{"snapshots":13,"outcomes_updated":36,"outcomes_skipped":3},"candidate_name":"time_exit_45","entry_candidate_name":"accumulated_volume_<1M"},"decision":"rejected_sample","applied_strategy_version":null,"created_at":"2026-05-27 16:10:02"},{"id":3,"run_date":"2026-05-26","lookback_days":90,"sample_count":258,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":362,"trading_days":19,"gross_pnl":2769613,"net_pnl":-38340922,"avg_profit_rate":1.818480662983426,"win_rate":34.25414364640884,"avg_hold_minutes":35.970349907918965,"max_loss_rate":-2.82},"60":{"lookback_days":60,"sample_count":547,"trading_days":29,"gross_pnl":4778670,"net_pnl":-57899004,"avg_profit_rate":2.0898171846435125,"win_rate":38.391224862888485,"avg_hold_minutes":36.56678854357099,"max_loss_rate":-2.91},"90":{"lookback_days":90,"sample_count":632,"trading_days":49,"gross_pnl":6290055,"net_pnl":-67006829,"avg_profit_rate":2.334936708860758,"win_rate":41.29746835443038,"avg_hold_minutes":37.12441983122365,"max_loss_rate":-2.91}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":30,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5},"candidate_metrics_json":{"30":{"lookback_days":30,"sample_count":136,"trading_days":19,"gross_pnl":2757806,"net_pnl":-13641763,"avg_profit_rate":4.752352941176473,"win_rate":72.05882352941177,"avg_hold_minutes":59.89166666666666,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":210,"trading_days":29,"gross_pnl":4604300,"net_pnl":-20612276,"avg_profit_rate":5.209714285714288,"win_rate":76.66666666666667,"avg_hold_minutes":60.83007936507935,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":258,"trading_days":48,"gross_pnl":5413110,"net_pnl":-25839295,"avg_profit_rate":4.943333333333333,"win_rate":74.4186046511628,"avg_hold_minutes":59.259625322997415,"max_loss_rate":-1.58}},"guardrail_result_json":{"sample_ok":true,"sample_count":258,"trading_days":48,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":true,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"longer_min_hold"},"decision":"rejected_once_per_day","applied_strategy_version":null,"created_at":"2026-05-26 19:35:43"},{"id":2,"run_date":"2026-05-26","lookback_days":90,"sample_count":258,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":362,"trading_days":19,"gross_pnl":2769613,"net_pnl":-38340922,"avg_profit_rate":1.818480662983426,"win_rate":34.25414364640884,"avg_hold_minutes":35.970349907918965,"max_loss_rate":-2.82},"60":{"lookback_days":60,"sample_count":547,"trading_days":29,"gross_pnl":4778670,"net_pnl":-57899004,"avg_profit_rate":2.0898171846435125,"win_rate":38.391224862888485,"avg_hold_minutes":36.56678854357099,"max_loss_rate":-2.91},"90":{"lookback_days":90,"sample_count":632,"trading_days":49,"gross_pnl":6290055,"net_pnl":-67006829,"avg_profit_rate":2.334936708860758,"win_rate":41.29746835443038,"avg_hold_minutes":37.12441983122365,"max_loss_rate":-2.91}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":30,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5},"candidate_metrics_json":{"30":{"lookback_days":30,"sample_count":136,"trading_days":19,"gross_pnl":2757806,"net_pnl":-13641763,"avg_profit_rate":4.752352941176473,"win_rate":72.05882352941177,"avg_hold_minutes":59.89166666666666,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":210,"trading_days":29,"gross_pnl":4604300,"net_pnl":-20612276,"avg_profit_rate":5.209714285714288,"win_rate":76.66666666666667,"avg_hold_minutes":60.83007936507935,"max_loss_rate":-0.8},"90":{"lookback_days":90,"sample_count":258,"trading_days":48,"gross_pnl":5413110,"net_pnl":-25839295,"avg_profit_rate":4.943333333333333,"win_rate":74.4186046511628,"avg_hold_minutes":59.259625322997415,"max_loss_rate":-1.58}},"guardrail_result_json":{"sample_ok":true,"sample_count":258,"trading_days":48,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":true,"candidate_name":"longer_min_hold","effective_date":"2026-05-27"},"decision":"applied","applied_strategy_version":"v20260526184228-auto","created_at":"2026-05-26 18:42:30"},{"id":1,"run_date":"2026-05-22","lookback_days":90,"sample_count":256,"baseline_metrics_json":{"30":{"lookback_days":30,"sample_count":400,"trading_days":21,"gross_pnl":3358059,"net_pnl":-42255193,"avg_profit_rate":2.0203250000000024,"win_rate":35.0,"avg_hold_minutes":35.84858333333332,"max_loss_rate":-2.86},"60":{"lookback_days":60,"sample_count":546,"trading_days":32,"gross_pnl":5118717,"net_pnl":-57732756,"avg_profit_rate":2.2320146520146538,"win_rate":39.743589743589745,"avg_hold_minutes":36.97484737484738,"max_loss_rate":-2.91},"90":{"lookback_days":90,"sample_count":619,"trading_days":50,"gross_pnl":6384854,"net_pnl":-65588300,"avg_profit_rate":2.412116316639739,"win_rate":42.003231017770595,"avg_hold_minutes":37.250323101777084,"max_loss_rate":-2.91}},"candidate_params_json":{"buy_start":"09:00","buy_end":"09:30","min_hold_minutes":30,"time_exit_minutes":60,"first_target_pct":3.0,"second_target_pct":5.0,"trailing_drop_pct":1.0,"risk_pct":-3.0,"risk_recovery_minutes":5},"candidate_metrics_json":{"30":{"lookback_days":30,"sample_count":148,"trading_days":21,"gross_pnl":3212963,"net_pnl":-14637979,"avg_profit_rate":5.168040540540542,"win_rate":72.97297297297297,"avg_hold_minutes":60.23051801801803,"max_loss_rate":-0.8},"60":{"lookback_days":60,"sample_count":217,"trading_days":32,"gross_pnl":4728142,"net_pnl":-21398507,"avg_profit_rate":5.1809677419354845,"win_rate":76.49769585253456,"avg_hold_minutes":60.371198156682034,"max_loss_rate":-1.58},"90":{"lookback_days":90,"sample_count":256,"trading_days":49,"gross_pnl":5372798,"net_pnl":-25627161,"avg_profit_rate":4.9552734375,"win_rate":74.609375,"avg_hold_minutes":59.0505859375,"max_loss_rate":-1.58}},"guardrail_result_json":{"sample_ok":true,"sample_count":256,"trading_days":49,"improved_windows":3,"loss_safe_windows":3,"already_applied_today":false,"params_changed":true,"auto_apply_enabled":false,"candidate_name":"longer_min_hold"},"decision":"rejected_auto_apply_disabled","applied_strategy_version":null,"created_at":"2026-05-25 19:05:02"}]}