Procházet zdrojové kódy

Revalidate high frequency and fusion candidates

lxy před 2 týdny
rodič
revize
cdcd89216e

+ 97 - 0
reports/eth-exploration/long-short-fusion-recent-trigger-evidence-components.csv

@@ -0,0 +1,97 @@
+name,window,component,component_weight,active_days,contribution_days,entry_events,exit_events,latest_event_time
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,long_rotation_riskoff00,1.15,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,long_rotation_riskoff00,1.15,15,15,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,long_rotation_riskoff00,1.15,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,long_rotation_riskoff00,1.15,15,15,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,long_rotation_riskoff00,1.12,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,long_rotation_riskoff00,1.12,15,15,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,long_rotation_riskoff00,1.12,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,long_rotation_riskoff00,1.12,15,15,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,long_rotation_riskoff00,1.1,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,long_rotation_riskoff00,1.1,15,15,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,long_rotation_riskoff00,1.1,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,long_rotation_riskoff00,1.1,15,15,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,long_rotation_riskoff00,1.08,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,long_rotation_riskoff00,1.08,15,15,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,30d,long_rotation_riskoff00,1.15,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,30d,btc_4h_vol_short_gated,0.04,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,14d,long_rotation_riskoff00,1.15,15,15,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,14d,btc_4h_vol_short_gated,0.04,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,long_rotation_riskoff00,1.08,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,long_rotation_riskoff00,1.08,15,15,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,btc_4h_vol_short,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,30d,long_rotation_riskoff00,1.15,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,30d,btc_4h_vol_short,0.04,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,14d,long_rotation_riskoff00,1.15,15,15,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,14d,btc_4h_vol_short,0.04,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,30d,long_rotation_riskoff00,1.18,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,30d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,30d,btc_4h_vol_short_gated,0.03,0,0,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,14d,long_rotation_riskoff00,1.18,15,15,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,14d,btc_risk_short,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,14d,btc_4h_vol_short_gated,0.03,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,long_rotation_riskoff00,1.15,27,27,1,0,2026-04-23 00:00:00+00:00
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_risk_short,0.1,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,30d,btc_4h_vol_short_gated,0.06,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,long_rotation_riskoff00,1.15,15,15,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_risk_short,0.1,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,eth_4h_vol_short_gated,0.12,0,0,0,0,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,14d,btc_4h_vol_short_gated,0.06,0,0,0,0,

+ 373 - 0
reports/eth-exploration/long-short-fusion-recent-trigger-evidence-daily.csv

@@ -0,0 +1,373 @@
+name,date,fusion_daily_return,fusion_target_changed,active_component_count,contributing_component_count,long_rotation_riskoff00_active,long_rotation_riskoff00_contribution,btc_risk_short_active,btc_risk_short_contribution,eth_4h_vol_short_gated_active,eth_4h_vol_short_gated_contribution,btc_4h_vol_short_gated_active,btc_4h_vol_short_gated_contribution,btc_4h_vol_short_active,btc_4h_vol_short_contribution
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-23,-0.004579775926834017,True,1,1,True,-0.004579775926834017,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-24,-0.003635508126866693,False,1,1,True,-0.003635508126866693,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-25,0.0009721384332130211,False,1,1,True,0.0009721384332130211,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-26,0.007478246126140686,False,1,1,True,0.007478246126140686,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-27,-0.00947352607748082,False,1,1,True,-0.00947352607748082,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-28,-0.004208710365785062,False,1,1,True,-0.004208710365785062,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-29,-0.004901377561362396,False,1,1,True,-0.004901377561362396,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-30,0.0020818388808532705,False,1,1,True,0.0020818388808532705,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-01,0.0089009534713402,False,1,1,True,0.0089009534713402,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-02,0.003327106680855229,False,1,1,True,0.003327106680855229,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-03,0.00021328202533393845,False,1,1,True,0.00021328202533393845,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-04,0.005875116405271097,False,1,1,True,0.005875116405271097,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-05,0.004116657453055161,False,1,1,True,0.004116657453055161,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-06,0.0005593388552416977,False,1,1,True,0.0005593388552416977,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-07,-0.00924432807263354,False,1,1,True,-0.00924432807263354,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-08,0.001969778282507306,False,1,1,True,0.001969778282507306,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-09,0.003073069385686322,False,1,1,True,0.003073069385686322,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-10,0.008367135354411092,False,1,1,True,0.008367135354411092,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-11,-0.004147862791404488,False,1,1,True,-0.004147862791404488,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-12,-0.009276876539384209,False,1,1,True,-0.009276876539384209,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-13,-0.004651168012632522,False,1,1,True,-0.004651168012632522,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-14,0.009538066783634856,False,1,1,True,0.009538066783634856,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-15,-0.010520011321835075,False,1,1,True,-0.010520011321835075,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-16,-0.005331463232955014,False,1,1,True,-0.005331463232955014,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-17,-0.0038119328751768876,False,1,1,True,-0.0038119328751768876,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-18,-0.002476768644798793,False,1,1,True,-0.002476768644798793,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,0.0010041239525074852,False,1,1,True,0.0010041239525074852,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-23,-0.004579775926834017,True,1,1,True,-0.004579775926834017,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-24,-0.003635508126866693,False,1,1,True,-0.003635508126866693,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-25,0.0009721384332130211,False,1,1,True,0.0009721384332130211,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-26,0.007478246126140686,False,1,1,True,0.007478246126140686,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-27,-0.00947352607748082,False,1,1,True,-0.00947352607748082,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-28,-0.004208710365785062,False,1,1,True,-0.004208710365785062,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-29,-0.004901377561362396,False,1,1,True,-0.004901377561362396,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-30,0.0020818388808532705,False,1,1,True,0.0020818388808532705,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-01,0.0089009534713402,False,1,1,True,0.0089009534713402,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-02,0.003327106680855229,False,1,1,True,0.003327106680855229,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-03,0.00021328202533393845,False,1,1,True,0.00021328202533393845,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-04,0.005875116405271097,False,1,1,True,0.005875116405271097,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-05,0.004116657453055161,False,1,1,True,0.004116657453055161,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-06,0.0005593388552416977,False,1,1,True,0.0005593388552416977,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-07,-0.00924432807263354,False,1,1,True,-0.00924432807263354,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-08,0.001969778282507306,False,1,1,True,0.001969778282507306,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-09,0.003073069385686322,False,1,1,True,0.003073069385686322,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-10,0.008367135354411092,False,1,1,True,0.008367135354411092,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-11,-0.004147862791404488,False,1,1,True,-0.004147862791404488,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-12,-0.009276876539384209,False,1,1,True,-0.009276876539384209,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-13,-0.004651168012632522,False,1,1,True,-0.004651168012632522,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-14,0.009538066783634856,False,1,1,True,0.009538066783634856,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-15,-0.010520011321835075,False,1,1,True,-0.010520011321835075,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-16,-0.005331463232955014,False,1,1,True,-0.005331463232955014,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-17,-0.0038119328751768876,False,1,1,True,-0.0038119328751768876,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-18,-0.002476768644798793,False,1,1,True,-0.002476768644798793,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,0.0010041239525074852,False,1,1,True,0.0010041239525074852,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-23,-0.0044603035113513914,True,1,1,True,-0.0044603035113513914,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-24,-0.003540668784426693,False,1,1,True,-0.003540668784426693,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-25,0.0009467783001726816,False,1,1,True,0.0009467783001726816,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-26,0.007283161444589191,False,1,1,True,0.007283161444589191,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-27,-0.009226390614590017,False,1,1,True,-0.009226390614590017,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-28,-0.004098917921460235,False,1,1,True,-0.004098917921460235,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-29,-0.004773515538022508,False,1,1,True,-0.004773515538022508,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-30,0.0020275300404831854,False,1,1,True,0.0020275300404831854,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-01,0.008668754685131327,False,1,1,True,0.008668754685131327,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-02,0.0032403125935285717,False,1,1,True,0.0032403125935285717,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-03,0.00020771814641218358,False,1,1,True,0.00020771814641218358,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-04,0.005721852499046634,False,1,1,True,0.005721852499046634,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-05,0.004009266389062419,False,1,1,True,0.004009266389062419,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-06,0.0005447474068440883,False,1,1,True,0.0005447474068440883,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-07,-0.009003171688130057,False,1,1,True,-0.009003171688130057,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-08,0.0019183927620940724,False,1,1,True,0.0019183927620940724,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-09,0.002992902358233636,False,1,1,True,0.002992902358233636,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-10,0.008148862258209065,False,1,1,True,0.008148862258209065,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-11,-0.00403965767510698,False,1,1,True,-0.00403965767510698,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-12,-0.009034871064443754,False,1,1,True,-0.009034871064443754,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-13,-0.004529833194911675,False,1,1,True,-0.004529833194911675,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-14,0.009289247650148732,False,1,1,True,0.009289247650148732,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-15,-0.010245576243874163,False,1,1,True,-0.010245576243874163,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-16,-0.0051923815833996665,False,1,1,True,-0.0051923815833996665,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-17,-0.0037124911479983606,False,1,1,True,-0.0037124911479983606,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-18,-0.002412157288847521,False,1,1,True,-0.002412157288847521,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,0.0009779294146159856,False,1,1,True,0.0009779294146159856,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-23,-0.0044603035113513914,True,1,1,True,-0.0044603035113513914,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-24,-0.003540668784426693,False,1,1,True,-0.003540668784426693,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-25,0.0009467783001726816,False,1,1,True,0.0009467783001726816,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-26,0.007283161444589191,False,1,1,True,0.007283161444589191,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-27,-0.009226390614590017,False,1,1,True,-0.009226390614590017,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-28,-0.004098917921460235,False,1,1,True,-0.004098917921460235,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-29,-0.004773515538022508,False,1,1,True,-0.004773515538022508,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-30,0.0020275300404831854,False,1,1,True,0.0020275300404831854,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-01,0.008668754685131327,False,1,1,True,0.008668754685131327,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-02,0.0032403125935285717,False,1,1,True,0.0032403125935285717,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-03,0.00020771814641218358,False,1,1,True,0.00020771814641218358,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-04,0.005721852499046634,False,1,1,True,0.005721852499046634,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-05,0.004009266389062419,False,1,1,True,0.004009266389062419,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-06,0.0005447474068440883,False,1,1,True,0.0005447474068440883,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-07,-0.009003171688130057,False,1,1,True,-0.009003171688130057,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-08,0.0019183927620940724,False,1,1,True,0.0019183927620940724,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-09,0.002992902358233636,False,1,1,True,0.002992902358233636,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-10,0.008148862258209065,False,1,1,True,0.008148862258209065,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-11,-0.00403965767510698,False,1,1,True,-0.00403965767510698,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-12,-0.009034871064443754,False,1,1,True,-0.009034871064443754,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-13,-0.004529833194911675,False,1,1,True,-0.004529833194911675,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-14,0.009289247650148732,False,1,1,True,0.009289247650148732,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-15,-0.010245576243874163,False,1,1,True,-0.010245576243874163,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-16,-0.0051923815833996665,False,1,1,True,-0.0051923815833996665,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-17,-0.0037124911479983606,False,1,1,True,-0.0037124911479983606,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-18,-0.002412157288847521,False,1,1,True,-0.002412157288847521,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,0.0009779294146159856,False,1,1,True,0.0009779294146159856,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-23,-0.004380655234362974,True,1,1,True,-0.004380655234362974,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-24,-0.0034774425561333593,False,1,1,True,-0.0034774425561333593,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-25,0.0009298715448124551,False,1,1,True,0.0009298715448124551,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-26,0.007153104990221527,False,1,1,True,0.007153104990221527,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-27,-0.009061633639329481,False,1,1,True,-0.009061633639329481,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-28,-0.004025722958577016,False,1,1,True,-0.004025722958577016,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-29,-0.00468827418912925,False,1,1,True,-0.00468827418912925,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-30,0.0019913241469031286,False,1,1,True,0.0019913241469031286,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-01,0.00851395549432541,False,1,1,True,0.00851395549432541,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-02,0.003182449868644133,False,1,1,True,0.003182449868644133,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-03,0.0002040088937976803,False,1,1,True,0.0002040088937976803,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-04,0.005619676561563658,False,1,1,True,0.005619676561563658,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-05,0.003937672346400589,False,1,1,True,0.003937672346400589,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-06,0.0005350197745790154,False,1,1,True,0.0005350197745790154,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-07,-0.008842400765127734,False,1,1,True,-0.008842400765127734,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-08,0.0018841357484852496,False,1,1,True,0.0018841357484852496,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-09,0.002939457673265178,False,1,1,True,0.002939457673265178,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-10,0.008003346860741046,False,1,1,True,0.008003346860741046,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-11,-0.003967520930908641,False,1,1,True,-0.003967520930908641,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-12,-0.008873534081150115,False,1,1,True,-0.008873534081150115,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-13,-0.004448943316431109,False,1,1,True,-0.004448943316431109,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-14,0.009123368227824648,False,1,1,True,0.009123368227824648,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-15,-0.010062619525233553,False,1,1,True,-0.010062619525233553,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-16,-0.0050996604836961,False,1,1,True,-0.0050996604836961,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-17,-0.0036461966632126753,False,1,1,True,-0.0036461966632126753,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-18,-0.0023690830515466724,False,1,1,True,-0.0023690830515466724,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,0.000960466389354986,False,1,1,True,0.000960466389354986,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-23,-0.004380655234362974,True,1,1,True,-0.004380655234362974,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-24,-0.0034774425561333593,False,1,1,True,-0.0034774425561333593,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-25,0.0009298715448124551,False,1,1,True,0.0009298715448124551,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-26,0.007153104990221527,False,1,1,True,0.007153104990221527,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-27,-0.009061633639329481,False,1,1,True,-0.009061633639329481,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-28,-0.004025722958577016,False,1,1,True,-0.004025722958577016,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-29,-0.00468827418912925,False,1,1,True,-0.00468827418912925,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-30,0.0019913241469031286,False,1,1,True,0.0019913241469031286,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-01,0.00851395549432541,False,1,1,True,0.00851395549432541,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-02,0.003182449868644133,False,1,1,True,0.003182449868644133,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-03,0.0002040088937976803,False,1,1,True,0.0002040088937976803,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-04,0.005619676561563658,False,1,1,True,0.005619676561563658,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-05,0.003937672346400589,False,1,1,True,0.003937672346400589,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-06,0.0005350197745790154,False,1,1,True,0.0005350197745790154,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-07,-0.008842400765127734,False,1,1,True,-0.008842400765127734,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-08,0.0018841357484852496,False,1,1,True,0.0018841357484852496,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-09,0.002939457673265178,False,1,1,True,0.002939457673265178,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-10,0.008003346860741046,False,1,1,True,0.008003346860741046,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-11,-0.003967520930908641,False,1,1,True,-0.003967520930908641,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-12,-0.008873534081150115,False,1,1,True,-0.008873534081150115,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-13,-0.004448943316431109,False,1,1,True,-0.004448943316431109,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-14,0.009123368227824648,False,1,1,True,0.009123368227824648,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-15,-0.010062619525233553,False,1,1,True,-0.010062619525233553,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-16,-0.0050996604836961,False,1,1,True,-0.0050996604836961,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-17,-0.0036461966632126753,False,1,1,True,-0.0036461966632126753,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-18,-0.0023690830515466724,False,1,1,True,-0.0023690830515466724,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,0.000960466389354986,False,1,1,True,0.000960466389354986,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-23,-0.004301006957374556,True,1,1,True,-0.004301006957374556,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-24,-0.0034142163278400254,False,1,1,True,-0.0034142163278400254,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-25,0.0009129647894522287,False,1,1,True,0.0009129647894522287,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-26,0.007023048535853863,False,1,1,True,0.007023048535853863,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-27,-0.008896876664068945,False,1,1,True,-0.008896876664068945,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-28,-0.003952527995693798,False,1,1,True,-0.003952527995693798,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-29,-0.00460303284023599,False,1,1,True,-0.00460303284023599,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-30,0.0019551182533230718,False,1,1,True,0.0019551182533230718,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-01,0.008359156303519494,False,1,1,True,0.008359156303519494,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-02,0.003124587143759694,False,1,1,True,0.003124587143759694,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-03,0.000200299641183177,False,1,1,True,0.000200299641183177,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-04,0.005517500624080683,False,1,1,True,0.005517500624080683,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-05,0.0038660783037387605,False,1,1,True,0.0038660783037387605,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-06,0.0005252921423139423,False,1,1,True,0.0005252921423139423,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-07,-0.008681629842125413,False,1,1,True,-0.008681629842125413,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-08,0.0018498787348764268,False,1,1,True,0.0018498787348764268,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-09,0.0028860129882967204,False,1,1,True,0.0028860129882967204,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-10,0.007857831463273027,False,1,1,True,0.007857831463273027,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-11,-0.0038953841867103026,False,1,1,True,-0.0038953841867103026,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-12,-0.008712197097856476,False,1,1,True,-0.008712197097856476,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-13,-0.004368053437950543,False,1,1,True,-0.004368053437950543,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-14,0.008957488805500562,False,1,1,True,0.008957488805500562,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-15,-0.009879662806592943,False,1,1,True,-0.009879662806592943,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-16,-0.005006939383992535,False,1,1,True,-0.005006939383992535,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-17,-0.0035799021784269905,False,1,1,True,-0.0035799021784269905,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-18,-0.0023260088142458236,False,1,1,True,-0.0023260088142458236,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,0.0009430033640939862,False,1,1,True,0.0009430033640939862,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-23,-0.004579775926834017,True,1,1,True,-0.004579775926834017,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-24,-0.003635508126866693,False,1,1,True,-0.003635508126866693,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-25,0.0009721384332130211,False,1,1,True,0.0009721384332130211,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-26,0.007478246126140686,False,1,1,True,0.007478246126140686,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-27,-0.00947352607748082,False,1,1,True,-0.00947352607748082,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-28,-0.004208710365785062,False,1,1,True,-0.004208710365785062,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-29,-0.004901377561362396,False,1,1,True,-0.004901377561362396,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-04-30,0.0020818388808532705,False,1,1,True,0.0020818388808532705,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-01,0.0089009534713402,False,1,1,True,0.0089009534713402,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-02,0.003327106680855229,False,1,1,True,0.003327106680855229,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-03,0.00021328202533393845,False,1,1,True,0.00021328202533393845,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-04,0.005875116405271097,False,1,1,True,0.005875116405271097,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-05,0.004116657453055161,False,1,1,True,0.004116657453055161,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-06,0.0005593388552416977,False,1,1,True,0.0005593388552416977,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-07,-0.00924432807263354,False,1,1,True,-0.00924432807263354,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-08,0.001969778282507306,False,1,1,True,0.001969778282507306,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-09,0.003073069385686322,False,1,1,True,0.003073069385686322,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-10,0.008367135354411092,False,1,1,True,0.008367135354411092,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-11,-0.004147862791404488,False,1,1,True,-0.004147862791404488,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-12,-0.009276876539384209,False,1,1,True,-0.009276876539384209,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-13,-0.004651168012632522,False,1,1,True,-0.004651168012632522,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-14,0.009538066783634856,False,1,1,True,0.009538066783634856,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-15,-0.010520011321835075,False,1,1,True,-0.010520011321835075,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-16,-0.005331463232955014,False,1,1,True,-0.005331463232955014,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-17,-0.0038119328751768876,False,1,1,True,-0.0038119328751768876,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-18,-0.002476768644798793,False,1,1,True,-0.002476768644798793,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-19,0.0010041239525074852,False,1,1,True,0.0010041239525074852,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-23,-0.004301006957374556,True,1,1,True,-0.004301006957374556,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-24,-0.0034142163278400254,False,1,1,True,-0.0034142163278400254,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-25,0.0009129647894522287,False,1,1,True,0.0009129647894522287,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-26,0.007023048535853863,False,1,1,True,0.007023048535853863,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-27,-0.008896876664068945,False,1,1,True,-0.008896876664068945,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-28,-0.003952527995693798,False,1,1,True,-0.003952527995693798,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-29,-0.00460303284023599,False,1,1,True,-0.00460303284023599,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-04-30,0.0019551182533230718,False,1,1,True,0.0019551182533230718,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-01,0.008359156303519494,False,1,1,True,0.008359156303519494,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-02,0.003124587143759694,False,1,1,True,0.003124587143759694,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-03,0.000200299641183177,False,1,1,True,0.000200299641183177,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-04,0.005517500624080683,False,1,1,True,0.005517500624080683,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-05,0.0038660783037387605,False,1,1,True,0.0038660783037387605,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-06,0.0005252921423139423,False,1,1,True,0.0005252921423139423,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-07,-0.008681629842125413,False,1,1,True,-0.008681629842125413,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-08,0.0018498787348764268,False,1,1,True,0.0018498787348764268,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-09,0.0028860129882967204,False,1,1,True,0.0028860129882967204,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-10,0.007857831463273027,False,1,1,True,0.007857831463273027,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-11,-0.0038953841867103026,False,1,1,True,-0.0038953841867103026,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-12,-0.008712197097856476,False,1,1,True,-0.008712197097856476,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-13,-0.004368053437950543,False,1,1,True,-0.004368053437950543,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-14,0.008957488805500562,False,1,1,True,0.008957488805500562,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-15,-0.009879662806592943,False,1,1,True,-0.009879662806592943,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-16,-0.005006939383992535,False,1,1,True,-0.005006939383992535,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-17,-0.0035799021784269905,False,1,1,True,-0.0035799021784269905,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-18,-0.0023260088142458236,False,1,1,True,-0.0023260088142458236,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,0.0009430033640939862,False,1,1,True,0.0009430033640939862,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-23,-0.004579775926834017,True,1,1,True,-0.004579775926834017,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-24,-0.003635508126866693,False,1,1,True,-0.003635508126866693,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-25,0.0009721384332130211,False,1,1,True,0.0009721384332130211,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-26,0.007478246126140686,False,1,1,True,0.007478246126140686,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-27,-0.00947352607748082,False,1,1,True,-0.00947352607748082,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-28,-0.004208710365785062,False,1,1,True,-0.004208710365785062,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-29,-0.004901377561362396,False,1,1,True,-0.004901377561362396,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-04-30,0.0020818388808532705,False,1,1,True,0.0020818388808532705,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-01,0.0089009534713402,False,1,1,True,0.0089009534713402,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-02,0.003327106680855229,False,1,1,True,0.003327106680855229,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-03,0.00021328202533393845,False,1,1,True,0.00021328202533393845,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-04,0.005875116405271097,False,1,1,True,0.005875116405271097,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-05,0.004116657453055161,False,1,1,True,0.004116657453055161,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-06,0.0005593388552416977,False,1,1,True,0.0005593388552416977,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-07,-0.00924432807263354,False,1,1,True,-0.00924432807263354,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-08,0.001969778282507306,False,1,1,True,0.001969778282507306,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-09,0.003073069385686322,False,1,1,True,0.003073069385686322,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-10,0.008367135354411092,False,1,1,True,0.008367135354411092,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-11,-0.004147862791404488,False,1,1,True,-0.004147862791404488,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-12,-0.009276876539384209,False,1,1,True,-0.009276876539384209,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-13,-0.004651168012632522,False,1,1,True,-0.004651168012632522,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-14,0.009538066783634856,False,1,1,True,0.009538066783634856,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-15,-0.010520011321835075,False,1,1,True,-0.010520011321835075,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-16,-0.005331463232955014,False,1,1,True,-0.005331463232955014,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-17,-0.0038119328751768876,False,1,1,True,-0.0038119328751768876,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-18,-0.002476768644798793,False,1,1,True,-0.002476768644798793,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-19,0.0010041239525074852,False,1,1,True,0.0010041239525074852,False,0.0,False,0.0,,,False,0.0
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-23,-0.004699248342316644,True,1,1,True,-0.004699248342316644,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-24,-0.003730347469306694,False,1,1,True,-0.003730347469306694,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-25,0.000997498566253361,False,1,1,True,0.000997498566253361,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-26,0.007673330807692182,False,1,1,True,0.007673330807692182,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-27,-0.009720661540371624,False,1,1,True,-0.009720661540371624,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-28,-0.00431850281010989,False,1,1,True,-0.00431850281010989,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-29,-0.005029239584702285,False,1,1,True,-0.005029239584702285,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-04-30,0.002136147721223356,False,1,1,True,0.002136147721223356,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-01,0.009133152257549074,False,1,1,True,0.009133152257549074,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-02,0.0034139007681818876,False,1,1,True,0.0034139007681818876,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-03,0.0002188459042556934,False,1,1,True,0.0002188459042556934,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-04,0.00602838031149556,False,1,1,True,0.00602838031149556,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-05,0.004224048517047905,False,1,1,True,0.004224048517047905,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-06,0.0005739303036393072,False,1,1,True,0.0005739303036393072,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-07,-0.009485484457137023,False,1,1,True,-0.009485484457137023,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-08,0.0020211638029205403,False,1,1,True,0.0020211638029205403,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-09,0.003153236413139009,False,1,1,True,0.003153236413139009,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-10,0.00858540845061312,False,1,1,True,0.00858540845061312,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-11,-0.0042560679077019966,False,1,1,True,-0.0042560679077019966,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-12,-0.009518882014324668,False,1,1,True,-0.009518882014324668,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-13,-0.004772502830353371,False,1,1,True,-0.004772502830353371,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-14,0.009786885917120984,False,1,1,True,0.009786885917120984,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-15,-0.01079444639979599,False,1,1,True,-0.01079444639979599,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-16,-0.005470544882510362,False,1,1,True,-0.005470544882510362,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-17,-0.003911374602355415,False,1,1,True,-0.003911374602355415,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-18,-0.0025413800007500664,False,1,1,True,-0.0025413800007500664,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-19,0.0010303184903989848,False,1,1,True,0.0010303184903989848,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-19,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-20,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-21,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-22,0.0,False,0,0,False,0.0,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-23,-0.004579775926834017,True,1,1,True,-0.004579775926834017,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-24,-0.003635508126866693,False,1,1,True,-0.003635508126866693,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-25,0.0009721384332130211,False,1,1,True,0.0009721384332130211,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-26,0.007478246126140686,False,1,1,True,0.007478246126140686,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-27,-0.00947352607748082,False,1,1,True,-0.00947352607748082,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-28,-0.004208710365785062,False,1,1,True,-0.004208710365785062,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-29,-0.004901377561362396,False,1,1,True,-0.004901377561362396,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-04-30,0.0020818388808532705,False,1,1,True,0.0020818388808532705,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-01,0.0089009534713402,False,1,1,True,0.0089009534713402,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-02,0.003327106680855229,False,1,1,True,0.003327106680855229,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-03,0.00021328202533393845,False,1,1,True,0.00021328202533393845,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-04,0.005875116405271097,False,1,1,True,0.005875116405271097,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-05,0.004116657453055161,False,1,1,True,0.004116657453055161,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-06,0.0005593388552416977,False,1,1,True,0.0005593388552416977,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-07,-0.00924432807263354,False,1,1,True,-0.00924432807263354,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-08,0.001969778282507306,False,1,1,True,0.001969778282507306,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-09,0.003073069385686322,False,1,1,True,0.003073069385686322,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-10,0.008367135354411092,False,1,1,True,0.008367135354411092,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-11,-0.004147862791404488,False,1,1,True,-0.004147862791404488,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-12,-0.009276876539384209,False,1,1,True,-0.009276876539384209,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-13,-0.004651168012632522,False,1,1,True,-0.004651168012632522,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-14,0.009538066783634856,False,1,1,True,0.009538066783634856,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-15,-0.010520011321835075,False,1,1,True,-0.010520011321835075,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-16,-0.005331463232955014,False,1,1,True,-0.005331463232955014,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-17,-0.0038119328751768876,False,1,1,True,-0.0038119328751768876,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-18,-0.002476768644798793,False,1,1,True,-0.002476768644798793,False,0.0,False,0.0,False,0.0,,
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,0.0010041239525074852,False,1,1,True,0.0010041239525074852,False,0.0,False,0.0,False,0.0,,

