745174f0e6
Root cause: iceberg signal generator produced object-dtype entries that crashed VectorBT's numba JIT compiler with 'non-precise type array(pyobject, 1d, C)'. All 28 sweep combos returned 0 trades. Fixes: - iceberg: lower vol spike threshold (1.3→1.15), require 2/3 consecutive same-direction spikes (not just single bar) - exit when spike subsides (not arbitrary 5-bar hold) - .astype(bool) on all entries/exits before returning from _generate_signals, preventing numba JIT errors Results (36/36 succeeded): iceberg 1d 2000b BTC S=0.18 85t ret=9.38% (best) iceberg 15m 100b BTC S=-36.34 4t ret=-0.18% (worst) Consistently negative Sharpe except 1d interval — volume-spike following loses on sub-daily timescales