“You could publish trading rules in the newspaper and no one would follow them. The key is consistency and discipline.”
Richard Dennis
Not many portfolio managers can claim a track record compounding at roughly 20% per year over more than 26 years of trading.
Paul Mulvaney is one of them.
He is the CEO and CIO of Mulvaney Capital Management, the London-based CTA he founded in March 1999. According to the firm’s own materials, the program has run unchanged since inception, entirely systematic, long-term, and built around a single idea: markets adjust gradually to changes in fundamentals, and those gradual adjustments are the driving force behind trends.
Today, Mulvaney is regarded as one of the most respected names in the CTA industry, with what may be the most impressive long-term record in the field. For context, a $100,000 investment made at inception would be worth almost $10 million today, net of fees. After +89% in 2022, +51% in 2023 and +83% in 2024, the momentum has continued into 2026: as of the end of March, performance is already up approximately +65% year-to-date.
This track record has clearly propelled Mulvaney from a niche name admired by CTA connoisseurs to a household name among trend-following practitioners.
Michael Covel, author of Trend Following, has repeatedly pointed to Mulvaney as an example of how classical trend-following principles (applied with conviction and consistency) can produce outstanding long-term results. On several occasions, he has suggested that reverse-engineering the rules of successful trend managers is one of the most instructive exercises a systematic trader can undertake.
Today, we take on that challenge.
By leveraging a replication framework built around thousands of synthetic CTAs, we attempt to reverse-engineer Mulvaney’s trading rules: if you are curious to see what this exercise tells us about his style, we think this piece will be well worth your time.
What We Know
The starting point of any reverse-engineering exercise is to first establish a set of priors: assumptions that act as fixed points for all subsequent adjustments and calibrations.
In Mulvaney’s case, we are in a relatively comfortable position for two reasons.
First, a substantial body of material is publicly available, ranging from interviews to the firm's institutional presentations and a long series of monthly commentaries dating back to 2000. We have spent the past few weeks going through this archive, and the picture that emerges is remarkably coherent.
Second, Mulvaney’s trading style is clearly identifiable and, judging by what the firm has disclosed, has remained consistent throughout the entire life of the fund. In Paul’s own words, “the system has not changed since inception”.
Against that backdrop, five themes clearly stand out.
1) A Broad Futures Universe
The Mulvaney Capital Global Diversified Program trades a universe of 45 futures markets, spanning equities, interest rates, currencies, energy, metals, softs, and agricultural and livestock contracts.
Critically, this universe extends well beyond the most liquid mainstream contracts. Mulvaney is perhaps most famously associated with the cocoa trade of 2023–2024, one of the most remarkable trend trades of the past several decades, and a position that would have been effectively invisible to managers who restrict themselves to deep, liquid markets.
It appears clear that the willingness to trade less crowded instruments is a defining characteristic of his approach: for our synthetic CTA replicas we construct a universe of roughly 40 futures markets covering the same sectors.
2) Donchian Channel Breakouts
Mulvaney's buy-sell engine is likely a canonical Donchian channel breakout: new N-day highs generate long entries, new N-day lows generate short entries. The firm's own illustrative chart, recently circulated on social media, depicts exactly this type of behavior.
Both the firm’s website and multiple interviews emphasize the long-term nature of the program, with positions held for roughly six months on average, therefore we do not expect the Donchian lookback to be short-dated. Medium to long-term is the only range consistent with Mulvaney’s stated time frame and his repeated preference for filtering out short-term noise.
3) Gradual Capital Commitment
Mulvaney does not seem to deploy his full position at the initial breakout. Instead, exposure is built up in stages as the trend develops, with additional contracts added at what seem to be predefined profit thresholds.
Only once the trend has extended sufficiently does the position reach its maximum size. In the firm’s institutional material, the illustrative winning trade shows exposure scaling incrementally along the trend, while the losing-trade example is stopped out near the initial, pivot-sized entry.
4) A Volatility-Based Trailing Stop
Exits appear to be dictated by a trailing stop that moves only in the direction of the trade: for long positions, the stop can move up but never down; for shorts, the opposite.
Hitting the trailing stop is, crucially, the only reason to exit. There are no profit targets, and Mulvaney has been unambiguous on this point for more than two decades.
“There is no profit taking per se. We only exit on stop-losses, because profit taking would interfere with the unlimited upside potential we have, in theory, on every position.”
Paul Mulvaney
The mechanics of the stop itself seem quite sophisticated. In a 2006 interview for Hedgeweek, Paul described the approach as follows:
“For long positions, our trailing stops are initially placed at levels which the system estimates have certain probabilities of being penetrated over various periods of time into the future. On reaching full position size, our stop losses continue to be repositioned daily in accordance with a volatility analysis.”
Paul Mulvaney
In the interest of parsimony, we have chosen to use the midline of the Donchian channel as our trailing exit.
We find that this choice has a desirable empirical property: as the trend develops and the channel range expands, the midline moves progressively further from the channel extremes, accommodating rising volatility without any additional scaling parameter (it may grow more distant from one boundary, but it will not reverse its direction).
What we layer on top is a fixed initial stop, set at the inception of the trade, which may sit closer to the entry price than the midline. This is intended to capture the possibility that Mulvaney opens positions with a tighter initial risk threshold before transitioning to the standard Donchian midline as the trailing exit once the trade has room to develop.
5) Risk-Based Position Sizing
Mulvaney suggests he commits only "a small percentage of equity" per trade, which is consistent with a canonical equal-loss sizing methodology: define a maximum acceptable loss at the portfolio level and size each trade such that, if every position hits its stop simultaneously, the total portfolio loss does not exceed that pre-determined threshold.
What We Don’t Know
Despite the volume of publicly available material, a handful of key parameters have never been explicitly disclosed. These are precisely the degrees of freedom our reverse-engineering exercise needs to pin down:
Per-trade risk allocation - The open question is whether that risk budget is distributed equally across all markets (what we call Loss Parity, or 1/N risk allocation), or first allocated across sectors and then equally across markets within each sector (what we call Hierarchical Loss Parity, HLP).
Donchian lookback period - Somewhere in the medium-to-long-term range, but exactly how long?
Fixed stop level - Since position sizing equalizes initial risk, initial stop distance does not affect loss per trade but instead governs stop-out frequency. Tighter stops increase early exits, while looser stops reduce premature termination. At the same time, tighter stops mechanically allow for higher position sizing, and thus greater upside participation when trends persist.
Pyramiding specification - How many layers is the program designed to add? How aggressively, and at what threshold of open-trade profit does each new layer trigger?
Directional bias - Are long and short positions treated symmetrically, or is one side deliberately scaled down?
Execution lag - When a new signal fires, is the trade executed on the close of the same day, the next day's close, or with a further delay?
Reverse-Engineering Mulvaney’s Returns
The starting point is what we call “grid” construction. For each feature of the trend program, we define a range of plausible specifications: every combination across features generates a distinct synthetic CTA specification.
In total, our grid yields 4,320 fully specified trend programs: the parameters swept, along with their tested values, are summarized in the table below.
The rules of the trading program itself are quite straightforward. At its core, the system is a breakout strategy with loss-based position sizing and a pyramiding overlay. The full logic is reducible to a handful of conditions:
ENTRY SIGNAL
Long if Close >= Donchian High
Short if Close <= Donchian Low
----------------------------------------------------------------------
INITIAL FIXED STOP
Channel Width = Donchian High - Donchian Low
Long = Donchian High - p x Channel Width
Short = Donchian Low + p x Channel Width
----------------------------------------------------------------------
TRAILING STOP
Donchian Midline = (Donchian High + Donchian Low) / 2
----------------------------------------------------------------------
POSITION SIZING
Equal-Market Loss Parity:
Contracts = (15% x Equity / Number of Markets) / DollarStopRisk
Hierarchical Loss Parity:
Contracts = (15% x Equity / Number of Sectors / Markets in Sector) / DollarStopRisk
----------------------------------------------------------------------
PYRAMIDING MULTIPLIER
r = cumulative open-trade profit / initial stop risk
m = min(cap, 1 + floor(max(0, r) / K))
----------------------------------------------------------------------
POSITION MANAGEMENT
Contracts stay untouched unless signal changes state or pyramiding event occurs
Pyramiding events can only increase exposure
----------------------------------------------------------------------
CASH
Futures P&L is combined with a collateral cash return equal to
Fama-French risk-free rate - 100 bpsThe resulting AUM path is sampled at month-end. Before any comparison is made, each replica is volatility-scaled to match Mulvaney’s realized volatility over the overlapping sample: this step matters because fees are applied after scaling, meaning the 2% management fee and 20% high-water-mark (HWM) performance fee are netted against a return series running at Mulvaney’s volatility level, ensuring a like-for-like comparison.
Finally, each synthetic CTA time series is regressed against Mulvaney's monthly returns via ordinary least squares:
Every specification is then ranked by the R² of that regression: a higher R² suggests the replica tracks Mulvaney more closely, and its parameter combination is therefore assumed to be nearer to his actual rules.
Note - Because the replica is constructed at daily frequency but identification relies solely on monthly returns, the problem is inherently under-constrained (multiple structurally distinct trading processes can produce statistically indistinguishable monthly series). R² should therefore be read as a coarse filter for identifying plausible candidate models, not as a definitive selection criterion. The output of this exercise is best understood as a region of plausible parameter combinations rather than a single best-fit answer.
What the Data Tells Us
When we narrow the 4,320 replicas down to the top 10 by highest R², the results are remarkably consistent. Put in different words, the parameters that best capture Mulvaney’s returns seem to cluster around coherent values.