+ 13 - 0
reports/eth-exploration/long-short-fusion-recent-trigger-evidence.csv

@@ -0,0 +1,13 @@
+name,last_date,included_components,prior_report_trades_30d,prior_report_trades_14d,prior_report_return_30d,prior_report_return_14d,recomputed_return_30d,component_entry_events_30d,component_exit_events_30d,fusion_target_change_days_30d,component_contribution_days_30d,recomputed_return_14d,component_entry_events_14d,component_exit_events_14d,fusion_target_change_days_14d,component_contribution_days_14d,recent_activity_found
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.01905624420063079,1,0,1,27,-0.024906908197962707,0,0,0,15,True
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,"long_rotation_riskoff00,btc_risk_short,btc_4h_vol_short,eth_4h_vol_short_gated",0,0,0.0,0.0,-0.019056244200631012,1,0,1,27,-0.024906908197962707,0,0,0,15,True
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.018552343470344845,1,0,1,27,-0.024258318966908443,0,0,0,15,True
+fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,"long_rotation_riskoff00,btc_risk_short,btc_4h_vol_short,eth_4h_vol_short_gated",0,0,0.0,0.0,-0.01855234347034518,1,0,1,27,-0.024258318966908998,0,0,0,15,True
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.018216606357494225,1,0,1,27,-0.023825889143007206,0,0,0,15,True
+fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,"long_rotation_riskoff00,btc_risk_short,btc_4h_vol_short,eth_4h_vol_short_gated",0,0,0.0,0.0,-0.018216606357494114,1,0,1,27,-0.023825889143006984,0,0,0,15,True
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.01788102687166715,1,0,1,27,-0.023393429847535452,0,0,0,15,True
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.019056244200630568,1,0,1,27,-0.024906908197962263,0,0,0,15,True
+fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00,2026-05-19,"long_rotation_riskoff00,btc_risk_short,btc_4h_vol_short,eth_4h_vol_short_gated",0,0,0.0,0.0,-0.017881026871667816,1,0,1,27,-0.023393429847535452,0,0,0,15,True
+fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00,2026-05-19,"long_rotation_riskoff00,btc_risk_short,btc_4h_vol_short,eth_4h_vol_short_gated",0,0,0.0,0.0,-0.01905624420063079,1,0,1,27,-0.024906908197962485,0,0,0,15,True
+fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.01956049833245499,1,0,1,27,-0.025555430486660202,0,0,0,15,True
+fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06,2026-05-19,"long_rotation_riskoff00,btc_risk_short,eth_4h_vol_short_gated,btc_4h_vol_short_gated",0,0,0.0,0.0,-0.019056244200631123,1,0,1,27,-0.024906908197962374,0,0,0,15,True

+ 219 - 0
reports/eth-exploration/long-short-fusion-recent-trigger-evidence.md

