Volatility-scaled sizing: the first upgrade that was actually real

Risk management · 3 min

In my previous research, I found that diversifying across EA "sleeves" hit a ceiling with version 1.2.0, yielding a Calmar ratio of about 1.4 and a…

Portfolio Volatility Targeting: A Genuine Upgrade

In my previous research, I found that diversifying across EA “sleeves” hit a ceiling with version 1.2.0, yielding a Calmar ratio of about 1.4 and a monthly return of 1.17% at a 10% drawdown. To push past this, I moved away from simple correlation-based diversification and instead focused on time-based risk leveling: volatility targeting. This approach dynamically adjusts exposure based on the portfolio’s realized volatility, reducing risk during choppy or high-volatility periods and expanding it during calmer market conditions. Unlike older equity-based filters that reduce lot sizes when equity drops (which is essentially a lagging indicator), this method uses realized volatility, which is directly tied to the actual risk in the market.

Performance Comparison: Standard vs. Vol-Targeted

By implementing volatility targeting, I achieved a strict improvement across all key metrics. This is the first approach in this series to outperform version 1.2.0 under rigorous forward testing.

MetricStandard (v1.2.0)Vol-Targeted (v1.3.0)
Total Return+152.7%+185.1%
Maximum Drawdown-9.9%-8.9%
Calmar Ratio1.411.88
Monthly Return (at 10% DD)+1.17%+1.57%
Monte Carlo Pass Rate92%94%
Note: The monthly return is standardized to a 10% drawdown for comparison.
The results show that the system is not just performing better but is also more robust. During the choppy market conditions of 2015 to 2020, the Calmar ratio improved significantly from 0.55 to 0.92. During the strong trends of 2021 to 2026, the system correctly increased exposure during low-volatility periods, resulting in higher returns while successfully keeping overall drawdown lower than the original system (-8.9% vs -9.9%).

Implementation and Decision

I have officially upgraded the system to Core System v1.3.0. I tested two implementation methods: a decentralized version where each EA manages its own volatility, and an aggregated version where a master engine calculates the total portfolio volatility and distributes the leverage. The aggregated version theoretically offers a slightly higher monthly return (approximately 1.56%). However, I have decided to reject the aggregated model for live use. It requires a central “master controller” to aggregate equity and distribute leverage, which introduces a single point of failure and adds significant operational complexity. Instead, I am adopting the decentralized v1.3.0. By allowing each EA to manage its own volatility, the system remains robust and easy to deploy across different prop firm accounts. This version has proven its value by improving the Profit Factor (from 1.45 to 1.48) and enhancing intraday safety (M1 worst-case loss improved from 2.83% to 2.10%). The flexibility to inject external leverage series remains in the codebase as a permanent asset, but for now, the decentralized, autonomous approach is the clear winner for real-world reliability.

How this connects

This verification builds on earlier ones (what failed before and what I tried this time, comparisons between approaches).

Code to reproduce

You can reproduce this with the following scripts (see repo).

  • btengine/portfolio_engine.py