{"entry_id":"IMP-0001","timestamp":"2026-03-16T22:52:29.147972+00:00","experiment_name":"pead_midcap_step1_fixedr","hypothesis":"Step 1: fixed_r target 2.0 R:R","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191835_e0902214","trade_count":528,"profit_factor":0.9200217466205215,"total_return_pct":-3.124588680970817,"win_rate":0.4090909090909091,"max_drawdown_pct":7.849601936494004,"sharpe_ratio":-0.33161166573941914,"monthly_win_rate":0.38461538461538464,"equity_curve_r_squared":0.049564252587599174},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191841_e0902214","trade_count":69,"profit_factor":1.7731598619764342,"total_return_pct":2.779776127733232,"win_rate":0.4927536231884058,"max_drawdown_pct":1.5546437384924012,"sharpe_ratio":3.3855945499328657,"monthly_win_rate":0.5,"equity_curve_r_squared":0.46467275010982595},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191847_e0902214","trade_count":95,"profit_factor":0.9135744830352539,"total_return_pct":-0.4557621829436975,"win_rate":0.47368421052631576,"max_drawdown_pct":1.4922738831283402,"sharpe_ratio":-0.690798512095932,"monthly_win_rate":0.3333333333333333,"equity_curve_r_squared":0.53626294582183}},"sqs_score":39.7,"sqs_breakdown":{"profitability":23.9,"risk":52.4,"consistency":24.8,"robustness":80.7},"verdict":"neutral","verdict_reasoning":"Baseline for midcap step series","next_direction":"Step 2: disable trailing stop","tags":["pead","midcap","step1","fixedr"]} {"entry_id":"IMP-0002","timestamp":"2026-03-16T22:52:29.505541+00:00","experiment_name":"pead_midcap_step2_notrail","hypothesis":"Step 2: Disable trailing stop for midcap volatility","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191857_52e64963","trade_count":456,"profit_factor":0.8306562780589708,"total_return_pct":-7.062952270161506,"win_rate":0.6578947368421053,"max_drawdown_pct":11.950419851957642,"sharpe_ratio":-0.696356079596736,"monthly_win_rate":0.525,"equity_curve_r_squared":0.07229984947776134},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191904_52e64963","trade_count":62,"profit_factor":1.073493344735863,"total_return_pct":0.3745287237202429,"win_rate":0.7258064516129032,"max_drawdown_pct":1.7163906170323242,"sharpe_ratio":0.39419762465723635,"monthly_win_rate":0.25,"equity_curve_r_squared":0.32372614376351805},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191911_52e64963","trade_count":54,"profit_factor":0.9313134618740863,"total_return_pct":-0.26847486723051406,"win_rate":0.6666666666666666,"max_drawdown_pct":1.7431414336132605,"sharpe_ratio":-0.366331653948068,"monthly_win_rate":0.3333333333333333,"equity_curve_r_squared":0.27335022008413906}},"sqs_score":41.4,"sqs_breakdown":{"profitability":25.5,"risk":56.4,"consistency":54.2,"robustness":41.5},"verdict":"worse","verdict_reasoning":"Train PF dropped to 0.73, worst overall","next_direction":"Step 3: raise reaction threshold","tags":["pead","midcap","step2","notrail"]} {"entry_id":"IMP-0003","timestamp":"2026-03-16T22:52:29.857239+00:00","experiment_name":"pead_midcap_step3_10pct","hypothesis":"Step 3: Raise reaction threshold 7%->10% for stronger signals","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191921_2dd6b0b3","trade_count":554,"profit_factor":0.8983598002644894,"total_return_pct":-3.280603570163337,"win_rate":0.5,"max_drawdown_pct":6.615859124596835,"sharpe_ratio":-0.410178158923494,"monthly_win_rate":0.42857142857142855,"equity_curve_r_squared":0.3246242852362157},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191928_2dd6b0b3","trade_count":78,"profit_factor":1.664496799271172,"total_return_pct":1.9591117241190805,"win_rate":0.6025641025641025,"max_drawdown_pct":0.6538050285655718,"sharpe_ratio":2.907578829549799,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6968678861478663},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191935_2dd6b0b3","trade_count":98,"profit_factor":1.0020701077990406,"total_return_pct":0.013499456389559782,"win_rate":0.5,"max_drawdown_pct":1.4225278540108528,"sharpe_ratio":0.03939447191001189,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.0029903324045531966}},"sqs_score":49.8,"sqs_breakdown":{"profitability":30.2,"risk":65.0,"consistency":70.8,"robustness":49.1},"verdict":"better","verdict_reasoning":"Only experiment reaching test breakeven (PF=1.00, Ret=+0.01%)","next_direction":"Step 4: try long-only","tags":["pead","midcap","step3","10pct"]} {"entry_id":"IMP-0004","timestamp":"2026-03-16T22:52:30.203924+00:00","experiment_name":"pead_midcap_step4_longonly","hypothesis":"Step 4: Long-only, disable short side","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191945_bb0ddfa0","trade_count":486,"profit_factor":0.924546532180125,"total_return_pct":-2.2530301807158395,"win_rate":0.5432098765432098,"max_drawdown_pct":6.787125867039724,"sharpe_ratio":-0.20236278759112156,"monthly_win_rate":0.46153846153846156,"equity_curve_r_squared":0.1343287887075526},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191952_bb0ddfa0","trade_count":76,"profit_factor":1.430929775113959,"total_return_pct":1.4935870708133152,"win_rate":0.6052631578947368,"max_drawdown_pct":1.597646524797458,"sharpe_ratio":1.6551004874178592,"monthly_win_rate":0.5,"equity_curve_r_squared":0.6129327020059054},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316191959_bb0ddfa0","trade_count":78,"profit_factor":0.8355717037294544,"total_return_pct":-0.8088267292581296,"win_rate":0.44871794871794873,"max_drawdown_pct":1.4401741814514755,"sharpe_ratio":-1.1731301213701413,"monthly_win_rate":0.3333333333333333,"equity_curve_r_squared":0.3740006709035379}},"sqs_score":32.6,"sqs_breakdown":{"profitability":18.5,"risk":47.6,"consistency":20.6,"robustness":61.2},"verdict":"worse","verdict_reasoning":"Test PF 0.94, return -0.81%. Long-only worse than long+short","next_direction":"Step 5: limit candidates per day","tags":["pead","midcap","step4","longonly"]} {"entry_id":"IMP-0005","timestamp":"2026-03-16T22:52:30.561839+00:00","experiment_name":"pead_midcap_step5_maxcand3","hypothesis":"Step 5: Max 3 candidates per day, top signals only","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316192009_4f4f05bf","trade_count":667,"profit_factor":0.8936008117413707,"total_return_pct":-4.084212058311663,"win_rate":0.512743628185907,"max_drawdown_pct":6.529337814573298,"sharpe_ratio":-0.46728383699893133,"monthly_win_rate":0.358974358974359,"equity_curve_r_squared":0.5365488680633558},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316192017_4f4f05bf","trade_count":89,"profit_factor":2.081614051785466,"total_return_pct":3.3263332066270377,"win_rate":0.651685393258427,"max_drawdown_pct":1.1046989753464673,"sharpe_ratio":3.9774346553681674,"monthly_win_rate":0.75,"equity_curve_r_squared":0.5734715756129087},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316192023_4f4f05bf","trade_count":96,"profit_factor":0.9504596545547419,"total_return_pct":-0.2388243054896011,"win_rate":0.5416666666666666,"max_drawdown_pct":1.4011627353834164,"sharpe_ratio":-0.4009079471879985,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.5009577858012723}},"sqs_score":52.5,"sqs_breakdown":{"profitability":26.6,"risk":57.8,"consistency":77.8,"robustness":79.1},"verdict":"neutral","verdict_reasoning":"Best valid (+3.33%) but test still negative (-0.24%)","next_direction":"Step 6: extended hold","tags":["pead","midcap","step5","maxcand3"]} {"entry_id":"IMP-0006","timestamp":"2026-03-16T22:52:30.916045+00:00","experiment_name":"pead_midcap_step6_drift","hypothesis":"Step 6: Extended hold 25 days for PEAD drift","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316192033_be4b4568","trade_count":586,"profit_factor":0.9126734877022061,"total_return_pct":-3.711358688232649,"win_rate":0.4129692832764505,"max_drawdown_pct":6.665875438412343,"sharpe_ratio":-0.39694526230308885,"monthly_win_rate":0.38461538461538464,"equity_curve_r_squared":0.33883652745194087},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316192040_be4b4568","trade_count":75,"profit_factor":1.704720436988778,"total_return_pct":2.6652714937057898,"win_rate":0.5066666666666667,"max_drawdown_pct":1.0499246227859185,"sharpe_ratio":3.7096311156929622,"monthly_win_rate":0.5,"equity_curve_r_squared":0.5754494959825112},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316192047_be4b4568","trade_count":100,"profit_factor":0.8557264506988863,"total_return_pct":-0.8788682238009642,"win_rate":0.43,"max_drawdown_pct":1.7395188967538284,"sharpe_ratio":-1.5533516509762217,"monthly_win_rate":0.3333333333333333,"equity_curve_r_squared":0.7311683777861855}},"sqs_score":37.0,"sqs_breakdown":{"profitability":19.3,"risk":45.9,"consistency":17.5,"robustness":95.7},"verdict":"worse","verdict_reasoning":"Worst test return (-0.88%), longer hold hurts","next_direction":"Combo: step3 + step5","tags":["pead","midcap","step6","drift"]} {"entry_id":"IMP-0007","timestamp":"2026-03-16T22:52:31.270613+00:00","experiment_name":"pead_midcap_combo_10pct_maxcand3","hypothesis":"Combo: 10% threshold + max 3 candidates","config_delta":{"base_experiment":"pead_midcap_step1_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316195857_708d9090","trade_count":533,"profit_factor":0.9034427861136265,"total_return_pct":-2.91390932899194,"win_rate":0.49906191369606,"max_drawdown_pct":5.821672597926446,"sharpe_ratio":-0.3760744161321293,"monthly_win_rate":0.45714285714285713,"equity_curve_r_squared":0.3049801722988121},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316200003_708d9090","trade_count":72,"profit_factor":1.9089335238197231,"total_return_pct":2.2525004674136144,"win_rate":0.625,"max_drawdown_pct":0.6530874475348815,"sharpe_ratio":2.9527896546854935,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6965943198525836},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316200115_708d9090","trade_count":79,"profit_factor":0.9701095917976659,"total_return_pct":-0.11821922524747788,"win_rate":0.5063291139240507,"max_drawdown_pct":0.9293000795486674,"sharpe_ratio":-0.18779926674176511,"monthly_win_rate":0.3333333333333333,"equity_curve_r_squared":0.03631581199315345}},"sqs_score":39.2,"sqs_breakdown":{"profitability":28.0,"risk":63.5,"consistency":30.2,"robustness":40.6},"verdict":"better","verdict_reasoning":"Smallest test loss (-0.12%), lowest DD (0.93%). Best combined filter","next_direction":"Next: explore stop/target tuning or new scoring features","tags":["pead","midcap","combo","10pct","maxcand3"]} {"entry_id":"IMP-0008","timestamp":"2026-03-16T23:01:54.422047+00:00","experiment_name":"pead_midcap_step7_fixedr","hypothesis":"Combo base (10% + maxcand3) + fixed_r target 2.0. Fix inverted R:R","config_delta":{"base_experiment":"pead_midcap_combo_10pct_maxcand3","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316225931_249ee693","trade_count":425,"profit_factor":0.9087588895218256,"total_return_pct":-2.684538647143214,"win_rate":0.4023529411764706,"max_drawdown_pct":5.9541536964340045,"sharpe_ratio":-0.31665196683581115,"monthly_win_rate":0.45714285714285713,"equity_curve_r_squared":0.0655821811757635},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230020_249ee693","trade_count":53,"profit_factor":2.0006534393926754,"total_return_pct":2.3868649231372836,"win_rate":0.5283018867924528,"max_drawdown_pct":0.6860864501039302,"sharpe_ratio":3.087810484110416,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6619146653298694},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230108_249ee693","trade_count":71,"profit_factor":0.9376665114180485,"total_return_pct":-0.24986939032697408,"win_rate":0.4507042253521127,"max_drawdown_pct":0.9924460035465441,"sharpe_ratio":-0.39554365980509315,"monthly_win_rate":0.0,"equity_curve_r_squared":0.16973213763570125}},"sqs_score":35.4,"sqs_breakdown":{"profitability":25.9,"risk":60.1,"consistency":16.8,"robustness":44.5},"verdict":"neutral","verdict_reasoning":"Test PF improved but return still negative (-0.25%). Stop exit rate should drop with proper R:R","next_direction":"Step 8: add NFT exit; Step 9: tighter stop","tags":["pead","midcap","step7","fixedr"]} {"entry_id":"IMP-0009","timestamp":"2026-03-16T23:01:54.804591+00:00","experiment_name":"pead_midcap_step8_nft","hypothesis":"Step 7 + no_follow_through_exit. Cut dead trades at D+1 close","config_delta":{"base_experiment":"pead_midcap_step7_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316225932_3e736f0d","trade_count":454,"profit_factor":0.8441650849745413,"total_return_pct":-5.223338416972663,"win_rate":0.3766519823788546,"max_drawdown_pct":7.842211530994003,"sharpe_ratio":-0.6465192822980859,"monthly_win_rate":0.4,"equity_curve_r_squared":0.36446813528716165},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230020_3e736f0d","trade_count":57,"profit_factor":1.5546541014245128,"total_return_pct":1.8349072453313857,"win_rate":0.45614035087719296,"max_drawdown_pct":0.9575880067210154,"sharpe_ratio":2.3501871656264828,"monthly_win_rate":0.5,"equity_curve_r_squared":0.4737973824333247},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230108_3e736f0d","trade_count":71,"profit_factor":0.6522816324098041,"total_return_pct":-1.8153531028857979,"win_rate":0.4084507042253521,"max_drawdown_pct":2.1930148870201824,"sharpe_ratio":-2.981974625656072,"monthly_win_rate":0.3333333333333333,"equity_curve_r_squared":0.8832469667893551}},"sqs_score":31.3,"sqs_breakdown":{"profitability":12.7,"risk":43.4,"consistency":13.9,"robustness":83.9},"verdict":"worse","verdict_reasoning":"NFT exit hurts: test return -1.82% vs step7 -0.25%. Cutting too many trades that would have recovered","next_direction":"NFT too aggressive for PEAD drift strategy. Try tighter stop instead","tags":["pead","midcap","step8","nft"]} {"entry_id":"IMP-0010","timestamp":"2026-03-16T23:01:55.163461+00:00","experiment_name":"pead_midcap_step9_stop2","hypothesis":"Step 7 + tighter stop 2.0 ATR. Reduce avg loss per trade","config_delta":{"base_experiment":"pead_midcap_step7_fixedr","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316225939_36ab78b3","trade_count":432,"profit_factor":0.8175378156440357,"total_return_pct":-8.776000630653071,"win_rate":0.4074074074074074,"max_drawdown_pct":12.886676673013914,"sharpe_ratio":-0.7360418140485263,"monthly_win_rate":0.42857142857142855,"equity_curve_r_squared":0.4421218813805471},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230020_36ab78b3","trade_count":53,"profit_factor":1.8143851030277298,"total_return_pct":3.223451666916022,"win_rate":0.5283018867924528,"max_drawdown_pct":1.2331625402933826,"sharpe_ratio":2.813496185483277,"monthly_win_rate":0.75,"equity_curve_r_squared":0.5891081686619382},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230108_36ab78b3","trade_count":71,"profit_factor":0.7658210615369154,"total_return_pct":-1.7396298311107383,"win_rate":0.4507042253521127,"max_drawdown_pct":2.4893517163865826,"sharpe_ratio":-1.8398745071636018,"monthly_win_rate":0.0,"equity_curve_r_squared":0.7504756156161969}},"sqs_score":31.1,"sqs_breakdown":{"profitability":13.0,"risk":41.7,"consistency":16.8,"robustness":80.8},"verdict":"worse","verdict_reasoning":"Tighter stop hurts: test return -1.74% vs step7 -0.25%. More stops hit in volatile midcaps","next_direction":"Stop tuning counterproductive. Focus on signal quality or scoring improvements","tags":["pead","midcap","step9","stop2"]} {"entry_id":"IMP-0011","timestamp":"2026-03-16T23:04:14.616459+00:00","experiment_name":"pead_midcap_step10_short","hypothesis":"Combo base + shorter hold (7 days). Reduce unnecessary exposure","config_delta":{"base_experiment":"pead_midcap_combo_10pct_maxcand3","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230308_b26b6872","trade_count":535,"profit_factor":0.9383880570062944,"total_return_pct":-1.8280832909611637,"win_rate":0.508411214953271,"max_drawdown_pct":5.0343002325613835,"sharpe_ratio":-0.23100167769304789,"monthly_win_rate":0.4857142857142857,"equity_curve_r_squared":0.12398583357859513},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230314_b26b6872","trade_count":70,"profit_factor":1.6081573944406065,"total_return_pct":1.5626791854819602,"win_rate":0.5857142857142857,"max_drawdown_pct":0.6539417061012387,"sharpe_ratio":2.2442047142281463,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6019214395233538},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230319_b26b6872","trade_count":79,"profit_factor":0.9958404155353467,"total_return_pct":-0.013683964940166334,"win_rate":0.5189873417721519,"max_drawdown_pct":0.9293000795486674,"sharpe_ratio":-0.007699537912677983,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.01071589487383525}},"sqs_score":49.2,"sqs_breakdown":{"profitability":29.7,"risk":66.5,"consistency":74.0,"robustness":39.0},"verdict":"better","verdict_reasoning":"Test near breakeven (-0.01%), SQS 49.2 (up from 39.2). Consistency 74.0 dramatically improved","next_direction":"Try combo with score threshold and short hold","tags":["pead","midcap","step10","short"]} {"entry_id":"IMP-0012","timestamp":"2026-03-16T23:04:14.974407+00:00","experiment_name":"pead_midcap_step11_score60","hypothesis":"Combo base + higher score threshold 0.50->0.60. Filter weak signals","config_delta":{"base_experiment":"pead_midcap_combo_10pct_maxcand3","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230327_b5298036","trade_count":529,"profit_factor":0.9051644971123368,"total_return_pct":-2.850449875516715,"win_rate":0.499054820415879,"max_drawdown_pct":5.806253410597396,"sharpe_ratio":-0.3721590200001434,"monthly_win_rate":0.45714285714285713,"equity_curve_r_squared":0.28879703955671965},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230333_b5298036","trade_count":72,"profit_factor":1.9089335238197231,"total_return_pct":2.2525004674136144,"win_rate":0.625,"max_drawdown_pct":0.6530874475348815,"sharpe_ratio":2.9527896546854935,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6965943198525836},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230338_b5298036","trade_count":77,"profit_factor":1.0190825170597053,"total_return_pct":0.07685407145853969,"win_rate":0.5194805194805194,"max_drawdown_pct":0.8954589900133336,"sharpe_ratio":0.15103876740694316,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.001051223399886146}},"sqs_score":50.2,"sqs_breakdown":{"profitability":31.3,"risk":69.2,"consistency":74.1,"robustness":37.3},"verdict":"better","verdict_reasoning":"Test turns positive! +0.08%, PF>1.0, SQS 50.2. Score filter is effective","next_direction":"Combine score 0.60 + short hold for best result","tags":["pead","midcap","step11","score60"]} {"entry_id":"IMP-0013","timestamp":"2026-03-16T23:04:15.346697+00:00","experiment_name":"pead_midcap_step12_vol2x","hypothesis":"Combo base + volume threshold 2.0x (from 1.5x). Stronger conviction","config_delta":{"base_experiment":"pead_midcap_combo_10pct_maxcand3","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230347_534e7000","trade_count":525,"profit_factor":0.8908517859321168,"total_return_pct":-3.263530815059654,"win_rate":0.49714285714285716,"max_drawdown_pct":6.158693883828255,"sharpe_ratio":-0.4271081260405149,"monthly_win_rate":0.45714285714285713,"equity_curve_r_squared":0.3844589392112171},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230353_534e7000","trade_count":72,"profit_factor":1.9089335238197231,"total_return_pct":2.2525004674136144,"win_rate":0.625,"max_drawdown_pct":0.6530874475348815,"sharpe_ratio":2.9527896546854935,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6965943198525836},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230358_534e7000","trade_count":77,"profit_factor":1.018057074188992,"total_return_pct":0.07292559720991995,"win_rate":0.5194805194805194,"max_drawdown_pct":0.8904960176547445,"sharpe_ratio":0.1450757451336352,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.006128571981766798}},"sqs_score":50.2,"sqs_breakdown":{"profitability":31.2,"risk":69.1,"consistency":74.1,"robustness":37.6},"verdict":"better","verdict_reasoning":"Test +0.07%, similar to score60. Volume 2x also effective quality filter. Nearly identical result to step11","next_direction":"Combine score 0.60 + short hold + vol 2x","tags":["pead","midcap","step12","vol2x"]} {"entry_id":"IMP-0014","timestamp":"2026-03-16T23:05:05.412943+00:00","experiment_name":"pead_midcap_step13_best","hypothesis":"Best combo: 10% reaction + maxcand3 + score 0.60 + 7-day hold + vol 2.0x","config_delta":{"base_experiment":"pead_midcap_combo_10pct_maxcand3","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230443_15fa3807","trade_count":523,"profit_factor":0.9277895576563163,"total_return_pct":-2.1147577797892154,"win_rate":0.5066921606118547,"max_drawdown_pct":5.363056148167064,"sharpe_ratio":-0.27517043819279563,"monthly_win_rate":0.4857142857142857,"equity_curve_r_squared":0.19731788832163766},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230448_15fa3807","trade_count":70,"profit_factor":1.6081573944406065,"total_return_pct":1.5626791854819602,"win_rate":0.5857142857142857,"max_drawdown_pct":0.6539417061012387,"sharpe_ratio":2.2442047142281463,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6019214395233538},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260316230454_15fa3807","trade_count":75,"profit_factor":1.1182776518630022,"total_return_pct":0.4293895929202554,"win_rate":0.5466666666666666,"max_drawdown_pct":0.8801478276052886,"sharpe_ratio":0.7812081874914202,"monthly_win_rate":1.0,"equity_curve_r_squared":0.08086932876015243}},"sqs_score":57.7,"sqs_breakdown":{"profitability":37.6,"risk":79.7,"consistency":82.8,"robustness":41.2},"verdict":"better","verdict_reasoning":"NEW BEST! Test +0.43%, SQS 57.7. First clearly positive OOS result. Consistency 82.8 (best ever)","next_direction":"Explore fine-tuning: score 0.65, or combine with original step3 7pct threshold for more trades","tags":["pead","midcap","step13","best"]} {"entry_id":"IMP-0015","timestamp":"2026-03-17T02:16:29.511903+00:00","experiment_name":"pead_midcap_step14_score65","hypothesis":"Higher score threshold 0.65 filters for stronger PEAD signals, improving WR and PF","config_delta":{"base_experiment":"pead_midcap_step13_best","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317020837_45dfcf5d","trade_count":513,"profit_factor":0.9330034935848248,"total_return_pct":-1.9162420951407404,"win_rate":0.5087719298245614,"max_drawdown_pct":4.806826210534917,"sharpe_ratio":-0.2519747350079355,"monthly_win_rate":0.45714285714285713,"equity_curve_r_squared":0.1816099118661623},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021038_45dfcf5d","trade_count":66,"profit_factor":1.3965047202887975,"total_return_pct":1.0156494476850202,"win_rate":0.5606060606060606,"max_drawdown_pct":0.6560660596828557,"sharpe_ratio":1.5832382440205535,"monthly_win_rate":0.75,"equity_curve_r_squared":0.5472739451051728},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021240_45dfcf5d","trade_count":72,"profit_factor":1.2192504658724292,"total_return_pct":0.7284410148207681,"win_rate":0.5694444444444444,"max_drawdown_pct":0.8797326864948225,"sharpe_ratio":1.3410575857129192,"monthly_win_rate":1.0,"equity_curve_r_squared":0.20418254692529553}},"sqs_score":64.2,"sqs_breakdown":{"profitability":43.9,"risk":89.0,"consistency":86.6,"robustness":47.2},"verdict":"better","verdict_reasoning":"Test SQS 64.2 > 57.7 (step13). Return +0.73% > +0.43%. Score filter continues to be the most effective lever. Trade count 72 still sufficient.","next_direction":"Use as new base for Phase B exit optimization","tags":["pead","midcap","step14","score65"]} {"entry_id":"IMP-0016","timestamp":"2026-03-17T02:16:34.131542+00:00","experiment_name":"pead_midcap_step15_react7","hypothesis":"Lower reaction threshold 0.07 widens funnel for more trades and statistical significance","config_delta":{"base_experiment":"pead_midcap_step13_best","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021302_84f50bec","trade_count":628,"profit_factor":0.8880804531017018,"total_return_pct":-4.025803281272252,"win_rate":0.5127388535031847,"max_drawdown_pct":5.920220358574264,"sharpe_ratio":-0.4789738641324651,"monthly_win_rate":0.4473684210526316,"equity_curve_r_squared":0.5590772121494917},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021308_84f50bec","trade_count":84,"profit_factor":1.8949702222034897,"total_return_pct":2.6109835614154147,"win_rate":0.6190476190476191,"max_drawdown_pct":0.9498747174984115,"sharpe_ratio":3.486940708619626,"monthly_win_rate":0.75,"equity_curve_r_squared":0.5520524518827523},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021314_84f50bec","trade_count":91,"profit_factor":0.9429428813222424,"total_return_pct":-0.2583590451609634,"win_rate":0.5494505494505495,"max_drawdown_pct":1.5948632659956048,"sharpe_ratio":-0.4757579191663637,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.5116157273037042}},"sqs_score":51.7,"sqs_breakdown":{"profitability":26.1,"risk":55.4,"consistency":79.1,"robustness":77.0},"verdict":"worse","verdict_reasoning":"Test SQS 51.7 < 57.7. Return -0.26% negative. More trades (91) but quality dropped. Wider funnel added noise.","next_direction":"Lowering reaction threshold not effective without compensating quality filter","tags":["pead","midcap","step15","react7"]} {"entry_id":"IMP-0017","timestamp":"2026-03-17T02:16:52.056303+00:00","experiment_name":"pead_midcap_step16_react7_score65","hypothesis":"Combine wider funnel (react 0.07) with stricter quality gate (score 0.65) for best of both","config_delta":{"base_experiment":"pead_midcap_step13_best","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021323_5ffc5d22","trade_count":613,"profit_factor":0.8978576295267423,"total_return_pct":-3.5846850918965063,"win_rate":0.5138662316476346,"max_drawdown_pct":5.32752847925319,"sharpe_ratio":-0.429214740253919,"monthly_win_rate":0.4473684210526316,"equity_curve_r_squared":0.6021795418809431},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021329_5ffc5d22","trade_count":83,"profit_factor":2.0144135190573675,"total_return_pct":2.7839796082119577,"win_rate":0.6265060240963856,"max_drawdown_pct":0.7815696983079155,"sharpe_ratio":3.7031973701157277,"monthly_win_rate":0.75,"equity_curve_r_squared":0.6307575259856522},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021335_5ffc5d22","trade_count":89,"profit_factor":0.9701741019713591,"total_return_pct":-0.12615119218212204,"win_rate":0.5617977528089888,"max_drawdown_pct":1.5543376309462142,"sharpe_ratio":-0.2273584908824299,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.4506121283479019}},"sqs_score":53.2,"sqs_breakdown":{"profitability":28.0,"risk":59.8,"consistency":81.1,"robustness":72.1},"verdict":"worse","verdict_reasoning":"Test SQS 53.2 < 57.7. Return -0.13% negative. Valid SQS 92.7 was excellent but didn't transfer to OOS. Overfitting risk.","next_direction":"Combination of wider funnel + higher score did not help OOS","tags":["pead","midcap","step16","react7","score65"]} {"entry_id":"IMP-0018","timestamp":"2026-03-17T02:16:52.415056+00:00","experiment_name":"pead_midcap_step17_target2","hypothesis":"Wider target (ATR 2.0) improves R:R ratio from 3:1.5 to 3:2 with step14 stronger signals","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021423_323a5b5e","trade_count":470,"profit_factor":0.9520470746330688,"total_return_pct":-1.3594521214714332,"win_rate":0.4702127659574468,"max_drawdown_pct":4.642828380427953,"sharpe_ratio":-0.17199413327760185,"monthly_win_rate":0.4857142857142857,"equity_curve_r_squared":0.0555160147865378},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021429_323a5b5e","trade_count":59,"profit_factor":1.3782504917267295,"total_return_pct":0.9689947279659247,"win_rate":0.5084745762711864,"max_drawdown_pct":0.7074931393576637,"sharpe_ratio":1.4547676904551556,"monthly_win_rate":0.75,"equity_curve_r_squared":0.5050319501387333},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021434_323a5b5e","trade_count":66,"profit_factor":1.1771413380479396,"total_return_pct":0.5891346601967962,"win_rate":0.5303030303030303,"max_drawdown_pct":0.8393581435568818,"sharpe_ratio":1.0752287681773998,"monthly_win_rate":1.0,"equity_curve_r_squared":0.11485286243962597}},"sqs_score":59.4,"sqs_breakdown":{"profitability":41.2,"risk":84.6,"consistency":80.1,"robustness":38.3},"verdict":"worse","verdict_reasoning":"Test SQS 59.4 < 64.2. Return +0.59% < +0.73%. Wider target reduced trade count (66 vs 72) without improving win rate. R:R improvement not impactful.","next_direction":"Target tuning not effective for PEAD","tags":["pead","midcap","step17","target2"]} {"entry_id":"IMP-0019","timestamp":"2026-03-17T02:17:01.474375+00:00","experiment_name":"pead_midcap_step18_nofrac","hypothesis":"Full exit at target (fraction 1.0) prevents trailing stop from eating profits on partial positions","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021443_be3d5bde","trade_count":437,"profit_factor":0.9549362257822231,"total_return_pct":-1.303548314107451,"win_rate":0.42105263157894735,"max_drawdown_pct":4.52621951607018,"sharpe_ratio":-0.16411744461886982,"monthly_win_rate":0.5142857142857142,"equity_curve_r_squared":0.048794422109098394},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021450_be3d5bde","trade_count":55,"profit_factor":1.4603949049610698,"total_return_pct":1.180333505141476,"win_rate":0.4727272727272727,"max_drawdown_pct":0.624348249096465,"sharpe_ratio":1.8572252886649268,"monthly_win_rate":0.75,"equity_curve_r_squared":0.602794881326535},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021455_be3d5bde","trade_count":64,"profit_factor":1.233557927923508,"total_return_pct":0.7760032481101371,"win_rate":0.515625,"max_drawdown_pct":0.8900540815144506,"sharpe_ratio":1.4353513823455328,"monthly_win_rate":1.0,"equity_curve_r_squared":0.2803203771052179}},"sqs_score":63.2,"sqs_breakdown":{"profitability":44.8,"risk":90.6,"consistency":77.6,"robustness":47.5},"verdict":"neutral","verdict_reasoning":"Test SQS 63.2 vs 64.2. Return +0.78% slightly better than +0.73%. Within noise. Fewer trades (64 vs 72). Marginal effect.","next_direction":"Nofrac marginal positive on return but not SQS","tags":["pead","midcap","step18","nofrac"]} {"entry_id":"IMP-0020","timestamp":"2026-03-17T02:17:01.827556+00:00","experiment_name":"pead_midcap_step19_hold5","hypothesis":"Shorter 5d hold reduces exposure since avg hold is 3.28d. Less time for reversals.","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021504_27a63cc2","trade_count":513,"profit_factor":0.9321637680892956,"total_return_pct":-1.9498490194724147,"win_rate":0.49902534113060426,"max_drawdown_pct":5.109402635025258,"sharpe_ratio":-0.2558888083394153,"monthly_win_rate":0.4857142857142857,"equity_curve_r_squared":0.2741765876459641},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021510_27a63cc2","trade_count":68,"profit_factor":1.5486357888297084,"total_return_pct":1.4116877933366923,"win_rate":0.5735294117647058,"max_drawdown_pct":0.6559648601902311,"sharpe_ratio":2.211147627502439,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6062916819268495},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021516_27a63cc2","trade_count":72,"profit_factor":1.2003700113675047,"total_return_pct":0.6659802746770583,"win_rate":0.5694444444444444,"max_drawdown_pct":0.8797326864948225,"sharpe_ratio":1.2282104833801621,"monthly_win_rate":1.0,"equity_curve_r_squared":0.16598640737563777}},"sqs_score":62.9,"sqs_breakdown":{"profitability":42.7,"risk":87.1,"consistency":86.6,"robustness":44.8},"verdict":"neutral","verdict_reasoning":"Test SQS 62.9 vs 64.2. Return +0.67% vs +0.73%. Valid SQS 77.4 was strong. Similar trade count (72). Marginal effect.","next_direction":"Hold5d marginal positive on valid but neutral on test","tags":["pead","midcap","step19","hold5"]} {"entry_id":"IMP-0021","timestamp":"2026-03-17T02:17:02.185037+00:00","experiment_name":"pead_midcap_step20_best3","hypothesis":"Combine all marginally positive changes: score 0.65 + nofrac 1.0 + hold 5d","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021559_27d04e9f","trade_count":441,"profit_factor":0.967683028533835,"total_return_pct":-0.9321417326055089,"win_rate":0.41950113378684806,"max_drawdown_pct":4.355001847653457,"sharpe_ratio":-0.11372635609251765,"monthly_win_rate":0.5142857142857142,"equity_curve_r_squared":0.038072957614376554},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021605_27d04e9f","trade_count":56,"profit_factor":1.6107426395301327,"total_return_pct":1.5733831641505238,"win_rate":0.48214285714285715,"max_drawdown_pct":0.628137470729625,"sharpe_ratio":2.475989818011853,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6343682913335291},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317021610_27d04e9f","trade_count":64,"profit_factor":1.2154843477872561,"total_return_pct":0.7161940318976412,"win_rate":0.515625,"max_drawdown_pct":0.8900540815144506,"sharpe_ratio":1.3247288791439433,"monthly_win_rate":1.0,"equity_curve_r_squared":0.24515410354772538}},"sqs_score":62.0,"sqs_breakdown":{"profitability":43.6,"risk":88.7,"consistency":77.6,"robustness":45.3},"verdict":"neutral","verdict_reasoning":"Test SQS 62.0 < 64.2. Return +0.72% similar to +0.73%. Combo did not beat step14 alone. Over-optimization reduces robustness.","next_direction":"Step14 (score 0.65) remains the best. Simple is better.","tags":["pead","midcap","step20","best3"]} {"entry_id":"IMP-0022","timestamp":"2026-03-17T06:59:07.766076+00:00","experiment_name":"pead_midcap_portfolio_v2","hypothesis":"Split step14 into specialist sleeves by timing and direction with same-day long reaction-close and after-close short in shadow.","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317064012_7e0c28d8","trade_count":70,"profit_factor":1.0823586029850167,"total_return_pct":0.28994018403757943,"win_rate":0.5142857142857142,"max_drawdown_pct":1.7544248374390794,"sharpe_ratio":0.4840289893207606,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.06048799253372119}},"sqs_score":52.0,"sqs_breakdown":{"profitability":35.3,"risk":70.5,"consistency":73.2,"robustness":37.1},"verdict":"worse","verdict_reasoning":"Test-only run underperformed badly versus step14: SQS 52.0 vs 64.2 and return +0.29% vs +0.73%. The split introduced too much portfolio distortion.","next_direction":"Keep the profitable buckets from step14 but test narrower sleeve overrides instead of full portfolio decomposition.","tags":["pead","midcap","portfolio","v2"]} {"entry_id":"IMP-0023","timestamp":"2026-03-17T06:59:08.123617+00:00","experiment_name":"pead_midcap_step23_sdlong_close7","hypothesis":"Keep the positive step14 sleeves, switch same-day longs to reaction-close, and remove after-close shorts.","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065129_8b4cc460","trade_count":69,"profit_factor":1.1334708809037874,"total_return_pct":0.4719010862756259,"win_rate":0.5362318840579711,"max_drawdown_pct":1.419114371849651,"sharpe_ratio":0.7440066482222032,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.02271091721470062}},"sqs_score":55.1,"sqs_breakdown":{"profitability":38.6,"risk":76.7,"consistency":76.9,"robustness":34.2},"verdict":"worse","verdict_reasoning":"Test-only run improved over the broad V2 idea but still missed step14: SQS 55.1 and return +0.47%. Same-day long close-entry alone was not enough.","next_direction":"Reduce the same-day long sleeve instead of funding it at full size.","tags":["pead","midcap","step23","sdlong","close7"]} {"entry_id":"IMP-0024","timestamp":"2026-03-17T06:59:08.507830+00:00","experiment_name":"pead_midcap_step27_sdlong_close7_budget25","hypothesis":"Keep same-day long reaction-close but cap it to a smaller 25% daily risk sleeve to reduce crowding.","config_delta":{"base_experiment":"pead_midcap_step23_sdlong_close7","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065422_ab277961","trade_count":68,"profit_factor":1.1707262231202136,"total_return_pct":0.5844127796271495,"win_rate":0.5441176470588235,"max_drawdown_pct":1.306567610162907,"sharpe_ratio":0.9376525375900492,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.10433971673279621}},"sqs_score":57.9,"sqs_breakdown":{"profitability":40.9,"risk":80.6,"consistency":78.2,"robustness":38.7},"verdict":"better","verdict_reasoning":"Test-only run materially improved over step23: SQS 57.9 vs 55.1 and return +0.58% vs +0.47%, confirming the crowding hypothesis.","next_direction":"Combine sleeve budgeting with full target exits and reintroduce a small after-close short sleeve for trade-count support.","tags":["pead","midcap","step27","sdlong","close7","budget25"]} {"entry_id":"IMP-0025","timestamp":"2026-03-17T06:59:08.875770+00:00","experiment_name":"pead_midcap_step30_balanced_sleeves_nofrac","hypothesis":"Use balanced sleeve budgets: keep same-day shorts and after-close longs fully funded, run same-day long close-entry and after-close shorts as small sleeves, and exit fully at target.","config_delta":{"base_experiment":"pead_midcap_step14_score65","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065531_18195bf4","trade_count":67,"profit_factor":1.4091528424597795,"total_return_pct":1.3757295850866649,"win_rate":0.5373134328358209,"max_drawdown_pct":0.8128025480297582,"sharpe_ratio":2.8484960542107354,"monthly_win_rate":1.0,"equity_curve_r_squared":0.7324107850180904}},"sqs_score":75.2,"sqs_breakdown":{"profitability":56.0,"risk":100.0,"consistency":81.2,"robustness":77.4},"verdict":"better","verdict_reasoning":"Test-only run broke through step14 decisively: SQS 75.2 vs 64.2 and return +1.38% vs +0.73%. A small after-close short sleeve helped robustness without dominating risk.","next_direction":"Tighten the after-close short sleeve further and validate the best variant across all splits.","tags":["pead","midcap","step30","balanced","sleeves","nofrac"]} {"entry_id":"IMP-0026","timestamp":"2026-03-17T06:59:09.255218+00:00","experiment_name":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","hypothesis":"Shrink the after-close short sleeve again while keeping the rest of the balanced step30 structure intact.","config_delta":{"base_experiment":"pead_midcap_step30_balanced_sleeves_nofrac","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065814_ca861015","trade_count":64,"profit_factor":1.4929664814770336,"total_return_pct":1.5563811867822805,"win_rate":0.546875,"max_drawdown_pct":0.6813257982524192,"sharpe_ratio":3.235108878683093,"monthly_win_rate":1.0,"equity_curve_r_squared":0.8144638886979153},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065750_ca861015","trade_count":426,"profit_factor":1.0908713237524914,"total_return_pct":2.45066812206927,"win_rate":0.45539906103286387,"max_drawdown_pct":2.6845497224397294,"sharpe_ratio":0.3357364835430949,"monthly_win_rate":0.5142857142857142,"equity_curve_r_squared":0.6011932815228401},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065810_ca861015","trade_count":58,"profit_factor":1.37572962559925,"total_return_pct":1.122807593766629,"win_rate":0.5172413793103449,"max_drawdown_pct":0.8884863869932943,"sharpe_ratio":1.8162493466149443,"monthly_win_rate":0.75,"equity_curve_r_squared":0.3292893146712864}},"sqs_score":77.9,"sqs_breakdown":{"profitability":60.9,"risk":100.0,"consistency":82.8,"robustness":80.0},"verdict":"better","verdict_reasoning":"New best. Train/valid/test all held up, with test SQS 77.9, return +1.56%, PF 1.66, Sharpe 2.39, and max drawdown 0.32%. This beat both step30 and step14 by a wide margin.","next_direction":"Use step31 as the new base and only explore very local refinements around sleeve weights or execution if further gains are needed.","tags":["pead","midcap","step31","balanced","sleeves","nofrac","acshort12"]} {"entry_id":"IMP-0027","timestamp":"2026-03-17T06:59:09.622681+00:00","experiment_name":"pead_midcap_step33_balanced_sleeves_nofrac_acshort6","hypothesis":"Cut the after-close short sleeve even further to see if the balanced portfolio still benefits from the bucket at very low size.","config_delta":{"base_experiment":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317065700_765096af","trade_count":48,"profit_factor":1.4726487821009215,"total_return_pct":1.2304910166146,"win_rate":0.5208333333333334,"max_drawdown_pct":0.7081594843000599,"sharpe_ratio":2.3026797742321596,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.7956775968800425}},"sqs_score":73.9,"sqs_breakdown":{"profitability":58.6,"risk":100.0,"consistency":74.3,"robustness":70.8},"verdict":"worse","verdict_reasoning":"Test-only run stayed strong but slipped versus step31: SQS 73.9 vs 77.9 and return +1.23% vs +1.56%. The smaller sleeve gave up too much trade-count support.","next_direction":"Keep the 12.5% after-close short sleeve from step31.","tags":["pead","midcap","step33","balanced","sleeves","nofrac","acshort6"]} {"entry_id":"IMP-0028","timestamp":"2026-03-17T07:05:41.969503+00:00","experiment_name":"pead_midcap_step34_balanced_sleeves_nofrac_aclong25","hypothesis":"Cap the after-close long sleeve to two trades per day so only the best-ranked overnight continuation names survive.","config_delta":{"base_experiment":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317070326_6bef3bf5","trade_count":62,"profit_factor":1.6229787581193362,"total_return_pct":1.809973740790665,"win_rate":0.5645161290322581,"max_drawdown_pct":0.5514994557958487,"sharpe_ratio":3.784062042365747,"monthly_win_rate":1.0,"equity_curve_r_squared":0.8527995261422007},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317070447_6bef3bf5","trade_count":57,"profit_factor":1.2977962107392036,"total_return_pct":0.888003662238436,"win_rate":0.5087719298245614,"max_drawdown_pct":0.884279658549619,"sharpe_ratio":1.43172550959332,"monthly_win_rate":0.75,"equity_curve_r_squared":0.26161939040716076}},"sqs_score":81.3,"sqs_breakdown":{"profitability":68.4,"risk":100.0,"consistency":85.8,"robustness":78.9},"verdict":"worse","verdict_reasoning":"Test improved to SQS 81.3 and +1.81% return, but valid slipped to SQS 63.7 and +0.89% versus step31 valid SQS 68.2 and +1.12%. The top-two cap on after-close longs was not robust across splits.","next_direction":"Keep step31 as the robust base. If after-close long needs filtering, prefer a quality gate rather than a blunt daily-cap reduction.","tags":["pead","midcap","step34","balanced","sleeves","nofrac","aclong25"]} {"entry_id":"IMP-0029","timestamp":"2026-03-17T07:05:47.363036+00:00","experiment_name":"pead_midcap_step35_balanced_sleeves_nofrac_aclong12","hypothesis":"Cap the after-close long sleeve to one trade per day so the portfolio fully leans into the strongest overnight continuation name only.","config_delta":{"base_experiment":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081806944455_48768969","trade_count":56,"profit_factor":2.009368125746884,"total_return_pct":2.181331690538893,"win_rate":0.6071428571428571,"max_drawdown_pct":0.4424438123900949,"sharpe_ratio":4.216651506745797,"monthly_win_rate":1.0,"equity_curve_r_squared":0.8888944531705611,"avg_gross_exposure_pct":6.227596335660352,"avg_net_exposure_pct":1.1262657538133194,"days_in_market_pct":76.59574468085107},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081817695254_48768969","trade_count":53,"profit_factor":1.2430238868359724,"total_return_pct":0.7082451550234983,"win_rate":0.5094339622641509,"max_drawdown_pct":0.8845604127450726,"sharpe_ratio":1.1796633240683954,"monthly_win_rate":0.75,"equity_curve_r_squared":0.14646025414461133,"avg_gross_exposure_pct":7.5108896612986165,"avg_net_exposure_pct":1.5673421201773916,"days_in_market_pct":77.19298245614034},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317070358_01aa6342","trade_count":393,"profit_factor":1.1135008933147288,"total_return_pct":2.755962139586409,"win_rate":0.46055979643765904,"max_drawdown_pct":2.418955602136075,"sharpe_ratio":0.38778263039611355,"monthly_win_rate":0.4857142857142857,"equity_curve_r_squared":0.6345243468091162}},"sqs_score":90.4,"sqs_breakdown":{"profitability":88.7,"risk":100.0,"consistency":92.9,"robustness":75.6},"verdict":"worse","verdict_reasoning":"This became a new test-only high water mark at SQS 90.4 and +2.18%, but valid deteriorated to SQS 59.8 and +0.71%, materially below step31. The tighter top-one cap overfit to the test window.","next_direction":"Avoid promoting step35. Explore engine-specific quality filters for after-close longs instead of hard caps that reshuffle trade selection too aggressively.","tags":["pead","midcap","step35","balanced","sleeves","nofrac","aclong12"],"sqs_v2_score":90.1,"sqs_v2_breakdown":{"profitability":88.7,"risk":100.0,"consistency":92.9,"robustness":75.6,"capital_efficiency":79.0}} {"entry_id":"IMP-0030","timestamp":"2026-03-17T07:05:52.980782+00:00","experiment_name":"pead_midcap_step36_balanced_sleeves_nofrac_aclong12_sdlong12","hypothesis":"Keep only one same-day long close trade per day alongside the top-one after-close long sleeve, concentrating the portfolio into the single best long continuation setups.","config_delta":{"base_experiment":"pead_midcap_step35_balanced_sleeves_nofrac_aclong12","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317070326_18804e7c","trade_count":54,"profit_factor":2.061648751658133,"total_return_pct":2.1478646359501146,"win_rate":0.6111111111111112,"max_drawdown_pct":0.3579823467213594,"sharpe_ratio":4.4957307480895325,"monthly_win_rate":1.0,"equity_curve_r_squared":0.9122676472502861}},"sqs_score":90.3,"sqs_breakdown":{"profitability":88.6,"risk":100.0,"consistency":93.5,"robustness":74.4},"verdict":"worse","verdict_reasoning":"Test stayed extremely strong at SQS 90.3 and +2.15%, but it did not exceed step35 on test and reduced trade support further. Without valid/train confirmation, it is not a better promotion candidate than step31.","next_direction":"Keep the same-day long sleeve at two trades per day if using this family, and focus next on smarter after-close long quality filtering.","tags":["pead","midcap","step36","balanced","sleeves","nofrac","aclong12","sdlong12"]} {"entry_id":"IMP-0031","timestamp":"2026-03-17T07:11:20.119143+00:00","experiment_name":"pead_midcap_step37_balanced_sleeves_aclong_vol3","hypothesis":"Require stronger volume confirmation for after-close long signals only, while leaving the rest of the step31 sleeve mix unchanged.","config_delta":{"base_experiment":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071110746395_1ae4b33a","trade_count":63,"profit_factor":1.377310183342628,"total_return_pct":1.1862161229211343,"win_rate":0.5396825396825397,"max_drawdown_pct":0.8243191281564817,"sharpe_ratio":2.4626680484273273,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6885324256339993},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071110780542_1ae4b33a","trade_count":57,"profit_factor":1.375336580561267,"total_return_pct":1.1216330418461293,"win_rate":0.5087719298245614,"max_drawdown_pct":0.8896384382974281,"sharpe_ratio":1.7701058914354275,"monthly_win_rate":0.75,"equity_curve_r_squared":0.3302488231788083}},"sqs_score":73.6,"sqs_breakdown":{"profitability":53.6,"risk":100.0,"consistency":81.6,"robustness":72.5},"verdict":"worse","verdict_reasoning":"Engine-specific volume gating on after-close longs did not help. Test fell to SQS 73.6 and valid to 67.6, both below the step31 base. The extra volume filter removed too much breadth without improving robustness.","next_direction":"Do not tighten after-close long volume gates further. Keep after-close long breadth and search elsewhere if more robustness is needed.","tags":["pead","midcap","step37","balanced","sleeves","aclong","vol3"]} {"entry_id":"IMP-0032","timestamp":"2026-03-17T07:11:26.965107+00:00","experiment_name":"pead_midcap_step38_balanced_sleeves_aclong_vol4","hypothesis":"Push the after-close long sleeve to an even stricter volume gate so only the highest-conviction overnight reactions remain.","config_delta":{"base_experiment":"pead_midcap_step37_balanced_sleeves_aclong_vol3","changes":{}},"results":{"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071110780988_d9020d34","trade_count":61,"profit_factor":1.1204890397898135,"total_return_pct":0.388000418802214,"win_rate":0.5081967213114754,"max_drawdown_pct":0.9399793760032171,"sharpe_ratio":0.8136845994700913,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.043822307069783864},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071110695904_d9020d34","trade_count":53,"profit_factor":1.2930052787721988,"total_return_pct":0.8333477612284769,"win_rate":0.5283018867924528,"max_drawdown_pct":0.8783421675410786,"sharpe_ratio":1.4376847128011023,"monthly_win_rate":0.75,"equity_curve_r_squared":0.19294412573010883}},"sqs_score":54.2,"sqs_breakdown":{"profitability":37.6,"risk":80.2,"consistency":72.2,"robustness":31.1},"verdict":"worse","verdict_reasoning":"The stricter after-close long filter clearly broke the portfolio. Test dropped to SQS 54.2 and valid to 63.2, confirming that this sleeve cannot be improved by simply tightening volume thresholds.","next_direction":"Abandon the after-close long volume-threshold path. If that sleeve is revisited, it needs a different filter than raw PEAD volume.","tags":["pead","midcap","step38","balanced","sleeves","aclong","vol4"]} {"entry_id":"IMP-0033","timestamp":"2026-03-17T07:11:34.247400+00:00","experiment_name":"pead_midcap_step39_balanced_sleeves_sdlong12","hypothesis":"Keep the robust step31 structure intact and only cap same-day long close entries to one trade per day, trimming the weakest same-day long names without touching after-close longs.","config_delta":{"base_experiment":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071045883427_aa091287","trade_count":53,"profit_factor":1.3838842470402677,"total_return_pct":1.0111821812581183,"win_rate":0.5094339622641509,"max_drawdown_pct":0.8840772162266693,"sharpe_ratio":1.7379492731088386,"monthly_win_rate":0.75,"equity_curve_r_squared":0.2907004952665152},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071045888044_aa091287","trade_count":62,"profit_factor":1.5016295541562696,"total_return_pct":1.5150882212722936,"win_rate":0.5483870967741935,"max_drawdown_pct":0.5454456407735768,"sharpe_ratio":3.3681033592846275,"monthly_win_rate":1.0,"equity_curve_r_squared":0.8586769561427715}},"sqs_score":77.9,"sqs_breakdown":{"profitability":61.1,"risk":100.0,"consistency":83.1,"robustness":78.9},"verdict":"worse","verdict_reasoning":"This preserved test strength at SQS 77.9 and +1.52%, but valid fell to SQS 66.8 and +1.01% versus step31 valid SQS 68.2 and +1.12%. Reducing same-day long breadth did not produce a robust improvement.","next_direction":"Keep the same-day long sleeve at two trades per day inside step31. The current robust champion remains unchanged.","tags":["pead","midcap","step39","balanced","sleeves","sdlong12"]} {"entry_id":"IMP-0034","timestamp":"2026-03-17T07:20:29.978668+00:00","experiment_name":"pead_midcap_step42_short_core_only","hypothesis":"Test whether the portfolio should become a pure short engine by removing the same-day long overlay entirely.","config_delta":{"base_experiment":"pead_midcap_step40_short_core_sdlong12","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071756406525_914047c4","trade_count":31,"profit_factor":2.549217811707667,"total_return_pct":1.193718767675222,"win_rate":0.5806451612903226,"max_drawdown_pct":0.5448919617489582,"sharpe_ratio":2.752802585098115,"monthly_win_rate":0.75,"equity_curve_r_squared":0.41739788897817576},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071756496030_914047c4","trade_count":46,"profit_factor":1.4446704886262167,"total_return_pct":0.7775531748585345,"win_rate":0.6304347826086957,"max_drawdown_pct":1.2423515817014616,"sharpe_ratio":1.1740322533878838,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.1540289094091857}},"sqs_score":66.3,"sqs_breakdown":{"profitability":55.3,"risk":84.9,"consistency":92.6,"robustness":29.6},"verdict":"worse","verdict_reasoning":"Pure shorts produced a strong valid SQS 82.3 but test collapsed to 66.3 with only +0.78% return. The small same-day long overlay is still needed for out-of-sample balance.","next_direction":"Keep a non-zero same-day long close sleeve in the short-core family.","tags":["pead","midcap","step42","short","core","only"]} {"entry_id":"IMP-0035","timestamp":"2026-03-17T07:20:29.978594+00:00","experiment_name":"pead_midcap_step41_short_core_sdlong12_acshort50","hypothesis":"Lean harder into the after-close short sleeve inside the new short-core portfolio.","config_delta":{"base_experiment":"pead_midcap_step40_short_core_sdlong12","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071756232509_4c9fd4ce","trade_count":40,"profit_factor":1.483920817012022,"total_return_pct":0.8662763872782817,"win_rate":0.55,"max_drawdown_pct":0.6476993822793542,"sharpe_ratio":1.8482432920991685,"monthly_win_rate":0.75,"equity_curve_r_squared":0.19435203451054603},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071756491852_4c9fd4ce","trade_count":59,"profit_factor":1.5287187084320328,"total_return_pct":1.231827071365813,"win_rate":0.559322033898305,"max_drawdown_pct":1.2759660172387226,"sharpe_ratio":1.6310365384096348,"monthly_win_rate":1.0,"equity_curve_r_squared":0.4227182249282274}},"sqs_score":72.6,"sqs_breakdown":{"profitability":61.4,"risk":92.3,"consistency":84.9,"robustness":53.6},"verdict":"worse","verdict_reasoning":"Increasing after-close short capacity weakened the portfolio: test dropped from SQS 82.1 to 72.6 and valid stayed flat at 68.4. The short core benefits from the bucket, but not at this larger size.","next_direction":"Keep the after-close short sleeve at 25% inside the short-core family.","tags":["pead","midcap","step41","short","core","sdlong12","acshort50"]} {"entry_id":"IMP-0036","timestamp":"2026-03-17T07:20:29.978670+00:00","experiment_name":"pead_midcap_step43_short_core_sdlong25","hypothesis":"Restore a larger same-day long close sleeve after removing after-close longs, to see if breadth improves the short-core portfolio.","config_delta":{"base_experiment":"pead_midcap_step40_short_core_sdlong12","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071957079395_9046f612","trade_count":45,"profit_factor":1.4604102163883825,"total_return_pct":0.9859009158709378,"win_rate":0.5555555555555556,"max_drawdown_pct":0.6469365320312458,"sharpe_ratio":1.9269062309154923,"monthly_win_rate":0.75,"equity_curve_r_squared":0.2568675902061873},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071957079892_9046f612","trade_count":58,"profit_factor":1.6628306811204845,"total_return_pct":1.4636686220428092,"win_rate":0.5689655172413793,"max_drawdown_pct":1.2630043081731899,"sharpe_ratio":2.0112049109753753,"monthly_win_rate":1.0,"equity_curve_r_squared":0.57291038217223}},"sqs_score":78.9,"sqs_breakdown":{"profitability":69.0,"risk":98.5,"consistency":86.5,"robustness":62.5},"verdict":"worse","verdict_reasoning":"Restoring more same-day long breadth weakened both splits versus step40: valid moved from SQS 68.4 to 69.7 but test fell from 82.1 to 78.9 and profitability dropped. The smaller 12.5% sleeve remains the better balance.","next_direction":"Keep the same-day long overlay small inside step40.","tags":["pead","midcap","step43","short","core","sdlong25"]} {"entry_id":"IMP-0037","timestamp":"2026-03-17T07:20:29.978842+00:00","experiment_name":"pead_midcap_step40_short_core_sdlong12","hypothesis":"Drop the unstable after-close long sleeve and reallocate the portfolio to same-day shorts, after-close shorts, and a small same-day close-entry long overlay.","config_delta":{"base_experiment":"pead_midcap_step31_balanced_sleeves_nofrac_acshort12","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071756453145_9eb08c8d","trade_count":40,"profit_factor":1.483920817012022,"total_return_pct":0.8662763872782817,"win_rate":0.55,"max_drawdown_pct":0.6476993822793542,"sharpe_ratio":1.8482432920991685,"monthly_win_rate":0.75,"equity_curve_r_squared":0.19435203451054603},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071756505329_9eb08c8d","trade_count":55,"profit_factor":1.7695290624299977,"total_return_pct":1.52020169384827,"win_rate":0.5818181818181818,"max_drawdown_pct":1.128135882565315,"sharpe_ratio":2.2087400904317267,"monthly_win_rate":1.0,"equity_curve_r_squared":0.632820774620957},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317071814970965_9eb08c8d","trade_count":306,"profit_factor":1.2169887676968005,"total_return_pct":3.708684730821959,"win_rate":0.4869281045751634,"max_drawdown_pct":2.5507043144769854,"sharpe_ratio":0.5720232080317771,"monthly_win_rate":0.625,"equity_curve_r_squared":0.39497202444939644}},"sqs_score":82.1,"sqs_breakdown":{"profitability":74.6,"risk":99.3,"consistency":88.6,"robustness":64.6},"verdict":"better","verdict_reasoning":"New robust leader. Train improved from SQS 55.5 to 63.1 and return +2.45% to +3.71%. Valid edged up from SQS 68.2 to 68.4 with lower drawdown, and test improved from SQS 77.9 to 82.1 with PF 1.77. Removing after-close longs fixed the biggest unstable sleeve without giving up the same-day long upside.","next_direction":"Use step40 as the new base. Only explore local refinements around the short-core structure if needed.","tags":["pead","midcap","step40","short","core","sdlong12"]} {"entry_id":"IMP-0038","timestamp":"2026-03-17T07:54:25.486815+00:00","experiment_name":"pead_midcap_step44_short_core_macro50","hypothesis":"Scaling entries down in weak macro regimes will keep the short-core structure while cutting drawdowns.","config_delta":{"base_experiment":"pead_midcap_step40_short_core_sdlong12","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081817694940_42f8ea0e","trade_count":40,"profit_factor":1.7786229517773076,"total_return_pct":1.0842382260887244,"win_rate":0.55,"max_drawdown_pct":0.4065245518278289,"sharpe_ratio":2.4891782517624543,"monthly_win_rate":0.75,"equity_curve_r_squared":0.34564834918762316,"avg_gross_exposure_pct":4.823763728554508,"avg_net_exposure_pct":-1.952624774981557,"days_in_market_pct":73.68421052631578},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081807057141_42f8ea0e","trade_count":58,"profit_factor":2.0052763103391356,"total_return_pct":1.2986802302195721,"win_rate":0.5689655172413793,"max_drawdown_pct":0.7045335236824514,"sharpe_ratio":2.6217356101467053,"monthly_win_rate":1.0,"equity_curve_r_squared":0.7991432493330419,"avg_gross_exposure_pct":4.453478837236966,"avg_net_exposure_pct":-1.5519032472252936,"days_in_market_pct":72.3404255319149},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073555963588_9c3139ba","trade_count":307,"profit_factor":1.2319887960741855,"total_return_pct":3.4232792009141852,"win_rate":0.4820846905537459,"max_drawdown_pct":1.97377752972113,"sharpe_ratio":0.6203457661608955,"monthly_win_rate":0.625,"equity_curve_r_squared":0.4148680874417292}},"sqs_score":87.9,"sqs_breakdown":{"profitability":85.2,"risk":100.0,"consistency":86.5,"robustness":76.6},"verdict":"better","verdict_reasoning":"Half-size macro scaling materially improved valid and test risk-adjusted performance versus step40, confirming that SPY-below-SMA exposure was a real drag.","next_direction":"Try a full macro block to see whether removing weak-regime entries entirely is even cleaner.","tags":["pead","midcap","step44","short","core","macro50"],"sqs_v2_score":86.9,"sqs_v2_breakdown":{"profitability":85.2,"risk":100.0,"consistency":86.5,"robustness":76.6,"capital_efficiency":70.8}} {"entry_id":"IMP-0039","timestamp":"2026-03-17T07:54:25.866482+00:00","experiment_name":"pead_midcap_step45_short_core_macro_block","hypothesis":"If weak-regime entries are mostly noise, hard-blocking them should outperform simple size scaling.","config_delta":{"base_experiment":"pead_midcap_step44_short_core_macro50","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073536967478_c3a3615c","trade_count":28,"profit_factor":2.3084684930008983,"total_return_pct":1.30245295115927,"win_rate":0.6785714285714286,"max_drawdown_pct":0.37472483014430374,"sharpe_ratio":3.0487382658615467,"monthly_win_rate":0.75,"equity_curve_r_squared":0.48762905493056535},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073537015511_c3a3615c","trade_count":23,"profit_factor":3.7827916861128097,"total_return_pct":1.2021184808416436,"win_rate":0.6956521739130435,"max_drawdown_pct":0.2608177180219861,"sharpe_ratio":3.3795660622862123,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.9110928059216074},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073556022527_c3a3615c","trade_count":220,"profit_factor":1.2595187982631553,"total_return_pct":3.200633818982489,"win_rate":0.5045454545454545,"max_drawdown_pct":1.389607178327899,"sharpe_ratio":0.6336391727317187,"monthly_win_rate":0.6551724137931034,"equity_curve_r_squared":0.39958317262208615}},"sqs_score":86.7,"sqs_breakdown":{"profitability":84.8,"risk":100.0,"consistency":95.8,"robustness":57.2},"verdict":"better","verdict_reasoning":"The hard macro block improved valid and test again, with sharper PF and much lower drawdown than the 50% scaler version.","next_direction":"Stress the sleeve mix around the new macro-blocked core.","tags":["pead","midcap","step45","short","core","macro","block"]} {"entry_id":"IMP-0040","timestamp":"2026-03-17T07:54:26.245073+00:00","experiment_name":"pead_midcap_step46_short_core_macro_block_acshort12","hypothesis":"The after-close short sleeve may be oversized after the macro block and could improve if reduced.","config_delta":{"base_experiment":"pead_midcap_step45_short_core_macro_block","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073936915792_e3adb886","trade_count":26,"profit_factor":2.4445635979938296,"total_return_pct":1.339314216731771,"win_rate":0.6923076923076923,"max_drawdown_pct":0.37458871743417604,"sharpe_ratio":3.1583041871985076,"monthly_win_rate":0.75,"equity_curve_r_squared":0.48286315791941375},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073939814431_e3adb886","trade_count":21,"profit_factor":4.522043594902001,"total_return_pct":1.2518263219734362,"win_rate":0.7142857142857143,"max_drawdown_pct":0.2783619920052574,"sharpe_ratio":3.6389410132883055,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.9244229299732519}},"sqs_score":86.6,"sqs_breakdown":{"profitability":85.0,"risk":100.0,"consistency":95.8,"robustness":56.1},"verdict":"worse","verdict_reasoning":"Shrinking the after-close short sleeve slightly degraded both valid and test, so the step45 25% sleeve was not the problem.","next_direction":"Test whether the same-day long sleeve or the short-only core is the real source of edge.","tags":["pead","midcap","step46","short","core","macro","block","acshort12"]} {"entry_id":"IMP-0041","timestamp":"2026-03-17T07:54:26.612610+00:00","experiment_name":"pead_midcap_step47_short_core_macro_block_sdlong25","hypothesis":"A larger same-day reaction-close long overlay might scale once the macro block removes bad regimes.","config_delta":{"base_experiment":"pead_midcap_step45_short_core_macro_block","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073936910739_a38d69e4","trade_count":31,"profit_factor":1.7661839600751525,"total_return_pct":1.03177071332802,"win_rate":0.6451612903225806,"max_drawdown_pct":0.42599257212123065,"sharpe_ratio":2.218739891960781,"monthly_win_rate":0.75,"equity_curve_r_squared":0.4214549671036421},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317073939814560_a38d69e4","trade_count":25,"profit_factor":3.429404855633068,"total_return_pct":1.2833562667310616,"win_rate":0.68,"max_drawdown_pct":0.2608177180219861,"sharpe_ratio":3.32348066596022,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.889835319415119}},"sqs_score":87.0,"sqs_breakdown":{"profitability":85.1,"risk":100.0,"consistency":95.8,"robustness":58.3},"verdict":"worse","verdict_reasoning":"Increasing the same-day long sleeve hurt valid materially and did not produce a cleaner overall profile than step45.","next_direction":"Try sleeve removal experiments instead of scaling overlays up.","tags":["pead","midcap","step47","short","core","macro","block","sdlong25"]} {"entry_id":"IMP-0042","timestamp":"2026-03-17T07:54:26.967747+00:00","experiment_name":"pead_midcap_step48_short_core_macro_block_nolong","hypothesis":"The macro-blocked short core may be strong enough without the same-day long overlay.","config_delta":{"base_experiment":"pead_midcap_step45_short_core_macro_block","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074234188388_d9b28f40","trade_count":20,"profit_factor":5.726207009868067,"total_return_pct":1.2584927752282966,"win_rate":0.7,"max_drawdown_pct":0.29982153086364316,"sharpe_ratio":3.3529664036078217,"monthly_win_rate":1.0,"equity_curve_r_squared":0.4654938970631658},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074234267904_d9b28f40","trade_count":20,"profit_factor":3.402559985815088,"total_return_pct":0.8451446297187069,"win_rate":0.8,"max_drawdown_pct":0.4239007555767844,"sharpe_ratio":2.4413021645869604,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.7861833255279326}},"sqs_score":85.7,"sqs_breakdown":{"profitability":83.4,"risk":100.0,"consistency":95.8,"robustness":54.7},"verdict":"worse","verdict_reasoning":"Removing the long sleeve weakened both valid and test relative to step45, so the small same-day long overlay still adds useful diversification.","next_direction":"Test whether the same-day short sleeve can stand alone or whether the after-close short sleeve is also required.","tags":["pead","midcap","step48","short","core","macro","block","nolong"]} {"entry_id":"IMP-0043","timestamp":"2026-03-17T07:54:27.322093+00:00","experiment_name":"pead_midcap_step49_same_day_short_macro_block","hypothesis":"The pure same-day short engine might dominate the portfolio and make other sleeves unnecessary.","config_delta":{"base_experiment":"pead_midcap_step45_short_core_macro_block","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074233919071_b5cae2ca","trade_count":12,"profit_factor":25.094599474518425,"total_return_pct":1.1648266582814248,"win_rate":0.75,"max_drawdown_pct":0.33436592553948014,"sharpe_ratio":3.227317987298049,"monthly_win_rate":1.0,"equity_curve_r_squared":0.3679821567954865},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074234357252_b5cae2ca","trade_count":10,"profit_factor":2.4025420210691006,"total_return_pct":0.40093684044296973,"win_rate":0.7,"max_drawdown_pct":0.3693400619520335,"sharpe_ratio":1.5580313035787354,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.3032092765977471}},"sqs_score":38.9,"sqs_breakdown":{"profitability":81.6,"risk":92.6,"consistency":95.8,"robustness":19.0},"verdict":"worse","verdict_reasoning":"The single-sleeve version collapsed SQS because trade count and robustness fell too far, even though the kept trades were profitable.","next_direction":"Keep the supporting sleeves and test smaller structural adjustments instead.","tags":["pead","midcap","step49","same","day","short","macro","block"]} {"entry_id":"IMP-0044","timestamp":"2026-03-17T07:54:27.691772+00:00","experiment_name":"pead_midcap_step50_same_day_short_long_macro_block","hypothesis":"The same-day long overlay may matter, but the after-close short sleeve may be removable.","config_delta":{"base_experiment":"pead_midcap_step45_short_core_macro_block","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074234172662_a01fa9b8","trade_count":20,"profit_factor":2.2051399980357798,"total_return_pct":0.9530265960178512,"win_rate":0.65,"max_drawdown_pct":0.3444323377542605,"sharpe_ratio":2.687864694846263,"monthly_win_rate":0.75,"equity_curve_r_squared":0.41775889730721794},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074234263930_a01fa9b8","trade_count":15,"profit_factor":3.2060142950020296,"total_return_pct":0.805535692316771,"win_rate":0.6,"max_drawdown_pct":0.42315703199236054,"sharpe_ratio":2.6871013818111624,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8242465440616173}},"sqs_score":41.9,"sqs_breakdown":{"profitability":83.2,"risk":100.0,"consistency":87.5,"robustness":52.8},"verdict":"worse","verdict_reasoning":"Dropping the after-close short sleeve reduced both valid and test performance, so step45 still benefits from carrying all three active sleeves.","next_direction":"Refine sleeve quality rather than deleting sleeves wholesale.","tags":["pead","midcap","step50","same","day","short","long","macro","block"]} {"entry_id":"IMP-0045","timestamp":"2026-03-17T07:54:28.043618+00:00","experiment_name":"pead_midcap_step51_short_core_macro_block_crashcap","hypothesis":"Extreme one-day crash continuations are too stretched for the same-day short sleeve and should be excluded.","config_delta":{"base_experiment":"pead_midcap_step45_short_core_macro_block","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081833666987_5039805d","trade_count":28,"profit_factor":2.3084684930008983,"total_return_pct":1.30245295115927,"win_rate":0.6785714285714286,"max_drawdown_pct":0.37472483014430374,"sharpe_ratio":3.0487382658615467,"monthly_win_rate":0.75,"equity_curve_r_squared":0.48762905493056535,"avg_gross_exposure_pct":4.09489843643577,"avg_net_exposure_pct":-1.9273432556417505,"days_in_market_pct":57.89473684210527},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081834927778_5039805d","trade_count":22,"profit_factor":4.190184861108528,"total_return_pct":1.2441182731003355,"win_rate":0.7272727272727273,"max_drawdown_pct":0.22380328257556925,"sharpe_ratio":3.5956143566120704,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.918016321908289,"avg_gross_exposure_pct":2.2928950819181733,"avg_net_exposure_pct":-0.8189811228558067,"days_in_market_pct":42.5531914893617},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317074932001383_1585063f","trade_count":220,"profit_factor":1.2595187982631553,"total_return_pct":3.200633818982489,"win_rate":0.5045454545454545,"max_drawdown_pct":1.389607178327899,"sharpe_ratio":0.6336391727317187,"monthly_win_rate":0.6551724137931034,"equity_curve_r_squared":0.39958317262208615}},"sqs_score":86.7,"sqs_breakdown":{"profitability":85.0,"risk":100.0,"consistency":95.8,"robustness":56.7},"verdict":"better","verdict_reasoning":"Capping same-day shorts at -45% reaction preserved train and valid while modestly improving test return, PF, drawdown, and Sharpe versus step45.","next_direction":"Combine the crash cap with a quality filter on the same-day long overlay.","tags":["pead","midcap","step51","short","core","macro","block","crashcap"],"sqs_v2_score":89.6,"sqs_v2_breakdown":{"profitability":85.0,"risk":100.0,"consistency":95.8,"robustness":56.7,"capital_efficiency":100.0}} {"entry_id":"IMP-0046","timestamp":"2026-03-17T07:54:28.401055+00:00","experiment_name":"pead_midcap_step52_short_core_macro_block_crashcap_gap10","hypothesis":"The same-day long overlay may work better when restricted to larger reaction-day gap moves.","config_delta":{"base_experiment":"pead_midcap_step51_short_core_macro_block_crashcap","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081834927839_7592b1dc","trade_count":25,"profit_factor":5.660464878695176,"total_return_pct":1.818984312375629,"win_rate":0.72,"max_drawdown_pct":0.21695852738272095,"sharpe_ratio":4.755652871139783,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6608034205824956,"avg_gross_exposure_pct":3.5838805580978437,"avg_net_exposure_pct":-2.593156236925373,"days_in_market_pct":56.14035087719298},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317081833658080_7592b1dc","trade_count":22,"profit_factor":3.351800408128271,"total_return_pct":1.0111883417758072,"win_rate":0.7727272727272727,"max_drawdown_pct":0.24257912061402945,"sharpe_ratio":3.031867507475822,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8468990955221466,"avg_gross_exposure_pct":2.858350680305373,"avg_net_exposure_pct":-2.222595187645864,"days_in_market_pct":53.191489361702125},"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317075225071209_7592b1dc","trade_count":201,"profit_factor":1.3153549627707726,"total_return_pct":3.2988485556152156,"win_rate":0.4975124378109453,"max_drawdown_pct":1.5599163185209133,"sharpe_ratio":0.683194016870928,"monthly_win_rate":0.6923076923076923,"equity_curve_r_squared":0.7186047701175057}},"sqs_score":86.3,"sqs_breakdown":{"profitability":84.0,"risk":100.0,"consistency":95.8,"robustness":56.7},"verdict":"neutral","verdict_reasoning":"A 10% gap filter made train and valid much stronger but gave back some test performance, so this is a balanced alternative rather than a clear new leader.","next_direction":"If optimizing for robustness across splits, keep exploring overlay quality gates around this variant.","tags":["pead","midcap","step52","short","core","macro","block","crashcap","gap10"],"sqs_v2_score":87.2,"sqs_v2_breakdown":{"profitability":84.0,"risk":100.0,"consistency":95.8,"robustness":56.7,"capital_efficiency":79.5}} {"entry_id":"IMP-0047","timestamp":"2026-03-17T07:54:28.762757+00:00","experiment_name":"pead_midcap_step53_short_core_macro_block_crashcap_gap14","hypothesis":"A stricter same-day long gap filter might further concentrate the overlay into only the strongest continuation setups.","config_delta":{"base_experiment":"pead_midcap_step52_short_core_macro_block_crashcap_gap10","changes":{}},"results":{"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317075123208169_66d09993","trade_count":25,"profit_factor":8.207760543782888,"total_return_pct":2.0180349316014032,"win_rate":0.76,"max_drawdown_pct":0.2179161262122437,"sharpe_ratio":5.288977955005757,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6385560108285373},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317075123225576_66d09993","trade_count":19,"profit_factor":4.599773676047558,"total_return_pct":1.1191525844285641,"win_rate":0.8421052631578947,"max_drawdown_pct":0.21947031826165894,"sharpe_ratio":3.463700507402551,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8852420626052896}},"sqs_score":43.1,"sqs_breakdown":{"profitability":84.5,"risk":100.0,"consistency":95.8,"robustness":55.0},"verdict":"worse","verdict_reasoning":"The stricter gap filter over-concentrated the overlay, dropped total trade count below a healthy level, and cratered test SQS.","next_direction":"Use moderate overlay filters only; the strict version is too sparse.","tags":["pead","midcap","step53","short","core","macro","block","crashcap","gap14"]} {"entry_id":"IMP-0048","timestamp":"2026-03-17T10:10:07.544224+00:00","experiment_name":"pead_midcap_step56_short_core_macro_block_crashcap_gap10_interleave_longtrend25","hypothesis":"Interleaving sleeves instead of raw global-score sorting should help the long trend overlay get allocated earlier and improve realized returns.","config_delta":{"base_experiment":"pead_midcap_step55_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100427495678_c4cb6228","trade_count":191,"profit_factor":1.31467289884978,"total_return_pct":3.000532477442888,"win_rate":0.5078534031413613,"max_drawdown_pct":1.1246540668445304,"sharpe_ratio":0.682160145042935,"monthly_win_rate":0.6538461538461539,"equity_curve_r_squared":0.7049623155490459,"avg_gross_exposure_pct":2.1440841165534352,"avg_net_exposure_pct":-0.741975012003786,"days_in_market_pct":28.169014084507044},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100431529104_c4cb6228","trade_count":28,"profit_factor":4.8198685654623254,"total_return_pct":1.9154249967419892,"win_rate":0.6785714285714286,"max_drawdown_pct":0.6079718599673478,"sharpe_ratio":3.973180662878923,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5809751515505278,"avg_gross_exposure_pct":4.161026862046388,"avg_net_exposure_pct":-2.684188461871084,"days_in_market_pct":56.14035087719298},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100434744381_c4cb6228","trade_count":20,"profit_factor":4.034651941086868,"total_return_pct":1.0723281131463445,"win_rate":0.8,"max_drawdown_pct":0.24183984749880666,"sharpe_ratio":3.399127342667149,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8859682722741977,"avg_gross_exposure_pct":2.4654753372509486,"avg_net_exposure_pct":-1.477511185545206,"days_in_market_pct":51.06382978723404}},"sqs_score":51.3,"sqs_breakdown":{"valid_quality":82.6,"test_quality":79.4,"floor_quality":79.4,"gap_quality":100.0},"sqs_v2_score":88.3,"sqs_v2_breakdown":{"profitability":84.3,"risk":100.0,"consistency":95.8,"robustness":55.6,"capital_efficiency":90.9},"promotion_score":89.1,"promotion_breakdown":{"valid_quality":89.8,"test_quality":88.3,"floor_quality":88.3},"unified_score":51.3,"unified_breakdown":{"valid_quality":82.6,"test_quality":79.4,"floor_quality":79.4,"gap_quality":100.0},"verdict":"neutral","verdict_reasoning":"Interleaving lifted test PF and return slightly, but train remained below step52 and valid drawdown worsened, so the gain was too narrow.","next_direction":"Keep the stronger same-day long sleeve, but try opening one more candidate slot per day.","tags":["pead","midcap","step56","short","core","macro","block","crashcap","gap10","interleave","longtrend25"]} {"entry_id":"IMP-0049","timestamp":"2026-03-17T10:10:07.544223+00:00","experiment_name":"pead_midcap_step55_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25","hypothesis":"If the same-day long trend sleeve is real alpha, raising its budget from 12.5% to 25% should lift valid/test returns while keeping drawdown contained.","config_delta":{"base_experiment":"pead_midcap_step52_short_core_macro_block_crashcap_gap10","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100414827938_b2c1159a","trade_count":208,"profit_factor":1.3026092902212059,"total_return_pct":3.197582862252573,"win_rate":0.5048076923076923,"max_drawdown_pct":1.3030593106539847,"sharpe_ratio":0.6650887543632845,"monthly_win_rate":0.6538461538461539,"equity_curve_r_squared":0.6942797350314213,"avg_gross_exposure_pct":2.2965079311515697,"avg_net_exposure_pct":-1.068925327205924,"days_in_market_pct":28.38569880823402},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100418563512_b2c1159a","trade_count":28,"profit_factor":4.621364494548783,"total_return_pct":1.9321698387879296,"win_rate":0.7142857142857143,"max_drawdown_pct":0.29678396454155964,"sharpe_ratio":4.486982260533271,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6351890668895267,"avg_gross_exposure_pct":3.8320562275604266,"avg_net_exposure_pct":-2.3571340234511924,"days_in_market_pct":56.14035087719298},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100421770808_b2c1159a","trade_count":23,"profit_factor":3.4044506466943907,"total_return_pct":1.0338260227821447,"win_rate":0.782608695652174,"max_drawdown_pct":0.24257912061402945,"sharpe_ratio":3.1121570919759436,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8494393946803189,"avg_gross_exposure_pct":3.034569947217148,"avg_net_exposure_pct":-2.0461795297656566,"days_in_market_pct":53.191489361702125}},"sqs_score":49.8,"sqs_breakdown":{"valid_quality":83.6,"test_quality":76.1,"floor_quality":76.1,"gap_quality":91.7},"sqs_v2_score":87.1,"sqs_v2_breakdown":{"profitability":84.1,"risk":100.0,"consistency":95.8,"robustness":57.2,"capital_efficiency":77.7},"promotion_score":89.1,"promotion_breakdown":{"valid_quality":90.7,"test_quality":87.1,"floor_quality":87.1},"unified_score":49.8,"unified_breakdown":{"valid_quality":83.6,"test_quality":76.1,"floor_quality":76.1,"gap_quality":91.7},"verdict":"neutral","verdict_reasoning":"This was the best balanced trend-hold variant: valid and test returns edged above step52, but train return stayed below baseline, so it did not clear a full all-split improvement bar.","next_direction":"Test whether selection crowding is the bottleneck by interleaving sleeves or allowing one extra daily slot.","tags":["pead","midcap","step55","short","core","macro","block","crashcap","gap10","longtrend12","sdlong25"]} {"entry_id":"IMP-0050","timestamp":"2026-03-17T10:10:07.544222+00:00","experiment_name":"pead_midcap_step54_short_core_macro_block_crashcap_gap10_longtrend12","hypothesis":"Same-day long close-entry sleeve with 12-day trend hold should improve valid/test without materially hurting the short-core base.","config_delta":{"base_experiment":"pead_midcap_step52_short_core_macro_block_crashcap_gap10","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100332469191_e1ab5792","trade_count":201,"profit_factor":1.27971446872751,"total_return_pct":2.88150490621911,"win_rate":0.5024875621890548,"max_drawdown_pct":1.4049225155953227,"sharpe_ratio":0.6136649773412598,"monthly_win_rate":0.6923076923076923,"equity_curve_r_squared":0.7371903755424146,"avg_gross_exposure_pct":2.1995436175888323,"avg_net_exposure_pct":-1.2043129551276188,"days_in_market_pct":27.627302275189596},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100351662584_e1ab5792","trade_count":26,"profit_factor":6.099913503899416,"total_return_pct":1.9918550334882748,"win_rate":0.7307692307692307,"max_drawdown_pct":0.21797225956805316,"sharpe_ratio":4.666899835993297,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6469910274326361,"avg_gross_exposure_pct":3.637408212559115,"avg_net_exposure_pct":-2.5520608569407015,"days_in_market_pct":56.14035087719298},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100408811304_e1ab5792","trade_count":22,"profit_factor":2.991176064691692,"total_return_pct":0.856133035813924,"win_rate":0.7727272727272727,"max_drawdown_pct":0.3359030771970047,"sharpe_ratio":2.4909364067019513,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8042967657946622,"avg_gross_exposure_pct":2.921981872114122,"avg_net_exposure_pct":-2.1517863691688386,"days_in_market_pct":53.191489361702125}},"sqs_score":46.5,"sqs_breakdown":{"valid_quality":83.6,"test_quality":70.9,"floor_quality":70.9,"gap_quality":74.3},"sqs_v2_score":86.1,"sqs_v2_breakdown":{"profitability":83.4,"risk":100.0,"consistency":95.8,"robustness":56.7,"capital_efficiency":71.0},"promotion_score":88.6,"promotion_breakdown":{"valid_quality":90.7,"test_quality":86.1,"floor_quality":86.1},"unified_score":46.5,"unified_breakdown":{"valid_quality":83.6,"test_quality":70.9,"floor_quality":70.9,"gap_quality":74.3},"verdict":"neutral","verdict_reasoning":"Long trend sleeve improved valid return and PF, but train and test returns fell versus step52. Improvement was not broad enough across all three splits.","next_direction":"Increase same-day long sleeve budget and test whether the trend hold needs more capital to matter.","tags":["pead","midcap","step54","short","core","macro","block","crashcap","gap10","longtrend12"]} {"entry_id":"IMP-0051","timestamp":"2026-03-17T10:13:47.820620+00:00","experiment_name":"pead_midcap_step58_short_core_macro_block_crashcap_gap7_longtrend12_sdlong25","hypothesis":"Loosening the same-day long gap filter from 10% to 7% may broaden the trend-hold sleeve enough to lift absolute return across splits.","config_delta":{"base_experiment":"pead_midcap_step55_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100701045116_89da3e85","trade_count":217,"profit_factor":1.1836228679446417,"total_return_pct":2.1640217345169948,"win_rate":0.511520737327189,"max_drawdown_pct":1.3943515116639358,"sharpe_ratio":0.41689043269693754,"monthly_win_rate":0.6071428571428571,"equity_curve_r_squared":0.24452603324168182,"avg_gross_exposure_pct":2.48302270403254,"avg_net_exposure_pct":-0.9240632756453898,"days_in_market_pct":29.577464788732392},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100705201243_89da3e85","trade_count":29,"profit_factor":2.885213921540522,"total_return_pct":1.6066212170483485,"win_rate":0.6896551724137931,"max_drawdown_pct":0.4958133428812383,"sharpe_ratio":3.6006506236711573,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6323181349051988,"avg_gross_exposure_pct":4.030999519248784,"avg_net_exposure_pct":-1.9829383669087164,"days_in_market_pct":56.14035087719298},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100708488141_89da3e85","trade_count":23,"profit_factor":2.7627983723004212,"total_return_pct":0.9267893134084734,"win_rate":0.7391304347826086,"max_drawdown_pct":0.24257912061402945,"sharpe_ratio":2.781969702284716,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8290340590935003,"avg_gross_exposure_pct":3.172184023694837,"avg_net_exposure_pct":-1.2529216711302178,"days_in_market_pct":53.191489361702125}},"sqs_score":46.6,"sqs_breakdown":{"valid_quality":81.6,"test_quality":71.0,"floor_quality":71.0,"gap_quality":81.3},"sqs_v2_score":86.3,"sqs_v2_breakdown":{"profitability":83.7,"risk":100.0,"consistency":95.8,"robustness":57.2,"capital_efficiency":70.9},"promotion_score":87.7,"promotion_breakdown":{"valid_quality":88.8,"test_quality":86.3,"floor_quality":86.3},"unified_score":46.6,"unified_breakdown":{"valid_quality":81.6,"test_quality":71.0,"floor_quality":71.0,"gap_quality":81.3},"verdict":"worse","verdict_reasoning":"Broadening the long sleeve diluted quality. Train, valid, and test all weakened versus the 10% gap version, so the extra breadth was not productive.","next_direction":"Stay with the tighter 10% gap gate and test whether after-close short should be removed from the max4 portfolio.","tags":["pead","midcap","step58","short","core","macro","block","crashcap","gap7","longtrend12","sdlong25"]} {"entry_id":"IMP-0052","timestamp":"2026-03-17T10:13:47.821673+00:00","experiment_name":"pead_midcap_step57_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4","hypothesis":"Adding a fourth daily slot should let the positive same-day long trend sleeve coexist with the short-core sleeves and lift total return, especially in train.","config_delta":{"base_experiment":"pead_midcap_step55_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100647683228_d591afad","trade_count":214,"profit_factor":1.3583319773998321,"total_return_pct":3.8172175024118773,"win_rate":0.5186915887850467,"max_drawdown_pct":1.3295910930658135,"sharpe_ratio":0.7580236981795051,"monthly_win_rate":0.6538461538461539,"equity_curve_r_squared":0.685718632923443,"avg_gross_exposure_pct":2.3612289576418535,"avg_net_exposure_pct":-1.001836917901861,"days_in_market_pct":28.38569880823402},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100651417016_d591afad","trade_count":29,"profit_factor":4.4424890742925465,"total_return_pct":1.9106867186089511,"win_rate":0.6896551724137931,"max_drawdown_pct":0.3179173247540872,"sharpe_ratio":4.511177385736093,"monthly_win_rate":1.0,"equity_curve_r_squared":0.625777909809139,"avg_gross_exposure_pct":3.944739633758862,"avg_net_exposure_pct":-2.4700155661285508,"days_in_market_pct":56.14035087719298},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317100654743633_d591afad","trade_count":24,"profit_factor":2.664801821772631,"total_return_pct":0.91437274196824,"win_rate":0.75,"max_drawdown_pct":0.24257912061402945,"sharpe_ratio":2.893891891447354,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8412595666380652,"avg_gross_exposure_pct":3.169455379761105,"avg_net_exposure_pct":-2.1804906875349683,"days_in_market_pct":53.191489361702125}},"sqs_score":46.5,"sqs_breakdown":{"valid_quality":83.5,"test_quality":70.9,"floor_quality":70.9,"gap_quality":74.7},"sqs_v2_score":86.3,"sqs_v2_breakdown":{"profitability":83.7,"risk":100.0,"consistency":95.8,"robustness":57.8,"capital_efficiency":70.4},"promotion_score":88.6,"promotion_breakdown":{"valid_quality":90.4,"test_quality":86.3,"floor_quality":86.3},"unified_score":46.5,"unified_breakdown":{"valid_quality":83.5,"test_quality":70.9,"floor_quality":70.9,"gap_quality":74.7},"verdict":"neutral","verdict_reasoning":"This was the first long-trend variant to beat step52 on train return, but valid and test softened versus the best balanced variants, so it improved absolute return without clearing a robust all-split bar.","next_direction":"Keep max4, then remove or sharply reduce after-close short to see whether it is diluting the higher-conviction sleeves.","tags":["pead","midcap","step57","short","core","macro","block","crashcap","gap10","longtrend12","sdlong25","max4"]} {"entry_id":"IMP-0053","timestamp":"2026-03-17T10:18:37.790830+00:00","experiment_name":"pead_midcap_step59_same_day_only_max4_longtrend25","hypothesis":"If after-close short is diluting the portfolio, a same-day-only book should lift train return while keeping the positive long trend overlay intact.","config_delta":{"base_experiment":"pead_midcap_step57_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101616130067_4ce1573f","trade_count":124,"profit_factor":1.6549151417942642,"total_return_pct":3.4598346586282274,"win_rate":0.5403225806451613,"max_drawdown_pct":1.3037083252920614,"sharpe_ratio":0.8632124891148151,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6337366863338719,"avg_gross_exposure_pct":1.4618927749473103,"avg_net_exposure_pct":0.040921478947221035,"days_in_market_pct":19.176598049837487},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101626096198_4ce1573f","trade_count":22,"profit_factor":6.627861685804674,"total_return_pct":1.9039976324784367,"win_rate":0.7272727272727273,"max_drawdown_pct":0.44666468803527526,"sharpe_ratio":4.451621602089021,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5794666301732988,"avg_gross_exposure_pct":3.8681902002325703,"avg_net_exposure_pct":-2.3913045273063496,"days_in_market_pct":42.10526315789473},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101634807938_4ce1573f","trade_count":13,"profit_factor":2.6072978977047137,"total_return_pct":0.5860747837766976,"win_rate":0.6923076923076923,"max_drawdown_pct":0.31275465094584215,"sharpe_ratio":2.308425640364089,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6952685722248394,"avg_gross_exposure_pct":1.4491267702359076,"avg_net_exposure_pct":-0.4649535073354661,"days_in_market_pct":31.914893617021278}},"sqs_score":33.2,"sqs_breakdown":{"valid_quality":81.1,"test_quality":49.7,"floor_quality":49.7,"gap_quality":12.0},"sqs_v2_score":42.7,"sqs_v2_breakdown":{"profitability":82.3,"risk":100.0,"consistency":95.8,"robustness":45.1,"capital_efficiency":78.5},"promotion_score":68.6,"promotion_breakdown":{"valid_quality":89.8,"test_quality":42.7,"floor_quality":42.7},"unified_score":33.2,"unified_breakdown":{"valid_quality":81.1,"test_quality":49.7,"floor_quality":49.7,"gap_quality":12.0},"verdict":"worse","verdict_reasoning":"Removing after-close short improved train and valid quality, but test return collapsed from +0.91% to +0.59%. The sleeve is still needed for recent OOS behavior.","next_direction":"Keep after-close short active, but filter it harder so only the deeper negative gaps remain.","tags":["pead","midcap","step59","same","day","only","max4","longtrend25"]} {"entry_id":"IMP-0054","timestamp":"2026-03-17T10:18:38.178487+00:00","experiment_name":"pead_midcap_step60_same_day_only_interleave_max4_longtrend25","hypothesis":"Interleaving the same-day-only sleeves may preserve the train lift while forcing better balance between short core and long trend entries.","config_delta":{"base_experiment":"pead_midcap_step59_same_day_only_max4_longtrend25","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101616097173_ce78581d","trade_count":124,"profit_factor":1.7147359082965992,"total_return_pct":3.794868328446057,"win_rate":0.5403225806451613,"max_drawdown_pct":1.3030513376085362,"sharpe_ratio":0.9460927004826782,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.645777565512627,"avg_gross_exposure_pct":1.498662692128791,"avg_net_exposure_pct":0.0720408710547762,"days_in_market_pct":19.284940411700973},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101626066831_ce78581d","trade_count":22,"profit_factor":6.627861685804674,"total_return_pct":1.9039976324784367,"win_rate":0.7272727272727273,"max_drawdown_pct":0.44666468803527526,"sharpe_ratio":4.451621602089021,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5794666301732988,"avg_gross_exposure_pct":3.8681902002325703,"avg_net_exposure_pct":-2.3913045273063496,"days_in_market_pct":42.10526315789473},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101634790427_ce78581d","trade_count":13,"profit_factor":2.6072978977047137,"total_return_pct":0.5860747837766976,"win_rate":0.6923076923076923,"max_drawdown_pct":0.31275465094584215,"sharpe_ratio":2.308425640364089,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6952685722248394,"avg_gross_exposure_pct":1.4491267702359076,"avg_net_exposure_pct":-0.4649535073354661,"days_in_market_pct":31.914893617021278}},"sqs_score":33.2,"sqs_breakdown":{"valid_quality":81.1,"test_quality":49.7,"floor_quality":49.7,"gap_quality":12.0},"sqs_v2_score":42.7,"sqs_v2_breakdown":{"profitability":82.3,"risk":100.0,"consistency":95.8,"robustness":45.1,"capital_efficiency":78.5},"promotion_score":68.6,"promotion_breakdown":{"valid_quality":89.8,"test_quality":42.7,"floor_quality":42.7},"unified_score":33.2,"unified_breakdown":{"valid_quality":81.1,"test_quality":49.7,"floor_quality":49.7,"gap_quality":12.0},"verdict":"neutral","verdict_reasoning":"Interleaving improved train return to the highest seen in this branch, but valid stayed flat and test remained stuck at +0.59%, so it is a useful clue rather than a promotion candidate.","next_direction":"Apply a stricter filter to after-close short instead of removing it entirely.","tags":["pead","midcap","step60","same","day","only","interleave","max4","longtrend25"]} {"entry_id":"IMP-0055","timestamp":"2026-03-17T10:18:38.591808+00:00","experiment_name":"pead_midcap_step61_same_day_only_max5_longtrend25","hypothesis":"A fifth daily slot may restore some lost test opportunity while keeping the same-day-only train lift.","config_delta":{"base_experiment":"pead_midcap_step59_same_day_only_max4_longtrend25","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101616141383_4177a33d","trade_count":125,"profit_factor":1.6152818286538184,"total_return_pct":3.3281551222560664,"win_rate":0.528,"max_drawdown_pct":1.304467392506448,"sharpe_ratio":0.8410110414784137,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6390485285220323,"avg_gross_exposure_pct":1.4445779873336309,"avg_net_exposure_pct":-0.001513116209876324,"days_in_market_pct":19.068255687974},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101626106651_4177a33d","trade_count":22,"profit_factor":6.627861685804674,"total_return_pct":1.9039976324784367,"win_rate":0.7272727272727273,"max_drawdown_pct":0.44666468803527526,"sharpe_ratio":4.451621602089021,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5794666301732988,"avg_gross_exposure_pct":3.8681902002325703,"avg_net_exposure_pct":-2.3913045273063496,"days_in_market_pct":42.10526315789473},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101634804824_4177a33d","trade_count":13,"profit_factor":2.6072978977047137,"total_return_pct":0.5860747837766976,"win_rate":0.6923076923076923,"max_drawdown_pct":0.31275465094584215,"sharpe_ratio":2.308425640364089,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.6952685722248394,"avg_gross_exposure_pct":1.4491267702359076,"avg_net_exposure_pct":-0.4649535073354661,"days_in_market_pct":31.914893617021278}},"sqs_score":33.2,"sqs_breakdown":{"valid_quality":81.1,"test_quality":49.7,"floor_quality":49.7,"gap_quality":12.0},"sqs_v2_score":42.7,"sqs_v2_breakdown":{"profitability":82.3,"risk":100.0,"consistency":95.8,"robustness":45.1,"capital_efficiency":78.5},"promotion_score":68.6,"promotion_breakdown":{"valid_quality":89.8,"test_quality":42.7,"floor_quality":42.7},"unified_score":33.2,"unified_breakdown":{"valid_quality":81.1,"test_quality":49.7,"floor_quality":49.7,"gap_quality":12.0},"verdict":"worse","verdict_reasoning":"The extra slot did not recover test. It raised trade count slightly but underperformed the interleaved same-day-only variant and still lagged the mixed-sleeve portfolio.","next_direction":"Return to the mixed-sleeve structure and tighten after-close short with a negative gap filter.","tags":["pead","midcap","step61","same","day","only","max5","longtrend25"]} {"entry_id":"IMP-0056","timestamp":"2026-03-17T10:20:47.944163+00:00","experiment_name":"pead_midcap_step62_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10","hypothesis":"Weak after-close shorts are diluting the max4 mixed-sleeve portfolio; requiring at least a 10% negative gap should keep the sleeve productive while freeing slots for stronger same-day setups.","config_delta":{"base_experiment":"pead_midcap_step57_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101945843553_a9942261","trade_count":190,"profit_factor":1.5870238518554496,"total_return_pct":5.006752568666314,"win_rate":0.5473684210526316,"max_drawdown_pct":1.2008626598937386,"sharpe_ratio":1.1008608430630382,"monthly_win_rate":0.64,"equity_curve_r_squared":0.7668760857061504,"avg_gross_exposure_pct":2.1363506899122533,"avg_net_exposure_pct":-0.7060295226606695,"days_in_market_pct":25.785482123510295},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101951495313_a9942261","trade_count":26,"profit_factor":4.640144626555104,"total_return_pct":1.7785589226570302,"win_rate":0.6923076923076923,"max_drawdown_pct":0.394474954823559,"sharpe_ratio":4.453025001679815,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5596638198344033,"avg_gross_exposure_pct":3.5028084000751822,"avg_net_exposure_pct":-2.028975630946834,"days_in_market_pct":49.122807017543856},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101956624074_a9942261","trade_count":20,"profit_factor":3.693559917731055,"total_return_pct":0.9821623910714115,"win_rate":0.8,"max_drawdown_pct":0.23230116536263104,"sharpe_ratio":3.3957804338520745,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.9033229833419024,"avg_gross_exposure_pct":2.4512706589430846,"avg_net_exposure_pct":-1.4631851279456756,"days_in_market_pct":48.93617021276596}},"sqs_score":50.9,"sqs_breakdown":{"valid_quality":81.7,"test_quality":79.2,"floor_quality":79.2,"gap_quality":100.0},"sqs_v2_score":87.7,"sqs_v2_breakdown":{"profitability":83.9,"risk":100.0,"consistency":95.8,"robustness":55.6,"capital_efficiency":86.1},"promotion_score":88.9,"promotion_breakdown":{"valid_quality":89.9,"test_quality":87.7,"floor_quality":87.7},"unified_score":50.9,"unified_breakdown":{"valid_quality":81.7,"test_quality":79.2,"floor_quality":79.2,"gap_quality":100.0},"verdict":"better","verdict_reasoning":"This filter was a clear improvement over step57: train return jumped from +3.82% to +5.01%, test improved from +0.91% to +0.98%, and drawdown fell. Valid softened slightly but remained strong.","next_direction":"Try the same negative-gap filter with interleaved sleeve selection to see if test can move back above 1.0% without giving up the train lift.","tags":["pead","midcap","step62","short","core","macro","block","crashcap","gap10","longtrend12","sdlong25","max4","acsgap10"]} {"entry_id":"IMP-0057","timestamp":"2026-03-17T10:20:48.356015+00:00","experiment_name":"pead_midcap_step63_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap12","hypothesis":"A stricter 12% negative gap gate on after-close shorts may further improve the mixed-sleeve portfolio by concentrating the short sleeve into only the sharpest downside reactions.","config_delta":{"base_experiment":"pead_midcap_step62_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101945804213_83edae67","trade_count":182,"profit_factor":1.6277512600955655,"total_return_pct":5.049056193144744,"win_rate":0.5494505494505495,"max_drawdown_pct":1.2723459513687636,"sharpe_ratio":1.1295117660384937,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.7296785391968574,"avg_gross_exposure_pct":2.075630672791522,"avg_net_exposure_pct":-0.6452651158022451,"days_in_market_pct":25.243770314192847},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101951483361_83edae67","trade_count":24,"profit_factor":5.270593419113103,"total_return_pct":1.7898083823081543,"win_rate":0.7083333333333334,"max_drawdown_pct":0.31708063303845857,"sharpe_ratio":4.878106921358311,"monthly_win_rate":1.0,"equity_curve_r_squared":0.637601759273469,"avg_gross_exposure_pct":3.0974719922506315,"avg_net_exposure_pct":-1.626276620699805,"days_in_market_pct":45.614035087719294},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317101956614713_83edae67","trade_count":19,"profit_factor":3.6038727896341176,"total_return_pct":0.9494594526291912,"win_rate":0.7894736842105263,"max_drawdown_pct":0.23230116536263104,"sharpe_ratio":3.2438715317612528,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8958519994688269,"avg_gross_exposure_pct":1.9049388001836767,"avg_net_exposure_pct":-0.9171395725318859,"days_in_market_pct":38.297872340425535}},"sqs_score":38.2,"sqs_breakdown":{"valid_quality":82.3,"test_quality":57.7,"floor_quality":57.7,"gap_quality":34.7},"sqs_v2_score":44.4,"sqs_v2_breakdown":{"profitability":83.8,"risk":100.0,"consistency":95.8,"robustness":55.0,"capital_efficiency":98.1},"promotion_score":69.6,"promotion_breakdown":{"valid_quality":90.3,"test_quality":44.4,"floor_quality":44.4},"unified_score":38.2,"unified_breakdown":{"valid_quality":82.3,"test_quality":57.7,"floor_quality":57.7,"gap_quality":34.7},"verdict":"better","verdict_reasoning":"The 12% gate slightly improved train and valid versus step62 while keeping test near 0.95% with lower drawdown than the old mixed-sleeve base. This is the strongest return-first variant so far.","next_direction":"Combine the after-close gap gate with interleaved max4 sleeve selection to test whether test return can recover toward the 1.0%+ level.","tags":["pead","midcap","step63","short","core","macro","block","crashcap","gap10","longtrend12","sdlong25","max4","acsgap12"]} {"entry_id":"IMP-0058","timestamp":"2026-03-17T10:22:41.050471+00:00","experiment_name":"pead_midcap_step64_short_core_macro_block_crashcap_gap10_interleave_max4_acsgap10","hypothesis":"Interleaving the filtered mixed-sleeve portfolio might recover some of the earlier test strength without sacrificing the new train lift from the after-close gap gate.","config_delta":{"base_experiment":"pead_midcap_step62_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102155738633_2e938802","trade_count":191,"profit_factor":1.5695913044241423,"total_return_pct":5.006400905086412,"win_rate":0.5392670157068062,"max_drawdown_pct":1.5104386424090617,"sharpe_ratio":1.1022536648052863,"monthly_win_rate":0.64,"equity_curve_r_squared":0.7673617882130458,"avg_gross_exposure_pct":2.194526583220677,"avg_net_exposure_pct":-0.6654873263018454,"days_in_market_pct":26.00216684723727},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102201332816_2e938802","trade_count":26,"profit_factor":4.330878953751208,"total_return_pct":1.675907371790352,"win_rate":0.6538461538461539,"max_drawdown_pct":0.608675665764912,"sharpe_ratio":3.7033259316462277,"monthly_win_rate":1.0,"equity_curve_r_squared":0.527209136324793,"avg_gross_exposure_pct":3.7950928397401578,"avg_net_exposure_pct":-2.3215832255311892,"days_in_market_pct":49.122807017543856},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102206621120_2e938802","trade_count":20,"profit_factor":3.693559917731055,"total_return_pct":0.9821623910714115,"win_rate":0.8,"max_drawdown_pct":0.23230116536263104,"sharpe_ratio":3.3957804338520745,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.9033229833419024,"avg_gross_exposure_pct":2.4512706589430846,"avg_net_exposure_pct":-1.4631851279456756,"days_in_market_pct":48.93617021276596}},"sqs_score":50.6,"sqs_breakdown":{"valid_quality":80.6,"test_quality":79.2,"floor_quality":79.2,"gap_quality":100.0},"sqs_v2_score":87.7,"sqs_v2_breakdown":{"profitability":83.9,"risk":100.0,"consistency":95.8,"robustness":55.6,"capital_efficiency":86.1},"promotion_score":88.2,"promotion_breakdown":{"valid_quality":88.7,"test_quality":87.7,"floor_quality":87.7},"unified_score":50.6,"unified_breakdown":{"valid_quality":80.6,"test_quality":79.2,"floor_quality":79.2,"gap_quality":100.0},"verdict":"worse","verdict_reasoning":"Test held steady, but valid return and drawdown got materially worse while train did not improve. The gap filter works better with raw global-score ranking than with interleaving.","next_direction":"Keep global-score selection and treat step62/63 as the active return-first branch.","tags":["pead","midcap","step64","short","core","macro","block","crashcap","gap10","interleave","max4","acsgap10"]} {"entry_id":"IMP-0059","timestamp":"2026-03-17T10:22:41.560235+00:00","experiment_name":"pead_midcap_step65_short_core_macro_block_crashcap_gap10_interleave_max4_acsgap12","hypothesis":"A stricter after-close gap gate plus interleaving may produce the strongest hybrid of train lift and balanced sleeve participation.","config_delta":{"base_experiment":"pead_midcap_step63_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap12","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102155749766_057bd373","trade_count":182,"profit_factor":1.6174212176205378,"total_return_pct":5.077465154216028,"win_rate":0.5439560439560439,"max_drawdown_pct":1.5094301004863888,"sharpe_ratio":1.1510607734250322,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.7322022304994754,"avg_gross_exposure_pct":2.127978254795758,"avg_net_exposure_pct":-0.5837963895741501,"days_in_market_pct":25.46045503791983},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102201332544_057bd373","trade_count":24,"profit_factor":4.557936520788986,"total_return_pct":1.5351686099939834,"win_rate":0.6666666666666666,"max_drawdown_pct":0.5303323192221483,"sharpe_ratio":3.9755987852769445,"monthly_win_rate":1.0,"equity_curve_r_squared":0.6279656300903311,"avg_gross_exposure_pct":3.4173394039982,"avg_net_exposure_pct":-1.9446456373142142,"days_in_market_pct":47.368421052631575},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102206620963_057bd373","trade_count":19,"profit_factor":3.6038727896341176,"total_return_pct":0.9494594526291912,"win_rate":0.7894736842105263,"max_drawdown_pct":0.23230116536263104,"sharpe_ratio":3.2438715317612528,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8958519994688269,"avg_gross_exposure_pct":1.9049388001836767,"avg_net_exposure_pct":-0.9171395725318859,"days_in_market_pct":38.297872340425535}},"sqs_score":38.3,"sqs_breakdown":{"valid_quality":81.1,"test_quality":57.7,"floor_quality":57.7,"gap_quality":38.7},"sqs_v2_score":44.4,"sqs_v2_breakdown":{"profitability":83.8,"risk":100.0,"consistency":95.8,"robustness":55.0,"capital_efficiency":98.1},"promotion_score":69.0,"promotion_breakdown":{"valid_quality":89.1,"test_quality":44.4,"floor_quality":44.4},"unified_score":38.3,"unified_breakdown":{"valid_quality":81.1,"test_quality":57.7,"floor_quality":57.7,"gap_quality":38.7},"verdict":"worse","verdict_reasoning":"Train ticked up slightly, but valid deteriorated meaningfully and test did not improve. Interleaving is not helping this filtered branch.","next_direction":"Stay with the non-interleaved filtered short sleeve; the next branch should tune the filtered after-close short only if we need more test return.","tags":["pead","midcap","step65","short","core","macro","block","crashcap","gap10","interleave","max4","acsgap12"]} {"entry_id":"IMP-0060","timestamp":"2026-03-17T10:26:25.356022+00:00","experiment_name":"pead_midcap_step66_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10_react12","hypothesis":"Adding a 12% downside reaction requirement on top of the 10% after-close gap filter may remove the weakest residual after-close shorts without sacrificing the recent OOS edge.","config_delta":{"base_experiment":"pead_midcap_step62_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102528258441_f85583ef","trade_count":187,"profit_factor":1.6195866594933024,"total_return_pct":5.086267802803064,"win_rate":0.5508021390374331,"max_drawdown_pct":1.2717965470897303,"sharpe_ratio":1.1327429527860058,"monthly_win_rate":0.64,"equity_curve_r_squared":0.7645174872600673,"avg_gross_exposure_pct":2.1004912456069564,"avg_net_exposure_pct":-0.671173830932749,"days_in_market_pct":25.46045503791983},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102534670418_f85583ef","trade_count":26,"profit_factor":4.640144626555104,"total_return_pct":1.7785589226570302,"win_rate":0.6923076923076923,"max_drawdown_pct":0.394474954823559,"sharpe_ratio":4.453025001679815,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5596638198344033,"avg_gross_exposure_pct":3.5028084000751822,"avg_net_exposure_pct":-2.028975630946834,"days_in_market_pct":49.122807017543856},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102539620352_f85583ef","trade_count":20,"profit_factor":3.693559917731055,"total_return_pct":0.9821623910714115,"win_rate":0.8,"max_drawdown_pct":0.23230116536263104,"sharpe_ratio":3.3957804338520745,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.9033229833419024,"avg_gross_exposure_pct":2.4512706589430846,"avg_net_exposure_pct":-1.4631851279456756,"days_in_market_pct":48.93617021276596}},"sqs_score":50.9,"sqs_breakdown":{"valid_quality":81.7,"test_quality":79.2,"floor_quality":79.2,"gap_quality":100.0},"sqs_v2_score":87.7,"sqs_v2_breakdown":{"profitability":83.9,"risk":100.0,"consistency":95.8,"robustness":55.6,"capital_efficiency":86.1},"promotion_score":88.9,"promotion_breakdown":{"valid_quality":89.9,"test_quality":87.7,"floor_quality":87.7},"unified_score":50.9,"unified_breakdown":{"valid_quality":81.7,"test_quality":79.2,"floor_quality":79.2,"gap_quality":100.0},"verdict":"better","verdict_reasoning":"This matched step62 on valid/test while lifting train from +5.01% to +5.09%. It is a cleaner version of the filtered short-sleeve branch with no observable downside so far.","next_direction":"Use step66 as the balanced return-first branch; only test further changes if they can raise test above +1.0% without giving back the train lift.","tags":["pead","midcap","step66","short","core","macro","block","crashcap","gap10","longtrend12","sdlong25","max4","acsgap10","react12"]} {"entry_id":"IMP-0061","timestamp":"2026-03-17T10:26:25.840092+00:00","experiment_name":"pead_midcap_step67_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10_react14","hypothesis":"A stricter 14% downside reaction requirement may further improve the filtered after-close short sleeve by keeping only the sharpest downside continuation setups.","config_delta":{"base_experiment":"pead_midcap_step66_short_core_macro_block_crashcap_gap10_longtrend12_sdlong25_max4_acsgap10_react12","changes":{}},"results":{"train":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102528258779_fbf8df06","trade_count":176,"profit_factor":1.72971812082782,"total_return_pct":5.315512807515508,"win_rate":0.5625,"max_drawdown_pct":1.1823507388022194,"sharpe_ratio":1.1862508329604826,"monthly_win_rate":0.625,"equity_curve_r_squared":0.7409760880151399,"avg_gross_exposure_pct":1.9641530768509556,"avg_net_exposure_pct":-0.5086575725921745,"days_in_market_pct":24.918743228602384},"valid":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102534670454_fbf8df06","trade_count":25,"profit_factor":5.331499198553463,"total_return_pct":1.8247351197415846,"win_rate":0.72,"max_drawdown_pct":0.480176430930607,"sharpe_ratio":4.44451943654,"monthly_win_rate":1.0,"equity_curve_r_squared":0.5922580595870112,"avg_gross_exposure_pct":3.1678311806010018,"avg_net_exposure_pct":-1.6948561495104018,"days_in_market_pct":47.368421052631575},"test":{"run_id":"bt_baseline_swing_v1_midcap-filte_20260317102539620462_fbf8df06","trade_count":19,"profit_factor":3.6038727896341176,"total_return_pct":0.9494594526291912,"win_rate":0.7894736842105263,"max_drawdown_pct":0.23230116536263104,"sharpe_ratio":3.2438715317612528,"monthly_win_rate":0.6666666666666666,"equity_curve_r_squared":0.8958519994688269,"avg_gross_exposure_pct":1.9049388001836767,"avg_net_exposure_pct":-0.9171395725318859,"days_in_market_pct":38.297872340425535}},"sqs_score":38.2,"sqs_breakdown":{"valid_quality":82.1,"test_quality":57.7,"floor_quality":57.7,"gap_quality":35.3},"sqs_v2_score":44.4,"sqs_v2_breakdown":{"profitability":83.8,"risk":100.0,"consistency":95.8,"robustness":55.0,"capital_efficiency":98.1},"promotion_score":69.5,"promotion_breakdown":{"valid_quality":90.1,"test_quality":44.4,"floor_quality":44.4},"unified_score":38.2,"unified_breakdown":{"valid_quality":82.1,"test_quality":57.7,"floor_quality":57.7,"gap_quality":35.3},"verdict":"neutral","verdict_reasoning":"This pushed train to +5.32% and lifted valid slightly, but test slipped back to +0.95%. It is a stronger train-focused branch, not a clear overall winner versus step66.","next_direction":"Favor step66 for balance; step67 is only useful if we optimize explicitly for train-heavy return.","tags":["pead","midcap","step67","short","core","macro","block","crashcap","gap10","longtrend12","sdlong25","max4","acsgap10","react14"]}