@@ -0,0 +1,219 @@
+# Long-Short Fusion Recent Trigger Evidence
+
+Run command: `rtk .venv/bin/python scripts/diagnose_long_short_fusion_recent_triggers.py --years 8.0 --limit 12`
+
+Scope: offline reconstruction from local cached candles and existing reports only. No live executor, deployment, credentials, or order submission path was touched.
+
+Objective: check whether the previous long-short fusion near-miss rows truly had no recent trades, or whether `scripts/explore_eth_bidir_fusion_candidates.py` only filled 30d/14d trigger fields with zero because fusion outputs lacked those fields.
+
+Output files:
+- `reports/eth-exploration/long-short-fusion-recent-trigger-evidence.csv`
+- `reports/eth-exploration/long-short-fusion-recent-trigger-evidence-components.csv`
+- `reports/eth-exploration/long-short-fusion-recent-trigger-evidence-daily.csv`
+- `reports/eth-exploration/long-short-fusion-recent-trigger-evidence.md`
+
+Conclusion: The previous near-miss fusion report did not prove no recent activity; it lacked the required 30d/14d trigger accounting.
+Observer decision: Worth a read-only observer only if it logs component-level activity and target changes; the current search output alone is insufficient.
+
+## Candidate Summary
+
+| name | recomputed_return_30d | recomputed_return_14d | component_entry_events_30d | component_exit_events_30d | component_entry_events_14d | component_exit_events_14d | fusion_target_change_days_30d | fusion_target_change_days_14d | component_contribution_days_30d | component_contribution_days_14d | recent_activity_found |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | -0.0190562 | -0.0249069 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | -0.0190562 | -0.0249069 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | -0.0185523 | -0.0242583 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | -0.0185523 | -0.0242583 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | -0.0182166 | -0.0238259 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | -0.0182166 | -0.0238259 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | -0.017881 | -0.0233934 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | -0.0190562 | -0.0249069 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | -0.017881 | -0.0233934 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | -0.0190562 | -0.0249069 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | -0.0195605 | -0.0255554 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | -0.0190562 | -0.0249069 | 1 | 0 | 0 | 0 | 1 | 0 | 27 | 15 | True |
+
+## Component Evidence
+
+| name | window | component | component_weight | active_days | contribution_days | entry_events | exit_events | latest_event_time |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | long_rotation_riskoff00 | 1.15 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | long_rotation_riskoff00 | 1.15 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | long_rotation_riskoff00 | 1.15 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | long_rotation_riskoff00 | 1.15 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | long_rotation_riskoff00 | 1.12 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | long_rotation_riskoff00 | 1.12 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | long_rotation_riskoff00 | 1.12 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | long_rotation_riskoff00 | 1.12 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | long_rotation_riskoff00 | 1.1 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | long_rotation_riskoff00 | 1.1 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | long_rotation_riskoff00 | 1.1 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | long_rotation_riskoff00 | 1.1 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.10-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | long_rotation_riskoff00 | 1.08 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | long_rotation_riskoff00 | 1.08 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 30d | long_rotation_riskoff00 | 1.15 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 30d | btc_4h_vol_short_gated | 0.04 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 14d | long_rotation_riskoff00 | 1.15 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.04 | 14d | btc_4h_vol_short_gated | 0.04 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | long_rotation_riskoff00 | 1.08 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | long_rotation_riskoff00 | 1.08 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | btc_4h_vol_short | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.08-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 30d | long_rotation_riskoff00 | 1.15 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 30d | btc_4h_vol_short | 0.04 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 14d | long_rotation_riskoff00 | 1.15 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 14d | btc_4h_vol_short | 0.04 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.04-eg0.12-bg0.00 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 30d | long_rotation_riskoff00 | 1.18 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 30d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 30d | btc_4h_vol_short_gated | 0.03 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 14d | long_rotation_riskoff00 | 1.18 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 14d | btc_risk_short | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.18-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.03 | 14d | btc_4h_vol_short_gated | 0.03 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | long_rotation_riskoff00 | 1.15 | 27 | 27 | 1 | 0 | 2026-04-23 00:00:00+00:00 |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_risk_short | 0.1 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 30d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | long_rotation_riskoff00 | 1.15 | 15 | 15 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_risk_short | 0.1 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | eth_4h_vol_short_gated | 0.12 | 0 | 0 | 0 | 0 |  |
+| fusion-lr_riskoff00-l1.15-brs0.10-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 14d | btc_4h_vol_short_gated | 0.06 | 0 | 0 | 0 | 0 |  |
+
+## Recent Daily Evidence
+
+| name | date | fusion_daily_return | fusion_target_changed | active_component_count | contributing_component_count | long_rotation_riskoff00_active | long_rotation_riskoff00_contribution | btc_risk_short_active | btc_risk_short_contribution | eth_4h_vol_short_gated_active | eth_4h_vol_short_gated_contribution | btc_4h_vol_short_gated_active | btc_4h_vol_short_gated_contribution | btc_4h_vol_short_active | btc_4h_vol_short_contribution |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-23 | -0.00457978 | True | 1 | 1 | True | -0.00457978 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-24 | -0.00363551 | False | 1 | 1 | True | -0.00363551 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-25 | 0.000972138 | False | 1 | 1 | True | 0.000972138 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-26 | 0.00747825 | False | 1 | 1 | True | 0.00747825 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-27 | -0.00947353 | False | 1 | 1 | True | -0.00947353 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-28 | -0.00420871 | False | 1 | 1 | True | -0.00420871 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-29 | -0.00490138 | False | 1 | 1 | True | -0.00490138 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-30 | 0.00208184 | False | 1 | 1 | True | 0.00208184 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-01 | 0.00890095 | False | 1 | 1 | True | 0.00890095 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-02 | 0.00332711 | False | 1 | 1 | True | 0.00332711 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-03 | 0.000213282 | False | 1 | 1 | True | 0.000213282 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-04 | 0.00587512 | False | 1 | 1 | True | 0.00587512 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-05 | 0.00411666 | False | 1 | 1 | True | 0.00411666 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-06 | 0.000559339 | False | 1 | 1 | True | 0.000559339 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-07 | -0.00924433 | False | 1 | 1 | True | -0.00924433 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-08 | 0.00196978 | False | 1 | 1 | True | 0.00196978 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-09 | 0.00307307 | False | 1 | 1 | True | 0.00307307 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-10 | 0.00836714 | False | 1 | 1 | True | 0.00836714 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-11 | -0.00414786 | False | 1 | 1 | True | -0.00414786 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-12 | -0.00927688 | False | 1 | 1 | True | -0.00927688 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-13 | -0.00465117 | False | 1 | 1 | True | -0.00465117 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-14 | 0.00953807 | False | 1 | 1 | True | 0.00953807 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-15 | -0.01052 | False | 1 | 1 | True | -0.01052 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-16 | -0.00533146 | False | 1 | 1 | True | -0.00533146 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-17 | -0.00381193 | False | 1 | 1 | True | -0.00381193 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-18 | -0.00247677 | False | 1 | 1 | True | -0.00247677 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-19 | 0.00100412 | False | 1 | 1 | True | 0.00100412 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-23 | -0.00457978 | True | 1 | 1 | True | -0.00457978 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-24 | -0.00363551 | False | 1 | 1 | True | -0.00363551 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-25 | 0.000972138 | False | 1 | 1 | True | 0.000972138 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-26 | 0.00747825 | False | 1 | 1 | True | 0.00747825 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-27 | -0.00947353 | False | 1 | 1 | True | -0.00947353 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-28 | -0.00420871 | False | 1 | 1 | True | -0.00420871 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-29 | -0.00490138 | False | 1 | 1 | True | -0.00490138 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-04-30 | 0.00208184 | False | 1 | 1 | True | 0.00208184 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-01 | 0.00890095 | False | 1 | 1 | True | 0.00890095 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-02 | 0.00332711 | False | 1 | 1 | True | 0.00332711 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-03 | 0.000213282 | False | 1 | 1 | True | 0.000213282 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-04 | 0.00587512 | False | 1 | 1 | True | 0.00587512 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-05 | 0.00411666 | False | 1 | 1 | True | 0.00411666 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-06 | 0.000559339 | False | 1 | 1 | True | 0.000559339 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-07 | -0.00924433 | False | 1 | 1 | True | -0.00924433 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-08 | 0.00196978 | False | 1 | 1 | True | 0.00196978 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-09 | 0.00307307 | False | 1 | 1 | True | 0.00307307 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-10 | 0.00836714 | False | 1 | 1 | True | 0.00836714 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-11 | -0.00414786 | False | 1 | 1 | True | -0.00414786 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-12 | -0.00927688 | False | 1 | 1 | True | -0.00927688 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-13 | -0.00465117 | False | 1 | 1 | True | -0.00465117 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-14 | 0.00953807 | False | 1 | 1 | True | 0.00953807 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-15 | -0.01052 | False | 1 | 1 | True | -0.01052 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-16 | -0.00533146 | False | 1 | 1 | True | -0.00533146 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-17 | -0.00381193 | False | 1 | 1 | True | -0.00381193 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-18 | -0.00247677 | False | 1 | 1 | True | -0.00247677 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.15-brs0.12-eth4hs0.00-btc4hs0.06-eg0.12-bg0.00 | 2026-05-19 | 0.00100412 | False | 1 | 1 | True | 0.00100412 | False | 0 | False | 0 |  |  | False | 0 |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-23 | -0.0044603 | True | 1 | 1 | True | -0.0044603 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-24 | -0.00354067 | False | 1 | 1 | True | -0.00354067 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-25 | 0.000946778 | False | 1 | 1 | True | 0.000946778 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-26 | 0.00728316 | False | 1 | 1 | True | 0.00728316 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-27 | -0.00922639 | False | 1 | 1 | True | -0.00922639 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-28 | -0.00409892 | False | 1 | 1 | True | -0.00409892 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-29 | -0.00477352 | False | 1 | 1 | True | -0.00477352 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-04-30 | 0.00202753 | False | 1 | 1 | True | 0.00202753 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-01 | 0.00866875 | False | 1 | 1 | True | 0.00866875 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-02 | 0.00324031 | False | 1 | 1 | True | 0.00324031 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-03 | 0.000207718 | False | 1 | 1 | True | 0.000207718 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-04 | 0.00572185 | False | 1 | 1 | True | 0.00572185 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-05 | 0.00400927 | False | 1 | 1 | True | 0.00400927 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-06 | 0.000544747 | False | 1 | 1 | True | 0.000544747 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-07 | -0.00900317 | False | 1 | 1 | True | -0.00900317 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-08 | 0.00191839 | False | 1 | 1 | True | 0.00191839 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-09 | 0.0029929 | False | 1 | 1 | True | 0.0029929 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-10 | 0.00814886 | False | 1 | 1 | True | 0.00814886 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-11 | -0.00403966 | False | 1 | 1 | True | -0.00403966 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-12 | -0.00903487 | False | 1 | 1 | True | -0.00903487 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-13 | -0.00452983 | False | 1 | 1 | True | -0.00452983 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-14 | 0.00928925 | False | 1 | 1 | True | 0.00928925 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-15 | -0.0102456 | False | 1 | 1 | True | -0.0102456 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-16 | -0.00519238 | False | 1 | 1 | True | -0.00519238 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-17 | -0.00371249 | False | 1 | 1 | True | -0.00371249 | False | 0 | False | 0 | False | 0 |  |  |
+| fusion-lr_riskoff00-l1.12-brs0.12-eth4hs0.00-btc4hs0.00-eg0.12-bg0.06 | 2026-05-18 | -0.00241216 | False | 1 | 1 | True | -0.00241216 | False | 0 | False | 0 | False | 0 |  |  |

+ 31 - 0
reports/ultrashort/eth-highfreq-short-bidir-revalidation-candidates.csv