The best-fit synthetic CTAs achieve R² values in the range of 0.71 to 0.73, representing a ~45% improvement in explanatory power over the SG Trend Index (a widely used benchmark among trend-following managers), with correlations sitting tightly between 0.84 and 0.85.
At its core, his breakout approach seems to be calibrated on rolling windows of 6 months: waiting for six-month highs to initiate long positions and six-months low to initiate short ones.
The data suggests that Mulvaney does not underweight short positions relative to long ones, and we estimate that execution is likely carried out over a 24-to-48-hour window following a buy/sell signal.
Risk appears to be allocated using a straightforward loss parity configuration, distributed equally across the futures in the traded universe, rather than first splitting the risk budget within sectors. This choice implies that risk allocation is engineered ex-ante at the universe-construction stage, since the number of futures per sector effectively determines each sector's weight in the portfolio.
The ten best-fit replicas suggest that when a position is first opened, a fixed stop is placed at the Donchian high or low, offset inward by roughly one-third of the channel's range. As the position moves into profit, this initial stop is replaced by the midline trailing stop, which then takes over for the remainder of the trade.

Notably, even when Mulvaney is compared against the 10 best-fit replicas before applying the 2% and 20% fee structure, his average annualized alpha relative to them remains slightly above zero in most cases.
There is a final caveat to consider, and it is the most humbling.
Since 2022, Mulvaney has delivered a run of results that our synthetic CTAs do not fully reproduce. Our model captures the bulk of the monthly variance, but the magnitude of the recent run-up is only partially replicated.
This gap becomes particularly visible around 2023–2024, coinciding with the now-famous cocoa trade, where Mulvaney built and held a concentrated long position through one of the most extreme commodity moves in recent memory, something our replicas were unable to capture in quite the same way.
Part of this gap likely reflects a universe effect, as our basket does not track Mulvaney’s exactly. The larger part, however, is almost certainly due to refinements in pyramiding and position sizing that our synthetic replicas do not capture.
Chapeau.
A Word of Caution
Reverse-engineering Mulvaney’s rules is one thing. Trading them is another.
His track record can be reasonably approximated by a simple set of systematic rules, but simple does not mean easy.
Behind his staggering returns lies a turbulent equity curve that would test the conviction of even the most seasoned investors, demanding a rare tolerance for drawdowns.
An analysis of his underwater curve (the chart that tracks how far the strategy sits below its all-time high at any point in time) reveals that he has historically spent approximately 82% of months in a drawdown.
And within that condition, the average underwater value is around -15%, a persistent state of discomfort during which every instinct pushes toward changing something: adding a filter, smoothing the equity curve, or layering on a complementary strategy to make the ride more tolerable.
Mulvaney has faced that pressure for a quarter of a century and never acted on it. Such discipline is not a footnote to his track record: we believe it is a core ingredient of it, and one that cannot be extracted from a ruleset.
Then there is the practical reality.
Trading this system across a universe of 40 or more futures markets with a sufficient capital buffer demands several million dollars of starting equity. At that scale, and given Mulvaney’s volatility profile, a single bad month can easily translate into seven-figure losses.
So yes, we can reverse-engineer the rules. We can build the system, run the backtest, and show you that the logic holds…
What we cannot give you is the stomach to trade it, enough capital to size it properly, or the 25-year track record of sticking with it when nothing seems to work.
A Gift For Our Readers
As a thank-you to our readers for their continued support, we’ve put together an interactive online tool that allows you to build and backtest your own synthetic replica of Mulvaney performance.
You can experiment with the same variables we used in our replication study, including different lookback periods, fixed stop losses, as well as adjustable management and performance fee structures. Whether you want to adhere to the parameters we found to best fit Mulvaney, or explore entirely different combinations, the tool gives you full flexibility to test your assumptions.
We’ve made it possible to download a plot of your synthetic CTA, along with a direct link to the relative parameter set. Feel free to explore the tool and share on social media any replica that, in your view, comes closest to Mulvaney’s phenomenal track record.
Conclusion
Mulvaney's approach is, in essence, very coherent with what he has publicly disclosed: a long-term trend-following program built on Donchian breakouts, with exposure to less liquid markets and disciplined pyramiding into winners.
Nothing that any moderately capable systematic trader could not write in a few hundred lines of code.
And yet, as Richard Dennis reminds us… “you could publish trading rules in the newspaper and no one would follow them.”
Mulvaney is living proof that returns don't stem from signals alone. What has made his returns achievable in practice is the willingness to run the same system without tinkering for a quarter of a century, through drawdowns that would have dispatched most of his peers.
If anything, this exercise reinforces a view we have expressed before: in systematic investing, the interesting question is rarely “what are the rules?”, but rather “how do you build a business and a psychology that can execute those rules, exactly as written, for 25 years?”.
A final note on methodology. The replica method presented here is, by design, a first-pass simplification: a deliberately parsimonious model intended to characterize the broad nature of Mulvaney’s strategy. The most important shortcut concerns the trailing-stop mechanism. As discussed earlier, Mulvaney’s public material describes a probabilistically calibrated stop, while our replica uses the Donchian channel midpoint as a proxy. We chose this simplification deliberately, to surface the dominant features of his style without getting lost in the parameterization of the exit.
We would be interested to hear your views, particularly from those who have done their own reverse-engineering. Do our priors hold up against yours? And if you know something we do not, we would genuinely welcome it.
If you found this article useful, feel free to share it with other practitioners, leave a comment with your perspective, or reach out at info@concretumgroup.com
Disclaimer
This publication is provided by Concretum Group for informational, educational, and research purposes only. It does not constitute investment, financial, legal, or tax advice, nor a recommendation to buy or sell any security, instrument, strategy, or investment product. All investments involve risk, including possible loss of principal. Past performance, backtested performance, and historical analysis are not reliable indicators of future results. Readers should conduct their own research and consult qualified professionals before making investment decisions.
Full disclaimer: https://concretumgroup.com/disclaimer/











Excellent analysis and good insights! My one complaint is that the lookback was bounded to [126, 315]. All 10 best-fit models used a 126-day lookback (the minimum of the range), which suggests that a shorter lookback might have worked even better. I'd like to see an extension down to (say) 63 days. Would the 126-day lookback still work best in that case?
Following systematic trading rules and having positions with unlimited upside leads to good outcomes.