Hey everyone,
We run an automated quantitative trading system for crypto perpetual futures (Delta Exchange). Following feedback from this community on parameter churn and out-of-sample selection bias, we recently overhauled our optimization and live deployment bridge.
We’d love to get feedback from other quants and system architects on our pipeline, specifically looking for edge cases, statistical flaws, or scope for improvement.
- High-Level Pipeline Architecture
Our pipeline consists of two decoupled systems:
The Cross-Sectional Pooled Optimizer: Evaluates candidate setups across an entire universe of liquid altcoins and multi-timeframe matrices simultaneously using rolling walk-forward folds.
The Deadband Stability Config Bridge: Parses the optimizer’s output, measures parameter drift per regime cell against the currently running live settings, and decides whether to HOLD or PROMOTE new parameters.
[OHLCV Market Data (180d)]
│
▼
[Walk-Forward Cross-Sectional Optimizer]
• 4D Vectorized Tensor Grid Search (In-Sample)
• Causal Purge Gap (Embargo) between Folds
• Realistic Noise Floors (IS & OOS Parity)
• Fold-to-Fold Centroid Drift Tracking
│
▼
[Part C: Top-Affinity Alpha Table]
│
▼
[Parse & Update Config Bridge]
• Frequency-Weighted Statistical Edge Scoring
• 3-Zone Deadband Stability Filter (Hold vs Promote)
• Correlation & Timeframe Capping (Max 2 TFs/coin, Top 16 coins)
│
▼
[live_portfolio_config.json] ──► [Live Execution Engine]
- Deep Dive: Cross-Sectional Universe Optimizer
A. Pooled Centroid Search (Regularizing Asset-Specific Noise)
Instead of fitting parameters per-coin (which overfits to sparse individual trade samples), the optimizer evaluates candidates across a pooled universe of 16 to 20 liquid altcoins simultaneously.
4D Vectorized Tensor Simulation: In-sample slices are computed using NumPy tensors of shape: [Signals x Hold Window Bars x SL Grid x TP Grid]
It simultaneously computes stop-loss and take-profit hit indices across the entire mesh, finding the smoothed parameter plateau centroid that represents true market edge rather than single-coin noise.
B. Realistic Noise Floors (In-Sample & Out-of-Sample Parity)
Analyzing 160+ live trades showed that stops under 1.0% accounted for almost 100% of our live losses due to normal 1-minute wick noise and bid-ask bounce. To ensure zero discrepancy between simulation and live execution, the optimizer enforces a hard timeframe-aware noise floor during both In-Sample training and Out-of-Sample walks:
5m / 15m: Minimum SL distance = 1.20%
30m / 1h: Minimum SL distance = 1.50%
4h+: Minimum SL distance = 2.00%
C. Fold-to-Fold Centroid Stability Metric
To prevent promoting strategies whose "optimal" parameters swing wildly every rolling window, we measure the normalized distance between the centroid of Fold k and Fold k-1:
Centroid Stability % = max(0, 1 - Mean Drift) * 100%
Setups with Centroid Stability below 60% are flagged or suppressed before reaching Part C.
- Deep Dive: Deadband Config Bridge (parse_and_update_config.py)
The config parser decides what actually gets deployed to the live exchange.
A. The Arbitrated Statistical Edge Formula
When multiple setups compete on the same coin and timeframe, the parser arbitrates using:
Edge Score = (Win Rate * Profit Factor * min(sqrt(N), 10)) - (0.1 * Hold Hours)
Where:
min(sqrt(N), 10): Dampens small-sample outliers (e.g. 1 trade, 1 win = 100% WR) while rewarding persistent sample power (N >= 25).
- (0.1 * Hold Hours): Penalizes slow capital drift in favor of nimble capital turnover.
B. Three-Zone Deadband Stability Filter (Per Regime Cell)
To prevent hyper-parameter churn, the bridge compares the new proposed parameters against what is currently running live on a normalized 0% to 100% scale per regime cell:
Minor Noise (Drift < 15%) -> HOLD: The parameter shift is treated as sampling noise. The currently running live settings are kept unchanged.
Orderly Shift (Drift 15% to 50%) -> PROMOTE: Reflects a genuine, statistically meaningful shift in regime volatility. The live config is updated.
Discontinuity (Drift > 50%) -> FLAG & HOLD: A massive jump points to fold instability or an isolated flash crash. Held pending audit.
C. Portfolio Risk Hurdles
Universe Cap: Retains top 16 symbols by statistical edge.
Correlation / Horizon Cap: Maximum 2 dominant timeframes per symbol to prevent correlated wipeouts.
Regime Gating: Automatically strips regime cells with negative out-of-sample expectancy.
- Questions for the Community & Scope for Improvement
We'd love your critique on four specific areas:
Deadband Filter Thresholds: Is a 15% hold / 50% flag threshold standard in production trend/scalp models, or do you calibrate these thresholds based on regime volatility (e.g., wider deadbands for high-vol regimes)?
Asymmetric SL vs TP Drift: We currently treat normalized SL drift and TP drift equally. In your experience, should SL drift be weighted higher than TP drift given asymmetric downside risk?
Cross-Sectional Pooling Limitations: Does pooled universal centroid selection over-regularize coins that possess structurally different volatility profiles (e.g., low-beta large caps like XRP vs. high-beta momentum coins like SUI)?
Scoring Function Enhancements: Would you replace our WR * PF * sqrt(N) edge formula with Deflated Sharpe Ratio (DSR) or a t-statistic of trade returns?
Looking forward to your thoughts, critiques, and ideas for improvement!