@@ -0,0 +1,31 @@
+symbol,bar,family,name,params_json,first_time,last_time,full_total_return,full_annualized_return,full_max_drawdown,full_calmar,full_trades,full_short_trades,full_long_trades,full_profit_factor,full_win_rate,3y_total_return,3y_annualized_return,3y_max_drawdown,3y_calmar,3y_trades,3y_short_trades,3y_long_trades,3y_profit_factor,3y_win_rate,1y_total_return,1y_annualized_return,1y_max_drawdown,1y_calmar,1y_trades,1y_short_trades,1y_long_trades,1y_profit_factor,1y_win_rate,6m_total_return,6m_annualized_return,6m_max_drawdown,6m_calmar,6m_trades,6m_short_trades,6m_long_trades,6m_profit_factor,6m_win_rate,3m_total_return,3m_annualized_return,3m_max_drawdown,3m_calmar,3m_trades,3m_short_trades,3m_long_trades,3m_profit_factor,3m_win_rate,30d_total_return,30d_annualized_return,30d_max_drawdown,30d_calmar,30d_trades,30d_short_trades,30d_long_trades,30d_profit_factor,30d_win_rate,14d_total_return,14d_annualized_return,14d_max_drawdown,14d_calmar,14d_trades,14d_short_trades,14d_long_trades,14d_profit_factor,14d_win_rate,recent_trigger_score,readonly_observe
+ETH-USDT-SWAP,15m,breakdown_short,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12,"{""lookback"":96,""stop"":0.006,""take"":0.012,""hold"":12}",2019-12-26 00:30,2026-05-19 08:30,-0.9981760663135631,-0.6266692842969452,0.9985353446509957,-0.6275884851286625,2210,2210,0,0.8020284014225911,0.32986425339366515,-0.8812095554252265,-0.5081018056289506,0.9174139041792304,-0.5538414049692508,970,970,0,0.8453401346267548,0.3402061855670103,-0.20162951537149643,-0.20162951537149643,0.3940064714597017,-0.5117416336450168,352,352,0,0.971720750593225,0.375,0.054980391541674445,0.11397140124376959,0.28561318351195175,0.3990411081251799,176,176,0,1.0544059482004475,0.39204545454545453,0.16763960504587594,0.8881729822136943,0.171998142875563,5.163852163544979,74,74,0,1.252497498607885,0.43243243243243246,-0.06435643830011162,-0.5548460061279059,0.12543308840504233,-4.423442117092937,19,19,0,0.635515132675228,0.2631578947368421,-0.007956520453662241,-0.18801019970232213,0.05650312634899183,-3.3274300353059445,10,10,0,0.8566905863671753,0.3,152,no
+ETH-USDT-SWAP,15m,breakdown_short,breakdown_short-15m-lookback48-stop0.006-take0.012-hold12,"{""lookback"":48,""stop"":0.006,""take"":0.012,""hold"":12}",2019-12-25 12:30,2026-05-19 08:30,-0.999984296932873,-0.8223193002799891,0.9999856465412629,-0.8223311035755525,3486,3486,0,0.7751633976366489,0.3261617900172117,-0.9816899876158605,-0.7361089919885511,0.9849341433517138,-0.7473687423238116,1552,1552,0,0.8106167790762198,0.3382731958762887,-0.6627415579627212,-0.6627415579627212,0.7142418359316483,-0.9278951814664416,552,552,0,0.8622058700404764,0.3496376811594203,-0.30547113195123443,-0.5205352472181943,0.43807151953658297,-1.1882426133724606,269,269,0,0.908437996789044,0.34944237918215615,0.02106190284900511,0.08924021624395584,0.18663092692579927,0.4781641377124809,113,113,0,1.0439709218864883,0.3805309734513274,-0.09001741156497756,-0.6826275883378323,0.14477129085068013,-4.71521379913582,32,32,0,0.7314776162042558,0.28125,-0.07415385348235881,-0.8658411513928086,0.08658006523631565,-10.000467763907796,16,16,0,0.5059189899174716,0.25,241,no
+ETH-USDT-SWAP,5m,breakdown_short,breakdown_short-5m-lookback96-stop0.006-take0.012-hold12,"{""lookback"":96,""stop"":0.006,""take"":0.012,""hold"":12}",2019-12-25 08:10,2026-05-19 08:35,-0.9999999390510432,-0.9253307578626824,0.9999999411031394,-0.9253308123617623,5864,5864,0,0.763329718485562,0.3388472032742155,-0.9973063804675549,-0.8606114997118353,0.9975103147713651,-0.8627594992930897,2637,2637,0,0.7920973207687737,0.3519150549867273,-0.7027528142176866,-0.7027528142176866,0.7400793372203675,-0.949564160049551,901,901,0,0.8851256942683977,0.3762486126526082,-0.25785568563003536,-0.4519374493285704,0.4969364680555819,-0.9094471393836638,444,444,0,0.951865370170203,0.38963963963963966,-0.30165933656748645,-0.7706488867496565,0.360956843035073,-2.1350166969262165,201,201,0,0.8112896008288879,0.373134328358209,-0.1581510194657253,-0.876874129092015,0.1938169508780866,-4.524238592751263,59,59,0,0.6214434522964836,0.3728813559322034,-0.05117496400226795,-0.7457798539214935,0.11044477491254477,-6.752513683984019,30,30,0,0.7151322520279676,0.43333333333333335,439,no
+ETH-USDT-SWAP,5m,breakdown_short,breakdown_short-5m-lookback48-stop0.006-take0.012-hold12,"{""lookback"":48,""stop"":0.006,""take"":0.012,""hold"":12}",2019-12-25 04:10,2026-05-19 08:35,-0.9999999999902098,-0.9809154282006077,0.9999999999905513,-0.9809154282098761,9225,9225,0,0.7575043781062049,0.33951219512195124,-0.999896904812661,-0.9529789868218252,0.9999007324491448,-0.9530735961034952,4090,4090,0,0.7768908580378416,0.34938875305623474,-0.9427355069199724,-0.9427355069199724,0.947354980276026,-0.99512382005454,1395,1395,0,0.8063164696175203,0.35698924731182796,-0.5926692885343874,-0.8365332804568824,0.6998078404806005,-1.1953756903929287,681,681,0,0.8757871719857737,0.37151248164464024,-0.44019834933143587,-0.9073901866959595,0.49509717891673266,-1.8327516805515223,311,311,0,0.7943775161549594,0.37942122186495175,-0.20855639132213044,-0.9419088851173975,0.23688598572035813,-3.9762119411711963,100,100,0,0.7113063246597383,0.36,-0.0926994169631844,-0.9208386545945425,0.133346068602116,-6.905630321522131,53,53,0,0.7494691484573465,0.41509433962264153,723,no
+ETH-USDT-SWAP,3m,breakdown_short,breakdown_short-3m-lookback96-stop0.006-take0.012-hold12,"{""lookback"":96,""stop"":0.006,""take"":0.012,""hold"":12}",2019-12-25 04:54,2026-05-19 08:39,-0.9999999999972716,-0.9843683840689125,0.9999999999973833,-0.9843683840714883,9427,9427,0,0.7289885851180997,0.3331918956189668,-0.9999977196622821,-0.9867855529855238,0.9999978599049332,-0.9867876648049373,4223,4223,0,0.6663494117878813,0.3260715131423159,-0.9928971655501734,-0.9928971655501734,0.9937485198671223,-0.9991432899773649,1429,1429,0,0.6489001177163453,0.34149755073477955,-0.8355228325884472,-0.9737446077127913,0.8504059317747245,-1.1450350607040918,687,687,0,0.7214397430960816,0.3508005822416303,-0.6176909827708734,-0.9806165792460984,0.6549956520762102,-1.4971344865232805,314,314,0,0.6472661461632919,0.3535031847133758,-0.2722199781611889,-0.9790587993675298,0.3053881499016505,-3.2059488872860107,99,99,0,0.5541065149527207,0.30303030303030304,-0.1316362122177812,-0.9747729851082959,0.16009645836064798,-6.088660518101111,53,53,0,0.5824072650234534,0.3018867924528302,724,no
+ETH-USDT-SWAP,15m,vwap_short,vwap_short-15m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":96,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-26 00:30,2026-05-19 08:30,-0.999999999999998,-0.9949468828632099,0.9999999999999982,-0.9949468828632116,9916,9916,0,0.7273550065177191,0.395421540943929,-0.9999979400931995,-0.987225461421024,0.9999980728918326,-0.98722736391494,3823,3823,0,0.713107394373346,0.4038713052576511,-0.9905150391252561,-0.9905150391252561,0.9910600405328067,-0.9994500823509566,1302,1302,0,0.7064063281114069,0.39400921658986177,-0.9086321367945394,-0.991976524719011,0.9144746091906341,-1.084750210393453,602,602,0,0.6689870266514809,0.38870431893687707,-0.79619063010147,-0.9985309287918075,0.8111353858495868,-1.2310286867166347,310,310,0,0.5848903015610059,0.3580645161290323,-0.28122427008721207,-0.9820021862600921,0.32248260506817056,-3.0451322670644627,67,67,0,0.5020329315249633,0.3880597014925373,-0.06962243771882504,-0.8476293560555183,0.1178515981147865,-7.19234503065401,24,24,0,0.6707294239214756,0.4583333333333333,540,no
+ETH-USDT-SWAP,15m,vwap_short,vwap_short-15m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":48,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 12:30,2026-05-19 08:30,-0.9999999999999997,-0.996176087475174,0.9999999999999997,-0.9961760874751744,10947,10947,0,0.7355849228459215,0.40540787430346215,-0.9999985730702713,-0.9886956554311885,0.9999987033837706,-0.9886969373916835,4403,4403,0,0.7355317706285944,0.41994094935271403,-0.9936359862075446,-0.9936359862075446,0.9940889402563314,-0.9995443525921633,1510,1510,0,0.7176517026710935,0.40794701986754967,-0.8979087104569816,-0.9899642050969782,0.9127260729762728,-1.0846235627616538,707,707,0,0.7227536797662142,0.413012729844413,-0.7046279734538359,-0.9932714838914684,0.7335616751909396,-1.3540394999955914,342,342,0,0.6951439130808461,0.4093567251461988,-0.15069003601357045,-0.8629205562144672,0.23032560035070945,-3.746524723697781,81,81,0,0.7685764114181153,0.49382716049382713,-0.0020648511622791688,-0.052462983669313346,0.07409379325893105,-0.7080617871185805,34,34,0,1.009347929386076,0.5882352941176471,640,no
+ETH-USDT-SWAP,15m,rsi_short,rsi_short-15m-trend96-entry90-exit45-stop0.0075-take0.01-hold12,"{""trend"":96,""entry"":90,""exit"":45,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-26 00:30,2026-05-19 08:30,-1.0,0.0,1.0,0.0,18040,18040,0,0.5826360857207492,0.38215077605321507,-0.9999999941380227,-0.9981864967084325,0.9999999941380227,-0.9981865025597791,8624,8624,0,0.500074932755517,0.3509972170686456,-0.9976845748353311,-0.9976845748353311,0.9977068898370824,-0.9999776337098815,2853,2853,0,0.5262047388887241,0.367683140553803,-0.9573857003002847,-0.9982765600349083,0.9573857003002847,-1.0427109572681086,1463,1463,0,0.499973989591546,0.3547505126452495,-0.7894863723713893,-0.9983223995923488,0.7967259846829267,-1.2530310530660695,732,732,0,0.4298216676962984,0.33879781420765026,-0.39695190606626374,-0.9978737448382532,0.3969519060662638,-2.513840416404693,245,245,0,0.3386994069541882,0.3224489795918367,-0.23972229619655094,-0.999211545507223,0.24780769825683283,-4.032205425965501,132,132,0,0.27451437822380437,0.2878787878787879,1750,no
+ETH-USDT-SWAP,15m,rsi_short,rsi_short-15m-trend192-entry90-exit45-stop0.0075-take0.01-hold12,"{""trend"":192,""entry"":90,""exit"":45,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-27 00:30,2026-05-19 08:30,-1.0,0.0,1.0,0.0,18674,18674,0,0.5766944052378679,0.3879190318089322,-0.9999999974129801,-0.9986189429989085,0.9999999974129801,-0.9986189455823556,8963,8963,0,0.5045981429301992,0.3561307597902488,-0.9961643303659907,-0.9961643303659907,0.9962012967840406,-0.9999628926220342,3009,3009,0,0.5773265175372071,0.38019275506812894,-0.9506278169560047,-0.9976809523521105,0.9515018898605242,-1.0485328121611566,1550,1550,0,0.5409030559166523,0.36258064516129035,-0.7195858537873396,-0.9945630014376928,0.7335220360028718,-1.3558733788793758,729,729,0,0.4926815607043757,0.34705075445816186,-0.45973533082798057,-0.9994418984365044,0.45973533082798057,-2.1739506003084768,292,292,0,0.33456902648618214,0.3047945205479452,-0.30864817049626736,-0.9999338199692847,0.30864817049626736,-3.2397205477081465,152,152,0,0.2201293112261692,0.27631578947368424,1921,no
+ETH-USDT-SWAP,3m,breakdown_short,breakdown_short-3m-lookback48-stop0.006-take0.012-hold12,"{""lookback"":48,""stop"":0.006,""take"":0.012,""hold"":12}",2019-12-25 02:30,2026-05-19 08:39,-1.0,0.0,1.0,0.0,14921,14921,0,0.695251743740349,0.3299376717378192,-0.9999999984331926,-0.9988313536282388,0.9999999984452086,-0.9988313551812132,6685,6685,0,0.6417279082232252,0.325056095736724,-0.9994377313436408,-0.9994377313436408,0.9994938093041837,-0.9999438936389391,2264,2264,0,0.6338368319332311,0.3374558303886926,-0.9529088854609761,-0.9978919425033947,0.9575387084571395,-1.0421426660769417,1092,1092,0,0.6834776333529906,0.336996336996337,-0.7101794528667339,-0.9937752020981644,0.7255437185300143,-1.3696972032389718,496,496,0,0.686972363616657,0.35685483870967744,-0.30549910771458644,-0.98815088727033,0.3136813190193314,-3.150174483962281,155,155,0,0.6455312365039241,0.32903225806451614,-0.17228175754348063,-0.9927709676862942,0.18180605201222064,-5.460604620684256,78,78,0,0.5947539480458865,0.3333333333333333,1118,no
+ETH-USDT-SWAP,5m,vwap_short,vwap_short-5m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":96,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 08:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,18654,18654,0,0.7143582974050504,0.42859440334512705,-0.9999999988459083,-0.9989444833929828,0.9999999989058272,-0.9989444844860006,7736,7736,0,0.6956932420426043,0.43562564632885215,-0.9993329818517688,-0.9993329818517688,0.9993611019690243,-0.9999718619053712,2613,2613,0,0.6935201298787183,0.4228855721393035,-0.9532734409588018,-0.9979247225238762,0.9633054601475216,-1.0359379903972028,1241,1241,0,0.7282624960874274,0.4391619661563255,-0.8548944423073546,-0.9996352774099084,0.8663620501212013,-1.153830869288495,586,586,0,0.6412200452426433,0.42662116040955633,-0.4064986136373716,-0.9982489529747343,0.4710924862319098,-2.1190084370891777,169,169,0,0.5623816947849004,0.41420118343195267,-0.1864858567901515,-0.9953964771024247,0.21940815862187366,-4.536734109408773,67,67,0,0.4918076954906274,0.3880597014925373,1192,no
+ETH-USDT-SWAP,5m,vwap_short,vwap_short-5m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":48,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 04:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,22162,22162,0,0.7091604795840375,0.4496435339770779,-0.9999999999243376,-0.9995740373658435,0.9999999999254892,-0.9995740374403226,9440,9440,0,0.6977519484819319,0.45911016949152544,-0.9995608423272027,-0.9995608423272027,0.9995693277715925,-0.9999915108995904,3128,3128,0,0.7121495161314993,0.4571611253196931,-0.963888494925763,-0.998765802244084,0.9670670610366521,-1.0327782244733392,1494,1494,0,0.732881394079504,0.4725568942436412,-0.8425862275689263,-0.999490700814931,0.8507949374341975,-1.1747727411603621,688,688,0,0.6751330113798711,0.4622093023255814,-0.36288767325669746,-0.9958508280953825,0.40252512595763196,-2.474009108689035,204,204,0,0.6246598981809608,0.4852941176470588,-0.20073176298084794,-0.9970956036452462,0.2098470928922969,-4.751534033197216,83,83,0,0.5160338951091419,0.46987951807228917,1428,no
+ETH-USDT-SWAP,15m,vwap_bidir,vwap_bidir-15m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":96,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-26 00:30,2026-05-19 08:30,-1.0,0.0,1.0,0.0,19469,9916,9553,0.7079262908976928,0.3901073501463866,-0.9999999999935828,-0.9998127079747062,0.9999999999938982,-0.9998127079808069,7663,3823,3840,0.7229782141558387,0.406890251859585,-0.9999275460129514,-0.9999275460129514,0.999931418650165,-0.9999961270971776,2633,1302,1331,0.7097286065329953,0.3961260919103684,-0.9942399159511369,-0.9999695394544895,0.994601520164857,-1.0053971557259864,1264,602,662,0.6688455570151549,0.3916139240506329,-0.8957450320934827,-0.9999060074462254,0.9060030669078836,-1.1036452788828024,565,310,255,0.6675846528306718,0.39469026548672564,-0.34537815590537757,-0.994229443903246,0.42296268702204237,-2.350631567298116,136,67,69,0.6851399809015136,0.45588235294117646,-0.20485730286592652,-0.9974621796634903,0.2494012808417029,-3.9994268525693255,64,24,40,0.632219278709994,0.453125,1093,no
+ETH-USDT-SWAP,15m,vwap_bidir,vwap_bidir-15m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":48,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 12:30,2026-05-19 08:30,-1.0,0.0,1.0,0.0,21509,10948,10561,0.7009590752770171,0.39667116090938676,-0.9999999999996787,-0.9999309067129789,0.9999999999997043,-0.9999309067132746,8746,4404,4342,0.7201460463878245,0.4174479762176995,-0.9999821527448086,-0.9999821527448086,0.99998297089528,-0.999999181835596,3034,1510,1524,0.7036038233888586,0.4050758075148319,-0.9929207245412185,-0.9999538318919126,0.9932025744762151,-1.0067974626618925,1447,707,740,0.7118621229192303,0.41534208707671044,-0.8745563142404594,-0.9997992631405792,0.8850372730187859,-1.1296691039128217,657,342,315,0.7267116217338779,0.4322678843226788,-0.23533821566526902,-0.9617870239766954,0.3096861543850388,-3.105682996666641,162,81,81,0.8278256131805255,0.5123456790123457,-0.14084202030417126,-0.9808931250602136,0.20284032702271423,-4.835789507233304,79,34,45,0.7902949827381717,0.5189873417721519,1297,no
+ETH-USDT-SWAP,3m,vwap_short,vwap_short-3m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":96,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 04:54,2026-05-19 08:39,-1.0,0.0,1.0,0.0,27063,27063,0,0.673146171502942,0.4353545431031297,-0.9999999999999346,-0.9999593383449692,0.999999999999937,-0.9999593383450321,11568,11568,0,0.6350422776232741,0.4336099585062241,-0.9999638302262506,-0.9999638302262506,0.9999661666018266,-0.9999976635453738,3848,3848,0,0.6464989233085032,0.4326923076923077,-0.9871035576335709,-0.999845253204223,0.9895098399769008,-1.010444982767997,1850,1850,0,0.6816597426764869,0.4454054054054054,-0.9209650795768699,-0.9999698130261967,0.9280035682183778,-1.0775495345842072,866,866,0,0.6046946630846616,0.4341801385681293,-0.4394810982943952,-0.9991266636726164,0.48350171869225406,-2.066438701345247,267,267,0,0.575482702426789,0.4606741573033708,-0.23992891936196648,-0.9992171131240363,0.24991824935177812,-3.9981758663712688,115,115,0,0.4842378002622008,0.4434782608695652,1860,no
+ETH-USDT-SWAP,3m,vwap_short,vwap_short-3m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":48,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 02:30,2026-05-19 08:39,-1.0,0.0,1.0,0.0,32387,32387,0,0.6685268660854229,0.45780714484206625,-0.9999999999999981,-0.9999875137738835,0.9999999999999982,-0.9999875137738853,14118,14118,0,0.637809547733299,0.4594843462246777,-0.999986340780218,-0.999986340780218,0.9999872170562293,-0.9999991237127872,4694,4694,0,0.6566923705896933,0.45973583297827014,-0.9945779436028483,-0.9999730367170739,0.9948717849893511,-1.0051275468906553,2275,2275,0,0.6635954756495962,0.4545054945054945,-0.9502190643694748,-0.9999954658639116,0.9555038209269675,-1.0465635447629935,1069,1069,0,0.5838887464142347,0.4424695977549111,-0.5081570164441421,-0.9998219444520522,0.5430647440077591,-1.8410731970436423,355,355,0,0.5804595214694624,0.4450704225352113,-0.24885853051541573,-0.9994247081694361,0.2602725330099009,-3.8399161702223013,158,158,0,0.5402575821185149,0.41139240506329117,2411,no
+ETH-USDT-SWAP,5m,vwap_bidir,vwap_bidir-5m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":96,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 08:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,37408,18654,18754,0.7016441998112106,0.425069503849444,-1.0,0.0,1.0,0.0,15536,7736,7800,0.6886017922500398,0.43666323377960864,-0.9999998301258822,-0.9999998301258822,0.9999998402052517,-0.9999999899206289,5263,2613,2650,0.6940624026936322,0.43074292228766864,-0.9994236402130103,-0.9999997064397937,0.9994848065956686,-1.000515165253866,2530,1241,1289,0.6933355737583163,0.4383399209486166,-0.9794578360736853,-0.9999998797864346,0.9809246274139515,-1.0194461958028027,1140,586,554,0.627972330791864,0.42894736842105263,-0.6678874208359508,-0.9999985015642536,0.7019457626574893,-1.424609356965657,331,169,162,0.5504909397080228,0.44410876132930516,-0.4323464923897513,-0.9999996122060824,0.4756365149959133,-2.102444998813168,151,67,84,0.4739040313077609,0.4304635761589404,2406,no
+ETH-USDT-SWAP,5m,vwap_bidir,vwap_bidir-5m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":48,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 04:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,44233,22170,22063,0.698442181826852,0.4485339000293898,-1.0,0.0,1.0,0.0,18754,9446,9308,0.6823703538828139,0.46054175109310014,-0.9999999533285341,-0.9999999533285341,0.999999955943842,-0.999999997384692,6297,3130,3167,0.7011651854253921,0.4621248213434969,-0.99975236275616,-0.9999999465606807,0.9997667342430496,-1.0002332667307716,3053,1495,1558,0.6909222245971285,0.4677366524729774,-0.9834681971611082,-0.9999999506700128,0.9839657809759019,-1.0162954545819756,1377,688,689,0.6403259753715136,0.46114742193173563,-0.7149985998056942,-0.9999997670272696,0.7296837989910326,-1.3704563105416554,417,204,213,0.5395832436395575,0.47721822541966424,-0.4911216058984965,-0.9999999775607585,0.5024024823975568,-1.990435980309204,194,83,111,0.45315640457368245,0.4742268041237113,2987,no
+ETH-USDT-SWAP,5m,rsi_short,rsi_short-5m-trend96-entry90-exit45-stop0.0075-take0.01-hold12,"{""trend"":96,""entry"":90,""exit"":45,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 08:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,52462,52462,0,0.3842804620035321,0.28771301132248106,-1.0,0.0,1.0,0.0,25241,25241,0,0.3043758773109592,0.2529218335248207,-0.9999999944244274,-0.9999999944244274,0.999999994690223,-0.9999999997342044,8223,8223,0,0.3254502636025324,0.2690015809315335,-0.9999422687788291,-0.9999999971648984,0.9999462718645885,-1.0000537281870252,4218,4218,0,0.3080107809945484,0.25082977714556665,-0.992265475164449,-0.9999999978112035,0.9924072458649568,-1.0076508429154294,2082,2082,0,0.24321735593300622,0.2281460134486071,-0.8088136948975558,-0.99999999818981,0.808813694897556,-1.2363786672979982,688,688,0,0.148705064276601,0.17877906976744187,-0.5226297042136803,-0.9999999957606304,0.5226297042136803,-1.9134006117489533,352,352,0,0.20393664112115512,0.2215909090909091,4866,no
+ETH-USDT-SWAP,3m,vwap_bidir,vwap_bidir-3m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":96,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 04:54,2026-05-19 08:39,-1.0,0.0,1.0,0.0,53681,27066,26615,0.6757163929047154,0.43667219314096234,-1.0,0.0,1.0,0.0,22754,11569,11185,0.6465693993575256,0.4397908060121297,-0.999999994698821,-0.999999994698821,0.9999999951968226,-0.9999999995019984,7557,3849,3708,0.6803648162663958,0.451104935821093,-0.9998430718237077,-0.9999999787015904,0.9998550866048225,-1.0001449130966167,3661,1851,1810,0.6905236747647555,0.45916416279704997,-0.9866667822425853,-0.9999999795766692,0.9872787019696592,-1.0128851940000636,1672,866,806,0.6371829183753556,0.4623205741626794,-0.7033434759280919,-0.9999996206071319,0.7238902828708847,-1.3814242907657523,518,267,251,0.5726132753484848,0.4671814671814672,-0.4107549620116968,-0.9999989736704067,0.4279987709699619,-2.336452909442091,247,115,132,0.5625065914346227,0.4898785425101215,3696,no
+ETH-USDT-SWAP,5m,rsi_short,rsi_short-5m-trend192-entry90-exit45-stop0.0075-take0.01-hold12,"{""trend"":192,""entry"":90,""exit"":45,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 16:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,55162,55162,0,0.39028189892484966,0.29152314999456147,-1.0,0.0,1.0,0.0,26801,26801,0,0.30526154265844624,0.25547554195738964,-0.9999999974240675,-0.9999999974240675,0.9999999974639032,-0.9999999999601643,8736,8736,0,0.3402020130975826,0.27918956043956045,-0.9999686281072561,-0.9999999991712215,0.9999706956622981,-1.0000293043676685,4556,4556,0,0.31885242911161604,0.25768217734855137,-0.9954228911798155,-0.9999999997454369,0.9955521834441187,-1.0044676877568899,2299,2299,0,0.24471162738002372,0.22923010004349717,-0.8269555270061946,-0.9999999994618305,0.8269555270061946,-1.2092548713981082,772,772,0,0.1674652561280836,0.18911917098445596,-0.5677816489447414,-0.9999999996821208,0.5719064600167822,-1.7485376885807102,401,401,0,0.18946987763964998,0.2144638403990025,5447,no
+ETH-USDT-SWAP,15m,rsi_bidir,rsi_bidir-15m-trend96-entry10-exit55-stop0.0075-take0.01-hold12,"{""trend"":96,""entry"":10,""exit"":55,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-26 00:30,2026-05-19 08:30,-1.0,0.0,1.0,0.0,62088,42926,19162,0.5600593374791648,0.3611164798350728,-1.0,0.0,1.0,0.0,28986,20360,8626,0.5002058394683256,0.33719726764645,-0.9999999993220475,-0.9999999993220475,0.9999999993328869,-0.9999999999891607,9659,6850,2809,0.5439195825552668,0.3579045449839528,-0.9999810977839306,-0.9999999997016434,0.9999830056039559,-1.000016994386497,4850,3506,1344,0.5192341579167262,0.3389690721649484,-0.9958336407330919,-0.9999999998268876,0.9958967647733045,-1.0041201409611138,2370,1703,667,0.46281345218004066,0.32953586497890297,-0.8537643826620285,-0.9999999999305808,0.8557357872396257,-1.1685849941560966,787,562,225,0.34353171487513173,0.29860228716645487,-0.5513962226757558,-0.9999999991613724,0.5588818909653964,-1.7892868159209834,384,302,82,0.3785095439141969,0.3177083333333333,5480,no
+ETH-USDT-SWAP,15m,rsi_bidir,rsi_bidir-15m-trend192-entry10-exit55-stop0.0075-take0.01-hold12,"{""trend"":192,""entry"":10,""exit"":55,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-27 00:30,2026-05-19 08:30,-1.0,0.0,1.0,0.0,63044,42812,20232,0.5547254054195978,0.36693420468244403,-1.0,0.0,1.0,0.0,29433,20408,9025,0.49728956391132106,0.3424047837461353,-0.9999999996236264,-0.9999999996236264,0.9999999996262717,-0.9999999999973547,9871,6913,2958,0.5485729148630667,0.3662242933846621,-0.9999859205551199,-0.9999999998352744,0.9999867157135947,-1.0000132842981522,4978,3543,1435,0.5276374126594154,0.3461229409401366,-0.9960654637886316,-0.9999999998631133,0.9961582155193727,-1.003856600571966,2402,1656,746,0.47389082057212395,0.33388842631140714,-0.8570045155922049,-0.9999999999471447,0.857647732546941,-1.165979879614982,843,635,208,0.37004603546743775,0.3001186239620403,-0.5810018375128883,-0.9999999998585737,0.5842419203179566,-1.7116197333364112,412,339,73,0.38635432341848763,0.3106796116504854,5736,no
+ETH-USDT-SWAP,3m,vwap_bidir,vwap_bidir-3m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12,"{""window"":48,""entry_z"":1.5,""exit_z"":0.2,""stop"":0.006,""take"":0.009,""hold"":12}",2019-12-25 02:30,2026-05-19 08:39,-1.0,0.0,1.0,0.0,64676,32398,32278,0.6691634772742839,0.46041808398787804,-1.0,0.0,1.0,0.0,27909,14122,13787,0.6350943550028628,0.4638647031423555,-0.999999999948145,-0.999999999948145,0.9999999999528155,-0.9999999999953295,9341,4695,4646,0.6550254021958243,0.4650465688898405,-0.9999930200672148,-0.9999999999599832,0.9999934883160634,-1.000006511686322,4605,2275,2330,0.6446697828351157,0.46145494028230183,-0.9954672932052089,-0.9999999997554132,0.996161846068975,-1.0038529418704243,2121,1069,1052,0.6161463589284134,0.4695898161244696,-0.7695404436650645,-0.9999999824247122,0.7987600789432182,-1.251940362051819,693,355,338,0.5794908814573877,0.4675324675324675,-0.44424540563201464,-0.9999997767780157,0.473124084264639,-2.113609959916291,329,158,171,0.5990373222251137,0.46200607902735563,4823,no
+ETH-USDT-SWAP,3m,rsi_short,rsi_short-3m-trend96-entry90-exit45-stop0.0075-take0.01-hold12,"{""trend"":96,""entry"":90,""exit"":45,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 04:54,2026-05-19 08:39,-1.0,0.0,1.0,0.0,87334,87334,0,0.2952336822952163,0.24013557148418715,-1.0,0.0,1.0,0.0,41547,41547,0,0.2235561512966581,0.20682600428430453,-0.9999999999999916,-0.9999999999999916,0.9999999999999916,-1.0,13832,13832,0,0.23268632176964757,0.2165991902834008,-0.999999921399998,-0.9999999999999953,0.9999999268034409,-1.00000007319656,6913,6913,0,0.21242350224955817,0.19485028207724578,-0.9996972351247501,-0.9999999999999963,0.9996972351247501,-1.0003028565695777,3422,3422,0,0.16138632036950804,0.16832261835184104,-0.9342188873950216,-0.9999999999999958,0.9342188873950217,-1.070412955135598,1140,1140,0,0.10572968723411796,0.13508771929824562,-0.7370413688658948,-0.9999999999999992,0.7370413688658949,-1.356775945343103,559,559,0,0.1035972873960445,0.1449016100178891,7938,no
+ETH-USDT-SWAP,3m,rsi_short,rsi_short-3m-trend192-entry90-exit45-stop0.0075-take0.01-hold12,"{""trend"":192,""entry"":90,""exit"":45,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 09:42,2026-05-19 08:39,-1.0,0.0,1.0,0.0,91349,91349,0,0.29968441102740706,0.24354946414301196,-1.0,0.0,1.0,0.0,43957,43957,0,0.22411166071530278,0.20833996860568282,-0.9999999999999984,-0.9999999999999984,0.9999999999999984,-1.0,14477,14477,0,0.2347899354239662,0.22207639704358637,-0.9999999803827683,-0.9999999999999997,0.9999999815456101,-1.00000001845439,7392,7392,0,0.2085297589202991,0.19872835497835498,-0.9998522497683021,-0.9999999999999998,0.9998522980366031,-1.0001477237824894,3626,3626,0,0.1507460463721432,0.16740209597352454,-0.946896704414382,-0.9999999999999997,0.946896704414382,-1.0560814029007102,1190,1190,0,0.0991266753824218,0.12605042016806722,-0.7591462342059888,-0.9999999999999999,0.7591462342059887,-1.3172692624180986,602,602,0,0.10449361532801801,0.13953488372093023,8414,no
+ETH-USDT-SWAP,3m,rsi_bidir,rsi_bidir-3m-trend192-entry10-exit55-stop0.0075-take0.01-hold12,"{""trend"":192,""entry"":10,""exit"":55,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 09:42,2026-05-19 08:39,-1.0,0.0,1.0,0.0,302331,203688,98643,0.30035284117180755,0.23805034878990247,-1.0,0.0,1.0,0.0,142663,97205,45458,0.22548199785282752,0.2039561764437871,-1.0,0.0,1.0,0.0,47411,32101,15310,0.23775174148540373,0.21705933222248003,-1.0,0.0,1.0,0.0,23886,16462,7424,0.22229996905699675,0.19680984677216778,-0.9999999999994641,-1.0,0.9999999999994663,-1.0000000000005338,11815,8097,3718,0.17949751143334902,0.1803639441388066,-0.9999407784217361,-1.0,0.999940778421736,-1.000059225085667,3986,2645,1341,0.10467241129815427,0.13948820873055695,-0.9895422960615857,-1.0,0.9895422960615857,-1.0105682232887228,1947,1380,567,0.10491135480136629,0.14227015921931177,27575,no
+ETH-USDT-SWAP,3m,rsi_bidir,rsi_bidir-3m-trend96-entry10-exit55-stop0.0075-take0.01-hold12,"{""trend"":96,""entry"":10,""exit"":55,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 04:54,2026-05-19 08:39,-1.0,0.0,1.0,0.0,296569,203288,93281,0.2996998820814705,0.23542244806436277,-1.0,0.0,1.0,0.0,139182,95872,43310,0.22547078639807291,0.2025692977540199,-1.0,0.0,1.0,0.0,46447,32001,14446,0.2401901766846988,0.21605270523392253,-1.0,0.0,1.0,0.0,23259,16078,7181,0.22869304195514734,0.1970420052452814,-0.9999999999993915,-1.0,0.9999999999993924,-1.0000000000006077,11563,7976,3587,0.1766359180983528,0.17512756205137076,-0.9999178038880995,-1.0,0.9999178038880995,-1.0000822028686567,3898,2631,1267,0.11464544306551198,0.13904566444330427,-0.9871290319790808,-1.0,0.9871290319790808,-1.0130387898683462,1888,1344,544,0.11579783913905192,0.14459745762711865,26911,no
+ETH-USDT-SWAP,5m,rsi_bidir,rsi_bidir-5m-trend192-entry10-exit55-stop0.0075-take0.01-hold12,"{""trend"":192,""entry"":10,""exit"":55,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 16:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,182869,123650,59219,0.3940356000668524,0.28413782543788174,-1.0,0.0,1.0,0.0,86290,58772,27518,0.3060343819606926,0.24853401321126434,-1.0,0.0,1.0,0.0,28632,19353,9279,0.3350657364430399,0.2661008661637329,-0.9999999999999989,-1.0,0.999999999999999,-1.000000000000001,14470,10034,4436,0.3110837214414689,0.24167242570836212,-0.9999999713457122,-1.0,0.9999999713683775,-1.0000000286316233,7193,5002,2191,0.24784294378207247,0.22063116919227027,-0.9961222297157167,-1.0,0.9961252970033192,-1.0038897747184388,2418,1655,763,0.17904335220051398,0.18610421836228289,-0.9157169542677916,-1.0,0.9158826124257149,-1.0918429790380015,1178,864,314,0.18734374757390188,0.19439728353140917,16741,no
+ETH-USDT-SWAP,5m,rsi_bidir,rsi_bidir-5m-trend96-entry10-exit55-stop0.0075-take0.01-hold12,"{""trend"":96,""entry"":10,""exit"":55,""stop"":0.0075,""take"":0.01,""hold"":12}",2019-12-25 08:10,2026-05-19 08:35,-1.0,0.0,1.0,0.0,179246,122721,56525,0.3892119511049705,0.27921961996362543,-1.0,0.0,1.0,0.0,84366,58000,26366,0.3061044584154047,0.24530023943294693,-1.0,0.0,1.0,0.0,28055,19235,8820,0.3324527763260516,0.26252004990197825,-0.9999999999999982,-1.0,0.9999999999999983,-1.0000000000000018,14148,9830,4318,0.30611992274507077,0.2384789369522194,-0.9999999446700316,-1.0,0.9999999447460334,-1.0000000552539696,6981,4808,2173,0.25366523213243297,0.22088525999140524,-0.9950476099293546,-1.0,0.995051527233257,-1.0049730819272267,2322,1572,750,0.1805193909983936,0.18690783807062877,-0.9045602752207461,-1.0,0.9046357673368715,-1.1054172696972488,1108,801,307,0.191011380965091,0.194043321299639,16057,no

