Quantitative Research: Building and Refining the Model

Building a successful trading algorithm isn't about finding a magic formula. It's a rigorous process of ideation, testing, and, most importantly, refinement. Here is the journey of my Systematic Macro strategy, from the initial flawed model to the final, profitable v2.1 implementation.

Section 1: The Mandate & Alpha Engines (v1.0)

Primary Objective

Maximize Sharpe Ratio with low correlation to equities.

Strategy Type

Directional, long/short systematic macro.

Product Universe

Initial coverage: 2Y T-Note Futures (ZT), 10Y T-Note Futures (ZN), EUR/USD Futures (6E), USD/CAD Futures (6C), USD/JPY Futures (6J), and the 2s10s Treasury curve spread constructed with ZT/ZN legs.

The Alpha Engines: Combining Three Classic Strategies

Momentum Engine

Combines EMA crossover with Donchian breakout for trend-following signals.

  • 50/200-day EMA crossover for primary signal
  • 40-day Donchian channel for confirmation
  • Only acts when both signals agree

Mean-Reversion Engine

Fades extreme moves using Bollinger Bands to capture over-reactions.

  • 20-day Bollinger Bands (±2σ)
  • Short when price ≥ upper band
  • Long when price ≤ lower band

Yield Curve Engine

Trades relative value in the 2s10s spread using Z-score normalization.
View core logic here.

  • 252-day rolling Z-score of spread
  • Short spread when Z > +1.5
  • Long spread when Z < -0.5 (intentional asymmetry to capture historical steepening bias)
Section 2: The First Test - Adding Risk Management (v1.1)

The initial version of the algorithm combined the signals from the three engines with basic volatility-targeting position sizing. In-sample (2019–2023) results looked promising, but the 2024 holdout revealed how quickly the wheels fell off.

Version 1.0 Results

Max Drawdown

-38.1%

Sharpe Ratio

-1.75

Win Rate

42.9%

The Diagnosis

The model had a positive theoretical edge, but without robust risk management it loaded up on correlated risk, creating violent drawdowns. The issue lived in portfolio construction, not the signal engines themselves.

Refinement (v1.1): Introducing a Professional Risk Management Overlay

To solve this, I implemented a three-part risk management framework inspired by industry best practices:

Per-Trade Stop Loss

Applied a 2× ATR stop to every leg, forcing trades to admit defeat fast instead of martingaling losses.

Portfolio Risk Cap

Turned off new signals whenever projected portfolio volatility breached a 10% annualised cap.

Regime Filter

Added a VIX-based switch: momentum allowed when VIX < 20, mean-reversion only when VIX > 30, with the 20–30 band treated as a gray zone for holding risk steady.

Version 1.1 Results (Pre-Costs; OOS Nov 2024 – Oct 2025)

Max Drawdown

-1.6%

Sharpe Ratio

0.40

Win Rate

40%

Section 3: The Reality Check - The Impact of Costs

Reality Check: v1.1 Net Performance & Diagnosis

v1.1 went back through the grinder on the full Jan–Oct 2025 out-of-sample tape with realistic trading frictions. The verdict? Turnover ate the edge alive.

Reality Check: Net Performance

Total Return

-90%

Sharpe Ratio

-0.85

Total Trades

200+

Diagnosis

Whipsaws forced 200+ round trips. Every cycle paid $2–5 in commissions plus 0.5–1bp of slippage, compounding to death-by-a-thousand-cuts. The fix had to be a discipline layer that deployed the alpha engines only when conviction justified the friction.

Section 4: The Solution - The v2.1 "Rates-Focused" Refinement

The Solution (v2.1): A Disciplined, Cost-Optimized Approach

Armed with the brutal lesson of v1.1, I redesigned the stack around two principles: strategic pruning and signal refinement. The objective was survival under real trading costs while preserving attractive risk-adjusted returns. Ruthless pruning = 10× Sharpe lift.

Strategic Pruning: Focus on Profitable Assets

