{ "audit_date": "2026-05-08", "verdict": "passed", "candidate": "trend_basket-1h-lb720-tr1440-bt2880-rb168-top2-mm0.000-bm0.000-vw336-vc0.0300-lev0.75-exp0.50-vt0.2000", "source": { "top_csv": "reports/strategy-expansion/rotation-risk-top.csv", "row": 1, "scripts_read": [ "scripts/search_expansion_rotation.py", "scripts/refine_expansion_rotation_risk.py" ], "reports_read": [ "reports/strategy-expansion/rotation-risk-total.csv", "reports/strategy-expansion/rotation-risk-top.csv", "reports/strategy-expansion/rotation-risk-horizons.csv", "reports/strategy-expansion/rotation-risk-monthly.csv", "reports/strategy-expansion/rotation-risk-report.md" ] }, "decision_summary": "The prior trade_stats fee basis issue is fixed, regenerated reports match the repaired implementation, and the core equity curve remains free of same-row lookahead.", "checks": { "trade_stats_executed_weights": { "status": "passed", "evidence": "trade_stats computes executed = weights.shift(1).fillna(0.0), matching equity_curve." }, "trade_stats_internal_vol_target_turnover": { "status": "passed", "internal_symbol_weight_turnover_accounted": 16.27442631232471, "evidence": "trade_stats subtracts turnover.loc[segment_index, symbol] * taker_fee * leverage for every active row, including volatility-target scale changes inside an active segment." }, "trade_stats_close_turnover": { "status": "passed", "entry_turnover": 12.914991340355758, "internal_turnover": 16.27442631232471, "close_turnover": 9.128908313425487, "total_symbol_turnover_accounted": 38.318325966105995, "evidence": "When the row after an active segment is flat, trade_stats multiplies by the close-row turnover fee. No synthetic final liquidation is added because equity_curve also does not force final liquidation." }, "generated_report_consistency": { "status": "passed", "top_rows_checked": 30, "unique_bases_checked": 10, "max_diffs": { "trades": 0, "win_rate": 0.0, "profit_factor": 8.881784197001252e-16, "total_return": 4.440892098500626e-16, "annualized_return": 8.326672684688674e-17, "max_drawdown": 9.71445146547012e-17, "calmar": 4.440892098500626e-16, "turnover_per_year": 8.881784197001252e-16 }, "report_file_mtimes": { "scripts/refine_expansion_rotation_risk.py": "2026-05-08 01:26:30 +0800", "reports/strategy-expansion/rotation-risk-total.csv": "2026-05-08 01:33:19 +0800", "reports/strategy-expansion/rotation-risk-top.csv": "2026-05-08 01:33:19 +0800", "reports/strategy-expansion/rotation-risk-horizons.csv": "2026-05-08 01:33:19 +0800", "reports/strategy-expansion/rotation-risk-monthly.csv": "2026-05-08 01:33:19 +0800", "reports/strategy-expansion/rotation-risk-report.md": "2026-05-08 01:33:19 +0800" } }, "lookahead": { "status": "passed", "first_signal_index_utc": "2020-04-30 00:00:00+00:00", "first_executed_index_utc": "2020-04-30 01:00:00+00:00", "evidence": "Signals and volatility-target sizing are converted to returns only after equity_curve shifts weights by one row." }, "return_slicing": { "status": "passed", "evidence": "Horizon returns are computed from slices of the already compounded equity series; monthly rows chain from previous month-end equity." } }, "candidate_parameters": { "family": "trend_basket", "bar": "1h", "universe": "BTC-USDT-SWAP,ETH-USDT-SWAP", "lookback": 720, "trend": 1440, "btc_trend": 2880, "rebalance": 168, "top_n": 2, "min_momentum": 0.0, "btc_min_momentum": 0.0, "vol_lookback": 336, "max_vol": 0.03, "leverage": 0.75, "exposure": 0.5, "vol_target": 0.2 }, "recomputed_candidate_metrics": { "first_candle_utc": "2019-12-25 00:00:00+00:00", "last_candle_utc": "2026-05-03 15:00:00+00:00", "rows": 55720, "total_return": 1.520238100611786, "annualized_return": 0.1564147619507854, "max_drawdown": 0.07718283753429936, "calmar": 2.0265484782323027, "turnover_total": 38.31832596610607, "turnover_per_year": 6.024310117968542, "trades": 45, "win_rate": 0.5777777777777777, "profit_factor": 7.384619055503101, "old_entry_exit_only_profit_factor": 7.4386055102893875 }, "reported_metric_diffs": { "total_return": 0.0, "annualized_return": 0.0, "max_drawdown": 5.551115123125783e-17, "calmar": 0.0, "turnover_per_year": 0.0, "trades": 0, "win_rate": 0.0, "profit_factor": 0.0 } }