+ 73 - 0
reports/ultrashort/eth-highfreq-short-bidir-revalidation-report.md

@@ -0,0 +1,73 @@
+# ETH high-frequency short/bidirectional revalidation
+
+Run command: `rtk .venv/bin/python /home/lxy/okx-codex-trader/scripts/revalidate_eth_high_freq_short_bidir_candidates.py --bars 3m 5m 15m`
+Scope: offline only; local refreshed 3m/5m/15m OKX ETH candle cache; no live executor, deployment, private API, or order path touched.
+Cost model: taker fee `0.0004` each side on `3x` notional; entries execute on next open.
+
+Output files:
+- `reports/ultrashort/eth-highfreq-short-bidir-revalidation-candidates.csv`
+- `reports/ultrashort/eth-highfreq-short-bidir-revalidation-summary.csv`
+- `reports/ultrashort/eth-highfreq-short-bidir-revalidation-report.md`
+
+Cache used:
+
+| bar | rows | first_time | last_time | history_exhausted |
+| --- | --- | --- | --- | --- |
+| 3m | 1121934 | 2019-12-25 00:00 | 2026-05-19 08:39 | True |
+| 5m | 673160 | 2019-12-25 00:00 | 2026-05-19 08:35 | True |
+| 15m | 224387 | 2019-12-25 00:00 | 2026-05-19 08:30 | True |
+
+Windows compared: full, 3y, 1y, 6m, 3m, 30d, 14d.
+Read-only observation rule: 3m >= 12 trades, 30d >= 4 trades, 14d >= 1 trade, positive full/3y/1y return, 3y MDD <= 35%, 1y MDD <= 25%, and 1y profit factor >= 1.05.
+
+Conclusion: Long-term status: still disastrous. The full, 3y, and 1y windows have zero positive candidates under the original high-frequency short/bidir candidate set. No read-only observation candidates passed the rule.
+
+## Horizon Summary
+
+| horizon | positive_candidates | non_disaster_candidates | best_total_return | median_total_return | worst_total_return | median_max_drawdown | max_trades | best_name |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| full | 0 | 0 | -0.9982 | -1.0000 | -1.0000 | 1.0000 | 302331 | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 |
+| 3y | 0 | 0 | -0.8812 | -1.0000 | -1.0000 | 1.0000 | 142663 | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 |
+| 1y | 0 | 1 | -0.2016 | -1.0000 | -1.0000 | 1.0000 | 47411 | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 |
+| 6m | 1 | 3 | 0.0550 | -0.9944 | -1.0000 | 0.9947 | 23886 | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 |
+| 3m | 2 | 4 | 0.1676 | -0.9356 | -1.0000 | 0.9418 | 11815 | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 |
+| 30d | 0 | 15 | -0.0644 | -0.4839 | -0.9999 | 0.5133 | 3986 | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 |
+| 14d | 0 | 20 | -0.0021 | -0.2788 | -0.9895 | 0.2845 | 1947 | vwap_short-15m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 |
+
+## Read-only Observation Candidates
+
+No candidates passed the read-only observation rule.
+
+## Least-bad Long-term Rows
+
+| family | bar | name | full_total_return | full_max_drawdown | full_trades | 3y_total_return | 1y_total_return | 6m_total_return | 3m_total_return | 30d_total_return | 14d_total_return | 3m_trades | 30d_trades | 14d_trades | readonly_observe |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| breakdown_short | 15m | breakdown_short-15m-lookback96-stop0.006-take0.012-hold12 | -0.9982 | 0.9985 | 2210 | -0.8812 | -0.2016 | 0.0550 | 0.1676 | -0.0644 | -0.0080 | 74 | 19 | 10 | no |
+| breakdown_short | 15m | breakdown_short-15m-lookback48-stop0.006-take0.012-hold12 | -1.0000 | 1.0000 | 3486 | -0.9817 | -0.6627 | -0.3055 | 0.0211 | -0.0900 | -0.0742 | 113 | 32 | 16 | no |
+| breakdown_short | 5m | breakdown_short-5m-lookback96-stop0.006-take0.012-hold12 | -1.0000 | 1.0000 | 5864 | -0.9973 | -0.7028 | -0.2579 | -0.3017 | -0.1582 | -0.0512 | 201 | 59 | 30 | no |
+| breakdown_short | 5m | breakdown_short-5m-lookback48-stop0.006-take0.012-hold12 | -1.0000 | 1.0000 | 9225 | -0.9999 | -0.9427 | -0.5927 | -0.4402 | -0.2086 | -0.0927 | 311 | 100 | 53 | no |
+| breakdown_short | 3m | breakdown_short-3m-lookback96-stop0.006-take0.012-hold12 | -1.0000 | 1.0000 | 9427 | -1.0000 | -0.9929 | -0.8355 | -0.6177 | -0.2722 | -0.1316 | 314 | 99 | 53 | no |
+| vwap_short | 15m | vwap_short-15m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 | -1.0000 | 1.0000 | 9916 | -1.0000 | -0.9905 | -0.9086 | -0.7962 | -0.2812 | -0.0696 | 310 | 67 | 24 | no |
+| vwap_short | 15m | vwap_short-15m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 | -1.0000 | 1.0000 | 10947 | -1.0000 | -0.9936 | -0.8979 | -0.7046 | -0.1507 | -0.0021 | 342 | 81 | 34 | no |
+| rsi_short | 15m | rsi_short-15m-trend96-entry90-exit45-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 18040 | -1.0000 | -0.9977 | -0.9574 | -0.7895 | -0.3970 | -0.2397 | 732 | 245 | 132 | no |
+| rsi_short | 15m | rsi_short-15m-trend192-entry90-exit45-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 18674 | -1.0000 | -0.9962 | -0.9506 | -0.7196 | -0.4597 | -0.3086 | 729 | 292 | 152 | no |
+| breakdown_short | 3m | breakdown_short-3m-lookback48-stop0.006-take0.012-hold12 | -1.0000 | 1.0000 | 14921 | -1.0000 | -0.9994 | -0.9529 | -0.7102 | -0.3055 | -0.1723 | 496 | 155 | 78 | no |
+| vwap_short | 5m | vwap_short-5m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 | -1.0000 | 1.0000 | 18654 | -1.0000 | -0.9993 | -0.9533 | -0.8549 | -0.4065 | -0.1865 | 586 | 169 | 67 | no |
+| vwap_short | 5m | vwap_short-5m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 | -1.0000 | 1.0000 | 22162 | -1.0000 | -0.9996 | -0.9639 | -0.8426 | -0.3629 | -0.2007 | 688 | 204 | 83 | no |
+
+## Most Recently Active Rows
+
+| family | bar | name | full_total_return | full_max_drawdown | full_trades | 3y_total_return | 1y_total_return | 6m_total_return | 3m_total_return | 30d_total_return | 14d_total_return | 3m_trades | 30d_trades | 14d_trades | readonly_observe |
+| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
+| rsi_bidir | 3m | rsi_bidir-3m-trend192-entry10-exit55-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 302331 | -1.0000 | -1.0000 | -1.0000 | -1.0000 | -0.9999 | -0.9895 | 11815 | 3986 | 1947 | no |
+| rsi_bidir | 3m | rsi_bidir-3m-trend96-entry10-exit55-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 296569 | -1.0000 | -1.0000 | -1.0000 | -1.0000 | -0.9999 | -0.9871 | 11563 | 3898 | 1888 | no |
+| rsi_bidir | 5m | rsi_bidir-5m-trend192-entry10-exit55-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 182869 | -1.0000 | -1.0000 | -1.0000 | -1.0000 | -0.9961 | -0.9157 | 7193 | 2418 | 1178 | no |
+| rsi_bidir | 5m | rsi_bidir-5m-trend96-entry10-exit55-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 179246 | -1.0000 | -1.0000 | -1.0000 | -1.0000 | -0.9950 | -0.9046 | 6981 | 2322 | 1108 | no |
+| rsi_short | 3m | rsi_short-3m-trend192-entry90-exit45-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 91349 | -1.0000 | -1.0000 | -1.0000 | -0.9999 | -0.9469 | -0.7591 | 3626 | 1190 | 602 | no |
+| rsi_short | 3m | rsi_short-3m-trend96-entry90-exit45-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 87334 | -1.0000 | -1.0000 | -1.0000 | -0.9997 | -0.9342 | -0.7370 | 3422 | 1140 | 559 | no |
+| rsi_bidir | 15m | rsi_bidir-15m-trend192-entry10-exit55-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 63044 | -1.0000 | -1.0000 | -1.0000 | -0.9961 | -0.8570 | -0.5810 | 2402 | 843 | 412 | no |
+| rsi_bidir | 15m | rsi_bidir-15m-trend96-entry10-exit55-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 62088 | -1.0000 | -1.0000 | -1.0000 | -0.9958 | -0.8538 | -0.5514 | 2370 | 787 | 384 | no |
+| rsi_short | 5m | rsi_short-5m-trend192-entry90-exit45-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 55162 | -1.0000 | -1.0000 | -1.0000 | -0.9954 | -0.8270 | -0.5678 | 2299 | 772 | 401 | no |
+| rsi_short | 5m | rsi_short-5m-trend96-entry90-exit45-stop0.0075-take0.01-hold12 | -1.0000 | 1.0000 | 52462 | -1.0000 | -1.0000 | -0.9999 | -0.9923 | -0.8088 | -0.5226 | 2082 | 688 | 352 | no |
+| vwap_bidir | 3m | vwap_bidir-3m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 | -1.0000 | 1.0000 | 64676 | -1.0000 | -1.0000 | -1.0000 | -0.9955 | -0.7695 | -0.4442 | 2121 | 693 | 329 | no |
+| vwap_bidir | 3m | vwap_bidir-3m-window96-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12 | -1.0000 | 1.0000 | 53681 | -1.0000 | -1.0000 | -0.9998 | -0.9867 | -0.7033 | -0.4108 | 1672 | 518 | 247 | no |