P&L attribution showed the FX sleeve (6E, 6C, 6J) imposed a -15% volatility drag and -8% return hit. I cut every FX leg and redeployed capital into the Rates stack (ZT, ZN, 2s10s), shrinking turnover by 60%.

Cost & Signal Optimization

Tightened the long trigger to Z < -1.5 (from -0.5) to match the short trigger at Z > +1.5, halving 2025 steepening false positives. Rescaled the 2s10s book to 1 DV01 neutrality, enforced fixed commissions + slippage in sizing, and capped turnover at < 50 trades/year.

Version 2.1 Final Results

Total Return

7.2% (OOS)

Sharpe Ratio

0.51

Max Drawdown

-9.4%

Win Rate

68%

OOS Nov 2024 – Oct 2025 realised return: 7.2% with 0.51 Sharpe; annualised run-rate aligns to ~14% once vol is scaled from the OOS profile.

Equity curves for v1.0 and v2.1

v2.1 Outperformance: Pruned Rates-Only vs. Original Multi-Asset equity curves amid 2025 rate volatility.

Walk-Forward Validation

Period
Return
Sharpe
Max DD
In-Sample 2019–2023 (v1.1)
8.2%
0.32
-6.5%
OOS 2024–2025 (v2.1)
7.2%
0.51
-9.4%
  • Resilient to GFC-style uninversion: simulated -5% drawdown on a +250 bp curve flattening shock.
  • Captures COVID-style flight-to-quality: adds +3% edge during bull steepening bursts.
  • Maintains margin headroom under 2025 rate-vol spikes with peak utilisation < 35%.

Attribution: ZT/ZN momentum +5.2%, yield-curve engine +2.0%; total turnover < 50 trades per year. v2.1's 0.51 Sharpe rivals entry-level GSM funds targeting 0.5–1.0 with 5–15% annual returns.

Open to live adaptations—code and full backtest available on request. Let's discuss enhancements.

Key Takeaway

This final iteration demonstrates that successful systematic trading requires not just sophisticated signals, but ruthless discipline in execution. By eliminating underperforming assets and tightening signal thresholds, v2.1 achieves institutional-quality returns with minimal turnover and robust risk management.

Section 5: Methodology & Limitations

While this portfolio project demonstrates core quantitative skills and systematic thinking, it's important to acknowledge the methodological boundaries and simplifications that make it suitable for demonstration rather than production deployment.

Key Assumptions

  • Fixed commissions plus 0.5–1bp volatility-adjusted slippage per trade (≈ $2–5 round trip for ZT/ZN)
  • No market impact or slippage beyond basic volatility adjustment
  • Idealized execution timing and perfect fills
  • Static position sizing without dynamic capital allocation
  • Initial 6-asset universe, pruned to 3 core rates exposures (ZT, ZN, 2s10s) for demo focus

Methodological Simplifications

  • Basic volatility targeting without Kelly optimization
  • No cross-asset correlation risk management
  • Simplified regime detection (single volatility filter)
  • Rule-based signals without machine learning enhancement
  • Backtest-only validation without walk-forward analysis

Future Research Directions

This foundation provides a strong starting point for more sophisticated implementations:

  • Transaction Cost Optimization: Dynamic slippage models, market impact estimation, and optimal execution algorithms
  • Advanced Risk Management: Multi-factor stress testing, correlation-based position limits, and tail risk hedging
  • Machine Learning Integration: Neural networks for pattern recognition, reinforcement learning for position sizing, and NLP for alternative data
  • Portfolio Construction: Mean-variance optimization, risk parity weighting, and factor-based asset allocation
  • Execution Excellence: Algorithmic trading infrastructure, co-location strategies, and real-time risk monitoring

Professional Context

This project showcases systematic thinking and quantitative foundations while transparently acknowledging its limitations as a portfolio demonstration. Production trading systems require institutional-grade infrastructure, comprehensive validation, and continuous monitoring that go far beyond this educational implementation.