+ 8 - 0
reports/ultrashort/eth-highfreq-short-bidir-revalidation-summary.csv

@@ -0,0 +1,8 @@
+horizon,positive_candidates,non_disaster_candidates,best_total_return,median_total_return,worst_total_return,median_max_drawdown,max_trades,best_name
+full,0,0,-0.9981760663135631,-1.0,-1.0,1.0,302331,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12
+3y,0,0,-0.8812095554252265,-0.9999999999999664,-1.0,0.9999999999999676,142663,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12
+1y,0,1,-0.20162951537149643,-0.9999842467625133,-1.0,0.9999850939757546,47411,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12
+6m,1,3,0.054980391541674445,-0.9944089297769927,-1.0,0.9947366525771041,23886,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12
+3m,2,4,0.16763960504587594,-0.9355920719731723,-0.9999999999994641,0.9417536945726727,11815,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12
+30d,0,15,-0.06435643830011162,-0.48394617363606135,-0.9999407784217361,0.5132832313500065,3986,breakdown_short-15m-lookback96-stop0.006-take0.012-hold12
+14d,0,20,-0.0020648511622791688,-0.27875335050584155,-0.9895422960615857,0.28446035175308415,1947,vwap_short-15m-window48-entry_z1.5-exit_z0.2-stop0.006-take0.009-hold12

+ 361 - 0
scripts/diagnose_long_short_fusion_recent_triggers.py

@@ -0,0 +1,361 @@
+from __future__ import annotations
+
+import argparse
+import sys
+from pathlib import Path
+
+import pandas as pd
+
+sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
+
+from scripts import refine_expansion_rotation_risk as rotation_risk
+from scripts import search_expansion_rotation as rotation
+from scripts import search_long_short_fusion as fusion
+from scripts import search_short_bias_swing as swing
+from scripts.search_short_bias_overlay import markdown_table
+
+
+OUTPUT_DIR = Path("reports/eth-exploration")
+PREFIX = "long-short-fusion-recent-trigger-evidence"
+NEAR_MISS_PATH = OUTPUT_DIR / "eth-bidir-fusion-candidates.csv"
+FUSION_TOTAL_PATH = Path("reports/long-short-fusion/fusion-total.csv")
+WINDOWS = (("30d", pd.Timedelta(days=30)), ("14d", pd.Timedelta(days=14)))
+EPS = 1e-12
+
+
+def as_utc(value: object) -> pd.Timestamp:
+    ts = pd.Timestamp(value)
+    return ts.tz_localize("UTC") if ts.tzinfo is None else ts.tz_convert("UTC")
+
+
+def event_rows_from_active(name: str, active: pd.Series) -> list[dict[str, object]]:
+    active = active.fillna(False).astype(bool)
+    rows: list[dict[str, object]] = []
+    previous = False
+    for ts, value in active.items():
+        current = bool(value)
+        if current != previous:
+            rows.append({"component": name, "time": as_utc(ts), "event": "entry" if current else "exit"})
+        previous = current
+    return rows
+
+
+def event_rows_from_trades(name: str, trades: list[dict[str, object]]) -> list[dict[str, object]]:
+    rows: list[dict[str, object]] = []
+    for trade in trades:
+        rows.append({"component": name, "time": as_utc(trade["entry_time"]), "event": "entry"})
+        rows.append({"component": name, "time": as_utc(trade["exit_time"]), "event": "exit"})
+    return rows
+
+
+def active_days_from_trades(index: pd.DatetimeIndex, trades: list[dict[str, object]]) -> pd.Series:
+    active = pd.Series(False, index=index)
+    for trade in trades:
+        entry = as_utc(trade["entry_time"]).normalize()
+        exit_ = as_utc(trade["exit_time"]).normalize()
+        active.loc[(active.index >= entry) & (active.index <= exit_)] = True
+    return active
+
+
+def load_near_miss_candidates(limit: int) -> pd.DataFrame:
+    if NEAR_MISS_PATH.exists():
+        frame = pd.read_csv(NEAR_MISS_PATH)
+        frame = frame[(frame["source"] == "long_short_fusion") & frame["all_horizons_nonnegative"]].copy()
+        if not frame.empty:
+            return frame.sort_values("score", ascending=False).head(limit)
+    total = pd.read_csv(FUSION_TOTAL_PATH)
+    total = total[
+        (total["total_return"] >= 0.0)
+        & (total["h3y_return"] >= 0.0)
+        & (total["h1y_return"] >= 0.0)
+        & (total["h6m_return"] >= 0.0)
+        & (total["h3m_return"] >= 0.0)
+    ].copy()
+    return total.sort_values(["h1y_return", "h6m_return", "h3m_return"], ascending=False).head(limit)
+
+
+def candidate_weight_map(row: pd.Series) -> dict[str, float]:
+    return {
+        str(row["long_variant"]): float(row["long_weight"]),
+        "btc_risk_short": float(row["btc_risk_short_weight"]),
+        "eth_4h_vol_short": float(row["eth_4h_vol_short_weight"]),
+        "btc_4h_vol_short": float(row["btc_4h_vol_short_weight"]),
+        "eth_4h_vol_short_gated": float(row["eth_4h_vol_short_gated_weight"]),
+        "btc_4h_vol_short_gated": float(row["btc_4h_vol_short_gated_weight"]),
+    }
+
+
+def recent_return(series: pd.Series, offset: pd.Timedelta) -> float:
+    scoped = series[series.index >= series.index[-1] - offset]
+    if len(scoped) < 2:
+        return 0.0
+    return float(scoped.iloc[-1] / scoped.iloc[0] - 1.0)
+
+
+def rotation_activity(years: float, daily_index: pd.DatetimeIndex, risk_state_daily: pd.Series) -> dict[str, tuple[pd.Series, list[dict[str, object]]]]:
+    row = pd.read_csv(rotation_risk.OUTPUT_DIR / "rotation-risk-top.csv").iloc[0]
+    base = rotation_risk.params_from_row(row)
+    params = rotation_risk.RiskParams(base, float(row["leverage"]), float(row["exposure"]), float(row["vol_target"]))
+    rotation.SYMBOLS = ("BTC-USDT-SWAP", "ETH-USDT-SWAP")
+    frames = rotation.load_symbol_bar_frames(years)
+    closes = rotation.aligned_closes(frames, base)
+    weights = rotation_risk.apply_risk_controls(closes, rotation.target_weights(closes, base), params)
+    executed = weights.shift(1).fillna(0.0)
+    hourly_active = executed.abs().sum(axis=1) > 0.0
+    base_active = hourly_active.resample("1D").max().reindex(daily_index).fillna(False).astype(bool)
+    risk = risk_state_daily.reindex(daily_index).fillna(False).astype(bool)
+    return {
+        "long_rotation": (base_active, event_rows_from_active("long_rotation", base_active)),
+        "long_rotation_riskoff70": (base_active, event_rows_from_active("long_rotation_riskoff70", base_active)),
+        "long_rotation_riskoff50": (base_active, event_rows_from_active("long_rotation_riskoff50", base_active)),
+        "long_rotation_riskoff25": (base_active, event_rows_from_active("long_rotation_riskoff25", base_active)),
+        "long_rotation_riskoff00": (base_active & ~risk, event_rows_from_active("long_rotation_riskoff00", base_active & ~risk)),
+    }
+
+
+def btc_risk_activity(years: float, daily_index: pd.DatetimeIndex) -> tuple[pd.Series, list[dict[str, object]], pd.Series]:
+    params = fusion.overlay.BtcRiskShort(
+        family="btc_risk_pair",
+        bar="1h",
+        btc_trend=1440,
+        btc_lookback=336,
+        symbol_trend=720,
+        vol_lookback=336,
+        btc_max_momentum=-0.005,
+        btc_min_drop=0.025,
+        min_btc_vol=0.012,
+        symbol_max_momentum=-0.010,
+        short_symbols=("ETH-USDT-SWAP",),
+    )
+    fusion.overlay.SYMBOLS = ("BTC-USDT-SWAP", "ETH-USDT-SWAP")
+    frames = fusion.overlay.load_frames(years)
+    closes = pd.DataFrame({symbol: frames[(symbol, params.bar)]["close"] for symbol in ("BTC-USDT-SWAP", "ETH-USDT-SWAP")}).dropna()
+    weights = fusion.overlay.short_weights(closes, params)
+    active = weights.shift(1).fillna(0.0)["ETH-USDT-SWAP"] < 0.0
+    daily = active.resample("1D").max().reindex(daily_index).fillna(False).astype(bool)
+    return daily, event_rows_from_active("btc_risk_short", active), daily
+
+
+def swing_activity(strategy: swing.Strategy, years: float, daily_index: pd.DatetimeIndex) -> tuple[pd.Series, list[dict[str, object]]]:
+    frame = swing.resample_frame(swing.load_15m_frame(strategy.symbol, years), strategy.bar)
+    result = swing.run_strategy(strategy, frame, None)
+    trades = list(result["trades"])
+    active = active_days_from_trades(daily_index, trades)
+    return active, event_rows_from_trades(strategy.name, trades)
+
+
+def component_activity(years: float, daily_index: pd.DatetimeIndex) -> dict[str, tuple[pd.Series, list[dict[str, object]]]]:
+    btc_risk_active, btc_risk_events, risk_state = btc_risk_activity(years, daily_index)
+    activity = rotation_activity(years, daily_index, risk_state)
+    activity["btc_risk_short"] = (btc_risk_active, btc_risk_events)
+    eth_active, eth_events = swing_activity(
+        swing.Strategy(
+            "vol_expansion_short",
+            "ETH-USDT-SWAP",
+            "4H",
+            {"fast": 20, "slow": 80, "entry": 20, "exit": 10, "atr": 14, "stop_atr": 3.0, "take_atr": 6.0, "max_hold": 120, "vol_window": 120, "vol_quantile": 0.8},
+        ),
+        years,
+        daily_index,
+    )
+    btc_active, btc_events = swing_activity(
+        swing.Strategy(
+            "vol_expansion_short",
+            "BTC-USDT-SWAP",
+            "4H",
+            {"fast": 30, "slow": 120, "entry": 20, "exit": 10, "atr": 14, "stop_atr": 3.0, "take_atr": 6.0, "max_hold": 120, "vol_window": 120, "vol_quantile": 0.8},
+        ),
+        years,
+        daily_index,
+    )
+    activity["eth_4h_vol_short"] = (eth_active, eth_events)
+    activity["btc_4h_vol_short"] = (btc_active, btc_events)
+    eth_gated = eth_active & risk_state
+    btc_gated = btc_active & risk_state
+    activity["eth_4h_vol_short_gated"] = (eth_gated, event_rows_from_active("eth_4h_vol_short_gated", eth_gated))
+    activity["btc_4h_vol_short_gated"] = (btc_gated, event_rows_from_active("btc_4h_vol_short_gated", btc_gated))
+    return activity
+
+
+def summarize_candidate(
+    row: pd.Series,
+    component_series: dict[str, pd.Series],
+    activity: dict[str, tuple[pd.Series, list[dict[str, object]]]],
+) -> tuple[dict[str, object], list[dict[str, object]], pd.DataFrame]:
+    name = str(row["name"])
+    weights = candidate_weight_map(row)
+    equity = fusion.combine_components(component_series, weights)
+    returns = pd.DataFrame({key: fusion.component_returns(series) for key, series in component_series.items()}).reindex(equity.index).fillna(0.0)
+    active = pd.DataFrame({key: value[0] for key, value in activity.items()}).reindex(equity.index).fillna(False).astype(bool)
+    included = {key: weight for key, weight in weights.items() if weight > 0.0}
+    weighted_active = pd.DataFrame({key: active[key].astype(float) * weight for key, weight in included.items()})
+    target_changed = weighted_active.diff().abs().sum(axis=1).fillna(weighted_active.abs().sum(axis=1)) > 0.0
+    component_contrib = pd.DataFrame({key: returns[key] * weight for key, weight in included.items()})
+    fusion_return = component_contrib.sum(axis=1)
+    component_rows: list[dict[str, object]] = []
+    summary: dict[str, object] = {
+        "name": name,
+        "last_date": equity.index[-1].strftime("%Y-%m-%d"),
+        "included_components": ",".join(included),
+        "prior_report_trades_30d": int(row.get("trades_30d", 0)),
+        "prior_report_trades_14d": int(row.get("trades_14d", 0)),
+        "prior_report_return_30d": float(row.get("return_30d", 0.0)),
+        "prior_report_return_14d": float(row.get("return_14d", 0.0)),
+    }
+    for label, offset in WINDOWS:
+        start = equity.index[-1] - offset
+        mask = equity.index >= start
+        events = []
+        for key in included:
+            events.extend(event for event in activity[key][1] if start <= event["time"] <= equity.index[-1])
+        summary[f"recomputed_return_{label}"] = recent_return(equity, offset)
+        summary[f"component_entry_events_{label}"] = sum(1 for event in events if event["event"] == "entry")
+        summary[f"component_exit_events_{label}"] = sum(1 for event in events if event["event"] == "exit")
+        summary[f"fusion_target_change_days_{label}"] = int(target_changed.loc[mask].sum())
+        summary[f"component_contribution_days_{label}"] = int((component_contrib.loc[mask].abs().sum(axis=1) > EPS).sum())
+        for key, weight in included.items():
+            component_events = [event for event in activity[key][1] if start <= event["time"] <= equity.index[-1]]
+            component_rows.append(
+                {
+                    "name": name,
+                    "window": label,
+                    "component": key,
+                    "component_weight": weight,
+                    "active_days": int(active.loc[mask, key].sum()),
+                    "contribution_days": int((component_contrib.loc[mask, key].abs() > EPS).sum()),
+                    "entry_events": sum(1 for event in component_events if event["event"] == "entry"),
+                    "exit_events": sum(1 for event in component_events if event["event"] == "exit"),
+                    "latest_event_time": max((event["time"] for event in component_events), default=pd.NaT),
+                }
+            )
+    summary["recent_activity_found"] = (
+        int(summary["component_entry_events_30d"]) > 0
+        or int(summary["component_exit_events_30d"]) > 0
+        or int(summary["fusion_target_change_days_30d"]) > 0
+        or int(summary["component_contribution_days_30d"]) > 0
+    )
+    daily = pd.DataFrame(
+        {
+            "name": name,
+            "date": equity.index.strftime("%Y-%m-%d"),
+            "fusion_daily_return": fusion_return.to_numpy(),
+            "fusion_target_changed": target_changed.to_numpy(),
+            "active_component_count": active[list(included)].sum(axis=1).to_numpy(),
+            "contributing_component_count": (component_contrib.abs() > EPS).sum(axis=1).to_numpy(),
+        }
+    )
+    for key in included:
+        daily[f"{key}_active"] = active[key].to_numpy()
+        daily[f"{key}_contribution"] = component_contrib[key].to_numpy()
+    return summary, component_rows, daily[daily["date"] >= (equity.index[-1] - pd.Timedelta(days=30)).strftime("%Y-%m-%d")]
+
+
+def report_text(command: str, paths: list[Path], summary: pd.DataFrame, components: pd.DataFrame, daily: pd.DataFrame) -> str:
+    display_cols = [
+        "name",
+        "recomputed_return_30d",
+        "recomputed_return_14d",
+        "component_entry_events_30d",
+        "component_exit_events_30d",
+        "component_entry_events_14d",
+        "component_exit_events_14d",
+        "fusion_target_change_days_30d",
+        "fusion_target_change_days_14d",
+        "component_contribution_days_30d",
+        "component_contribution_days_14d",
+        "recent_activity_found",
+    ]
+    any_activity = bool(summary["recent_activity_found"].any()) if len(summary) else False
+    verdict = (
+        "The previous near-miss fusion report did not prove no recent activity; it lacked the required 30d/14d trigger accounting."
+        if any_activity
+        else "The checked near-miss fusion rows had no 30d/14d component activity in the rebuilt evidence."
+    )
+    observer = (
+        "Worth a read-only observer only if it logs component-level activity and target changes; the current search output alone is insufficient."
+        if any_activity
+        else "Not worth a read-only observer for this near-miss set because the rebuilt evidence is inactive."
+    )
+    recent_daily = daily[(daily["fusion_target_changed"]) | (daily["contributing_component_count"] > 0)].head(80)
+    return "\n".join(
+        [
+            "# Long-Short Fusion Recent Trigger Evidence",
+            "",
+            f"Run command: `{command}`",
+            "",
+            "Scope: offline reconstruction from local cached candles and existing reports only. No live executor, deployment, credentials, or order submission path was touched.",
+            "",
+            "Objective: check whether the previous long-short fusion near-miss rows truly had no recent trades, or whether `scripts/explore_eth_bidir_fusion_candidates.py` only filled 30d/14d trigger fields with zero because fusion outputs lacked those fields.",
+            "",
+            "Output files:",
+            *[f"- `{path}`" for path in paths],
+            "",
+            f"Conclusion: {verdict}",
+            f"Observer decision: {observer}",
+            "",
+            "## Candidate Summary",
+            "",
+            markdown_table(summary[display_cols]),
+            "",
+            "## Component Evidence",
+            "",
+            markdown_table(components.head(120)),
+            "",
+            "## Recent Daily Evidence",
+            "",
+            markdown_table(recent_daily),
+            "",
+        ]
+    )
+
+
+def main() -> int:
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--years", type=float, default=8.0)
+    parser.add_argument("--limit", type=int, default=12)
+    parser.add_argument("--output-dir", type=Path, default=OUTPUT_DIR)
+    args = parser.parse_args()
+
+    fusion.overlay.SYMBOLS = ("BTC-USDT-SWAP", "ETH-USDT-SWAP")
+    candidates = load_near_miss_candidates(args.limit)
+    components = fusion.build_components(args.years)
+    component_series = {key: value[1] for key, value in components.items()}
+    daily_index = next(iter(component_series.values())).index
+    activity = component_activity(args.years, daily_index)
+
+    summary_rows: list[dict[str, object]] = []
+    component_rows: list[dict[str, object]] = []
+    daily_frames: list[pd.DataFrame] = []
+    full_rows = pd.read_csv(FUSION_TOTAL_PATH).set_index("name")
+    for _, source_row in candidates.iterrows():
+        row = full_rows.loc[str(source_row["name"])].copy()
+        row["name"] = str(source_row["name"])
+        for key in ("trades_30d", "trades_14d", "return_30d", "return_14d"):
+            row[key] = source_row.get(key, 0)
+        summary, rows, daily = summarize_candidate(row, component_series, activity)
+        summary_rows.append(summary)
+        component_rows.extend(rows)
+        daily_frames.append(daily)
+
+    summary_frame = pd.DataFrame(summary_rows)
+    component_frame = pd.DataFrame(component_rows)
+    daily_frame = pd.concat(daily_frames, ignore_index=True) if daily_frames else pd.DataFrame()
+
+    args.output_dir.mkdir(parents=True, exist_ok=True)
+    summary_path = args.output_dir / f"{PREFIX}.csv"
+    component_path = args.output_dir / f"{PREFIX}-components.csv"
+    daily_path = args.output_dir / f"{PREFIX}-daily.csv"
+    report_path = args.output_dir / f"{PREFIX}.md"
+    paths = [summary_path, component_path, daily_path, report_path]
+    summary_frame.to_csv(summary_path, index=False)
+    component_frame.to_csv(component_path, index=False)
+    daily_frame.to_csv(daily_path, index=False)
+    command = f"rtk .venv/bin/python scripts/diagnose_long_short_fusion_recent_triggers.py --years {args.years} --limit {args.limit}"
+    report_path.write_text(report_text(command, paths, summary_frame, component_frame, daily_frame), encoding="utf-8")
+    print(report_path)
+    print(summary_frame.to_string(index=False))
+    return 0
+
+
+if __name__ == "__main__":
+    raise SystemExit(main())

+ 409 - 0
scripts/revalidate_eth_high_freq_short_bidir_candidates.py

@@ -0,0 +1,409 @@
+from __future__ import annotations
+
+import argparse
+import json
+from dataclasses import dataclass
+from pathlib import Path
+
+import pandas as pd
+
+
+DATA_DIR = Path("data/okx-candles")
+OUT_DIR = Path("reports/ultrashort")
+SYMBOL = "ETH-USDT-SWAP"
+INITIAL_EQUITY = 10_000.0
+LEVERAGE = 3.0
+TAKER_FEE = 0.0004
+HORIZONS = (
+    ("full", None),
+    ("3y", pd.DateOffset(years=3)),
+    ("1y", pd.DateOffset(years=1)),
+    ("6m", pd.DateOffset(months=6)),
+    ("3m", pd.DateOffset(months=3)),
+    ("30d", pd.DateOffset(days=30)),
+    ("14d", pd.DateOffset(days=14)),
+)
+
+
+@dataclass(frozen=True)
+class Candidate:
+    family: str
+    bar: str
+    params: dict[str, float | int | str]
+
+    @property
+    def name(self) -> str:
+        body = "-".join(f"{key}{value:g}" if isinstance(value, float) else f"{key}{value}" for key, value in self.params.items())
+        return f"{self.family}-{self.bar}-{body}"
+
+
+def load_frame(bar: str) -> pd.DataFrame:
+    frame = pd.read_csv(DATA_DIR / SYMBOL / f"{bar}.csv")
+    frame["dt"] = pd.to_datetime(frame["ts"], unit="ms", utc=True)
+    return frame.sort_values("ts").drop_duplicates("ts", keep="last").reset_index(drop=True)
+
+
+def load_cache_summary(bars: list[str]) -> pd.DataFrame:
+    rows = []
+    for bar in bars:
+        meta_path = DATA_DIR / SYMBOL / f"{bar}.meta.json"
+        meta = json.loads(meta_path.read_text(encoding="utf-8"))
+        rows.append(
+            {
+                "bar": bar,
+                "rows": int(meta["rows"]),
+                "first_time": pd.to_datetime(int(meta["first_ts"]), unit="ms", utc=True).strftime("%Y-%m-%d %H:%M"),
+                "last_time": pd.to_datetime(int(meta["last_ts"]), unit="ms", utc=True).strftime("%Y-%m-%d %H:%M"),
+                "history_exhausted": bool(meta["history_exhausted"]),
+            }
+        )
+    return pd.DataFrame(rows)
+
+
+def rsi(close: pd.Series, length: int) -> pd.Series:
+    delta = close.diff()
+    gain = delta.clip(lower=0.0).rolling(length).mean()
+    loss = (-delta.clip(upper=0.0)).rolling(length).mean()
+    return 100.0 - 100.0 / (1.0 + gain / loss)
+
+
+def build_candidates(bars: list[str]) -> list[Candidate]:
+    candidates: list[Candidate] = []
+    for bar in bars:
+        for window in (48, 96):
+            base = {"window": window, "entry_z": 1.5, "exit_z": 0.20, "stop": 0.006, "take": 0.009, "hold": 12}
+            candidates.append(Candidate("vwap_bidir", bar, base))
+            candidates.append(Candidate("vwap_short", bar, base))
+        for trend in (96, 192):
+            candidates.append(
+                Candidate(
+                    "rsi_short",
+                    bar,
+                    {"trend": trend, "entry": 90, "exit": 45, "stop": 0.0075, "take": 0.010, "hold": 12},
+                )
+            )
+            candidates.append(
+                Candidate(
+                    "rsi_bidir",
+                    bar,
+                    {"trend": trend, "entry": 10, "exit": 55, "stop": 0.0075, "take": 0.010, "hold": 12},
+                )
+            )
+        for lookback in (48, 96):
+            candidates.append(
+                Candidate(
+                    "breakdown_short",
+                    bar,
+                    {"lookback": lookback, "stop": 0.006, "take": 0.012, "hold": 12},
+                )
+            )
+    return candidates
+
+
+def signal_columns(frame: pd.DataFrame, candidate: Candidate) -> tuple[pd.Series, pd.Series]:
+    close = frame["close"]
+    params = candidate.params
+    if candidate.family in ("vwap_bidir", "vwap_short"):
+        window = int(params["window"])
+        volume = frame["volume"]
+        vwap = (close * volume).rolling(window).sum() / volume.rolling(window).sum()
+        stdev = close.rolling(window).std(ddof=0)
+        zscore = (close - vwap) / stdev
+        entry = pd.Series("", index=frame.index, dtype=object)
+        entry.loc[zscore >= float(params["entry_z"])] = "short"
+        if candidate.family == "vwap_bidir":
+            entry.loc[zscore <= -float(params["entry_z"])] = "long"
+        return entry, zscore.abs() <= float(params["exit_z"])
+    if candidate.family in ("rsi_short", "rsi_bidir"):
+        trend = close.rolling(int(params["trend"])).mean()
+        value = rsi(close, 2)
+        entry = pd.Series("", index=frame.index, dtype=object)
+        entry.loc[(close < trend) & (value >= float(params["entry"]))] = "short"
+        if candidate.family == "rsi_bidir":
+            entry.loc[(close > trend) & (value <= float(params["entry"]))] = "long"
+        return entry, (value <= 100.0 - float(params["exit"])) | (value >= float(params["exit"]))
+    lookback = int(params["lookback"])
+    prior_low = frame["low"].shift(1).rolling(lookback).min()
+    entry = pd.Series("", index=frame.index, dtype=object)
+    entry.loc[close < prior_low] = "short"
+    return entry, pd.Series(False, index=frame.index)
+
+
+def close_return(side: str, entry: float, exit_price: float) -> float:
+    price_return = exit_price / entry - 1.0 if side == "long" else entry / exit_price - 1.0
+    return LEVERAGE * price_return - LEVERAGE * TAKER_FEE * (1.0 + exit_price / entry)
+
+
+def mark_return(side: str, entry: float, close: float) -> float:
+    price_return = close / entry - 1.0 if side == "long" else entry / close - 1.0
+    return LEVERAGE * price_return - LEVERAGE * TAKER_FEE
+
+
+def backtest(frame: pd.DataFrame, candidate: Candidate) -> tuple[pd.Series, pd.DataFrame]:
+    entry_signal, exit_signal = signal_columns(frame, candidate)
+    warmup = max(int(value) for key, value in candidate.params.items() if key in {"window", "trend", "lookback"}) + 2
+    equity = INITIAL_EQUITY
+    position: dict[str, object] | None = None
+    pending_entry = ""
+    pending_exit = False
+    curve: list[tuple[pd.Timestamp, float]] = []
+    trades: list[dict[str, object]] = []
+
+    rows = list(frame.itertuples(index=False))
+    for index in range(warmup, len(rows)):
+        candle = rows[index]
+        if pending_exit and position is not None:
+            net = close_return(str(position["side"]), float(position["entry"]), float(candle.open))
+            equity *= 1.0 + net
+            trades.append({"entry_time": position["entry_time"], "exit_time": candle.dt, "side": position["side"], "return": net})
+            position = None
+            pending_exit = False
+        if pending_entry and position is None and equity > 0.0:
+            position = {"side": pending_entry, "entry": float(candle.open), "entry_index": index, "entry_time": candle.dt}
+            pending_entry = ""
+
+        mark = equity
+        if position is not None:
+            side = str(position["side"])
+            entry = float(position["entry"])
+            stop = float(candidate.params["stop"])
+            take = float(candidate.params["take"])
+            stop_price = entry * (1.0 - stop if side == "long" else 1.0 + stop)
+            take_price = entry * (1.0 + take if side == "long" else 1.0 - take)
+            stop_hit = candle.low <= stop_price if side == "long" else candle.high >= stop_price
+            take_hit = candle.high >= take_price if side == "long" else candle.low <= take_price
+            if stop_hit or take_hit:
+                exit_price = stop_price if stop_hit else take_price
+                net = close_return(side, entry, exit_price)
+                equity *= 1.0 + net
+                trades.append({"entry_time": position["entry_time"], "exit_time": candle.dt, "side": side, "return": net})
+                position = None
+                mark = equity
+            else:
+                mark = equity * (1.0 + mark_return(side, entry, float(candle.close)))
+
+        curve.append((candle.dt, mark))
+        if index == len(rows) - 1 or equity <= 0.0:
+            continue
+        next_entry = str(entry_signal.iloc[index])
+        if position is not None:
+            reverse = bool(next_entry) and next_entry != position["side"]
+            stale = index - int(position["entry_index"]) >= int(candidate.params["hold"])
+            if bool(exit_signal.iloc[index]) or reverse or stale:
+                pending_exit = True
+                pending_entry = next_entry if reverse else ""
+        elif next_entry:
+            pending_entry = next_entry
+
+    if position is not None:
+        final = rows[-1]
+        net = close_return(str(position["side"]), float(position["entry"]), float(final.close))
+        equity *= 1.0 + net
+        trades.append({"entry_time": position["entry_time"], "exit_time": final.dt, "side": position["side"], "return": net})
+        curve.append((final.dt, equity))
+
+    return pd.Series(dict(curve)).sort_index(), pd.DataFrame(trades)
+
+
+def scoped(equity: pd.Series, trades: pd.DataFrame, offset: pd.DateOffset | None) -> tuple[pd.Series, pd.DataFrame]:
+    if offset is None:
+        return equity, trades
+    start = equity.index[-1] - offset
+    scoped_equity = equity[equity.index >= start]
+    scoped_trades = trades[trades["entry_time"] >= scoped_equity.index[0]] if len(trades) else trades
+    return scoped_equity, scoped_trades
+
+
+def metrics(equity: pd.Series, trades: pd.DataFrame) -> dict[str, float | int]:
+    total = float(equity.iloc[-1] / equity.iloc[0] - 1.0)
+    years = (equity.index[-1] - equity.index[0]).total_seconds() / 31_536_000
+    annual = (1.0 + total) ** (1.0 / years) - 1.0 if total > -1.0 and years > 0 else 0.0
+    drawdown = float(((equity.cummax() - equity) / equity.cummax()).max())
+    returns = trades["return"] if len(trades) else pd.Series(dtype=float)
+    wins = returns[returns > 0.0]
+    losses = returns[returns < 0.0]
+    return {
+        "total_return": total,
+        "annualized_return": annual,
+        "max_drawdown": drawdown,
+        "calmar": annual / drawdown if drawdown else 0.0,
+        "trades": int(len(trades)),
+        "short_trades": int((trades["side"] == "short").sum()) if len(trades) else 0,
+        "long_trades": int((trades["side"] == "long").sum()) if len(trades) else 0,
+        "profit_factor": float(wins.sum() / abs(losses.sum())) if len(losses) else (999.0 if len(wins) else 0.0),
+        "win_rate": float(len(wins) / len(returns)) if len(returns) else 0.0,
+    }
+
+
+def summarize(candidate: Candidate, equity: pd.Series, trades: pd.DataFrame) -> dict[str, object]:
+    row: dict[str, object] = {
+        "symbol": SYMBOL,
+        "bar": candidate.bar,
+        "family": candidate.family,
+        "name": candidate.name,
+        "params_json": json.dumps(candidate.params, separators=(",", ":")),
+        "first_time": equity.index[0].strftime("%Y-%m-%d %H:%M"),
+        "last_time": equity.index[-1].strftime("%Y-%m-%d %H:%M"),
+    }
+    for label, offset in HORIZONS:
+        part_equity, part_trades = scoped(equity, trades, offset)
+        for key, value in metrics(part_equity, part_trades).items():
+            row[f"{label}_{key}"] = value
+    row["recent_trigger_score"] = int(row["3m_trades"]) + int(row["30d_trades"]) * 2 + int(row["14d_trades"]) * 4
+    observe = (
+        int(row["3m_trades"]) >= 12
+        and int(row["30d_trades"]) >= 4
+        and int(row["14d_trades"]) >= 1
+        and float(row["full_total_return"]) > 0.0
+        and float(row["3y_total_return"]) > 0.0
+        and float(row["1y_total_return"]) > 0.0
+        and float(row["3y_max_drawdown"]) <= 0.35
+        and float(row["1y_max_drawdown"]) <= 0.25
+        and float(row["1y_profit_factor"]) >= 1.05
+    )
+    row["readonly_observe"] = "yes" if observe else "no"
+    return row
+
+
+def horizon_summary(totals: pd.DataFrame) -> pd.DataFrame:
+    rows = []
+    for label, _ in HORIZONS:
+        returns = totals[f"{label}_total_return"]
+        drawdowns = totals[f"{label}_max_drawdown"]
+        trades = totals[f"{label}_trades"]
+        best_index = returns.idxmax()
+        rows.append(
+            {
+                "horizon": label,
+                "positive_candidates": int((returns > 0.0).sum()),
+                "non_disaster_candidates": int(((returns > -0.50) & (drawdowns < 0.60)).sum()),
+                "best_total_return": float(returns.max()),
+                "median_total_return": float(returns.median()),
+                "worst_total_return": float(returns.min()),
+                "median_max_drawdown": float(drawdowns.median()),
+                "max_trades": int(trades.max()),
+                "best_name": str(totals.loc[best_index, "name"]),
+            }
+        )
+    return pd.DataFrame(rows)
+
+
+def markdown_table(frame: pd.DataFrame) -> str:
+    def cell(value: object) -> str:
+        if isinstance(value, float):
+            return f"{value:.4f}"
+        return str(value).replace("|", "\\|")
+
+    rows = [list(frame.columns), ["---" for _ in frame.columns]]
+    rows.extend(frame.astype(object).where(pd.notna(frame), "").values.tolist())
+    return "\n".join("| " + " | ".join(cell(value) for value in row) + " |" for row in rows)
+
+
+def write_report(totals: pd.DataFrame, summary: pd.DataFrame, cache: pd.DataFrame, paths: list[Path], command: str) -> str:
+    selected = totals[totals["readonly_observe"] == "yes"].head(12)
+    least_bad = totals.sort_values(
+        ["full_total_return", "3y_total_return", "1y_total_return", "6m_total_return", "3m_total_return"],
+        ascending=[False, False, False, False, False],
+    ).head(12)
+    recent = totals.sort_values(["recent_trigger_score", "3y_calmar", "1y_calmar"], ascending=[False, False, False]).head(12)
+    cols = [
+        "family",
+        "bar",
+        "name",
+        "full_total_return",
+        "full_max_drawdown",
+        "full_trades",
+        "3y_total_return",
+        "1y_total_return",
+        "6m_total_return",
+        "3m_total_return",
+        "30d_total_return",
+        "14d_total_return",
+        "3m_trades",
+        "30d_trades",
+        "14d_trades",
+        "readonly_observe",
+    ]
+    observation = (
+        "No read-only observation candidates passed the rule."
+        if not len(selected)
+        else "At least one read-only observation candidate passed the rule."
+    )
+    disaster = (
+        "Long-term status: still disastrous. The full, 3y, and 1y windows have zero positive candidates under the original high-frequency short/bidir candidate set."
+        if all(int(summary.loc[summary["horizon"] == label, "positive_candidates"].iloc[0]) == 0 for label in ("full", "3y", "1y"))
+        else "Long-term status: not uniformly disastrous; at least one of full/3y/1y has a positive candidate."
+    )
+    return "\n".join(
+        [
+            "# ETH high-frequency short/bidirectional revalidation",
+            "",
+            f"Run command: `{command}`",
+            "Scope: offline only; local refreshed 3m/5m/15m OKX ETH candle cache; no live executor, deployment, private API, or order path touched.",
+            f"Cost model: taker fee `{TAKER_FEE}` each side on `{LEVERAGE:g}x` notional; entries execute on next open.",
+            "",
+            "Output files:",
+            *[f"- `{path}`" for path in paths],
+            "",
+            "Cache used:",
+            "",
+            markdown_table(cache),
+            "",
+            "Windows compared: full, 3y, 1y, 6m, 3m, 30d, 14d.",
+            "Read-only observation rule: 3m >= 12 trades, 30d >= 4 trades, 14d >= 1 trade, positive full/3y/1y return, 3y MDD <= 35%, 1y MDD <= 25%, and 1y profit factor >= 1.05.",
+            "",
+            f"Conclusion: {disaster} {observation}",
+            "",
+            "## Horizon Summary",
+            "",
+            markdown_table(summary),
+            "",
+            "## Read-only Observation Candidates",
+            "",
+            markdown_table(selected[cols]) if len(selected) else "No candidates passed the read-only observation rule.",
+            "",
+            "## Least-bad Long-term Rows",
+            "",
+            markdown_table(least_bad[cols]),
+            "",
+            "## Most Recently Active Rows",
+            "",
+            markdown_table(recent[cols]),
+        ]
+    ) + "\n"
+
+
+def main() -> int:
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--bars", nargs="+", default=["3m", "5m", "15m"])
+    parser.add_argument("--output-dir", type=Path, default=OUT_DIR)
+    args = parser.parse_args()
+
+    rows: list[dict[str, object]] = []
+    frames = {bar: load_frame(bar) for bar in args.bars}
+    for candidate in build_candidates(args.bars):
+        equity, trades = backtest(frames[candidate.bar], candidate)
+        if len(equity) >= 2:
+            rows.append(summarize(candidate, equity, trades))
+
+    totals = pd.DataFrame(rows).sort_values(
+        ["readonly_observe", "full_total_return", "3y_total_return", "1y_total_return", "recent_trigger_score"],
+        ascending=[False, False, False, False, False],
+    )
+    summary = horizon_summary(totals)
+    cache = load_cache_summary(args.bars)
+    args.output_dir.mkdir(parents=True, exist_ok=True)
+    totals_path = args.output_dir / "eth-highfreq-short-bidir-revalidation-candidates.csv"
+    summary_path = args.output_dir / "eth-highfreq-short-bidir-revalidation-summary.csv"
+    report_path = args.output_dir / "eth-highfreq-short-bidir-revalidation-report.md"
+    paths = [totals_path, summary_path, report_path]
+    totals.to_csv(totals_path, index=False)
+    summary.to_csv(summary_path, index=False)
+    command = f"rtk .venv/bin/python {Path(__file__).as_posix()} --bars {' '.join(args.bars)}"
+    report_path.write_text(write_report(totals, summary, cache, paths, command), encoding="utf-8")
+    print(summary.to_string(index=False))
+    return 0
+
+
+if __name__ == "__main__":
+    raise SystemExit(main())