DN Capital Allocation Tournament: Three Risk Budgets, Three Winners
Decentralised News Research · Allocation decisions
Three risk budgets produce three different leaders
The leading policy in DN’s first capital-allocation tournament changes when the drawdown budget changes. At the primary trading-cost setting, a 10% budget admits only the cash control. A 20% budget admits cash and the fixed 40% risk policy, with the latter ranked first. A 40% budget admits all six policies, and four-period momentum leads on mean net return.
That result gives the leaderboard its meaning. Momentum records a 9.43% mean net return across eight separately reset scenarios, alongside a 31.55% worst observed drawdown. It cannot qualify for either of the tighter mandates. Meanwhile, a policy named “reactive 10% drawdown guard” experiences a 32.05% maximum drawdown. The threshold describes when it reacts; it does not bound the loss that can occur before its next decision.
These findings come from an authored synthetic comparison of six rule-based policies. No language model, commercial agent, historical market dataset or real portfolio was tested. The exercise makes allocation rules, accounting and eligibility visible before a later tournament introduces actual AI systems.
| Policy | Mean net return | Worst drawdown | Worst net return | Mean fees (DN_TEST) | Mean gross turnover |
|---|---|---|---|---|---|
| Momentum (4 periods) | 9.43% | 31.55% | −11.79% | 232.80 | 2.25× |
| Fixed 80% risk | 6.91% | 32.05% | −28.49% | 202.54 | 1.97× |
| Inverse volatility (4 periods) | 6.79% | 32.05% | −28.49% | 209.84 | 2.05× |
| Reactive 10% guard | 4.80% | 32.05% | −23.86% | 194.52 | 1.89× |
| Fixed 40% risk | 3.23% | 16.02% | −15.42% | 103.85 | 1.02× |
| Cash control | 0.00% | 0.00% | 0.00% | 0.00 | 0.00× |
Means cover eight reset episodes. Fees include entry, rebalancing and final liquidation; displayed values are rounded.
What competed under the same constraints
Every episode starts with 100,000 invented DN_TEST units in cash. Two synthetic risky assets, A and B, provide the same return path to every policy in that scenario. Each episode lasts 64 abstract periods, with no calendar duration. There is no borrowing, leverage or shorting. Cash earns zero and has none of the issuer, custody, depeg or inflation risks that real cash-like holdings can carry.
The cash control makes no trades. Two fixed-allocation policies target either 20% in each risky asset or 40% in each, rebalancing each period. Momentum waits for four observed returns, then uses their compounded performance to select positive-trending assets. It requests 45% in the stronger asset and 35% in the other when both qualify, 45% in the sole positive asset, or cash when neither qualifies.
Inverse volatility starts at 40% per risky asset, then uses the preceding four returns’ population standard deviations, with a 0.2% floor, to split an 80% requested risk allocation. The reactive guard starts at the same 40%/40% exposure and switches permanently to cash after observing a drawdown of at least 10% at a decision point.
A shared executor limits each risky holding to 45% and total risky exposure to 80%, measured after trading costs. It clips and scales requests without reallocating clipped capital. Consequently, a policy requesting 80% risk can finish with less. These are enforced execution rules, the distinction explored in DN’s guide to checking AI agent spending limits.
Read the eligibility decision before the return ranking
For each selected cost setting, a policy must stay within the chosen drawdown budget in every tested scenario. Eligible policies are then ordered by mean net return, followed by lower worst drawdown, lower mean gross turnover and finally policy ID. An attractive average cannot cancel a breach in another scenario.
At 10 basis points per trade, fixed 40% risk returns a mean 3.23%, with a worst drawdown of 16.02%. It therefore leads the 20% mandate while failing the 10% mandate. Cash records zero return and zero drawdown in this idealized environment. Its eligibility says nothing about whether holding real cash meets an organisation’s inflation, liquidity or investment objectives.
The same three mandate leaders appear at the tested 0, 10 and 50 basis-point settings. That is stability across three declared cost assumptions on these paths. It does not establish stability across unseen markets, other cost structures or alternative definitions of acceptable risk.
Compare the drawdown mandates
Select a budget to display the precomputed leader at 10 basis points. This changes the eligibility filter, not the experiment.
Eligibility is observed across these eight paths, not a guaranteed loss limit. All policies and budgets remain visible below.
| Policy | 10% budget | 20% budget | 40% budget |
|---|---|---|---|
| Momentum (4 periods) | Ineligible | Ineligible | Eligible · leads |
| Fixed 80% risk | Ineligible | Ineligible | Eligible |
| Inverse volatility (4 periods) | Ineligible | Ineligible | Eligible |
| Reactive 10% guard | Ineligible | Ineligible | Eligible |
| Fixed 40% risk | Ineligible | Eligible · leads | Eligible |
| Cash control | Eligible · leads | Eligible | Eligible |
How a 10% guard suffered a 32.05% drawdown
The late joint-crash path contains 63 rising periods followed by a final drop of 35% in A and 45% in B. A portfolio entering that move with 40% in each asset loses approximately 32% of its value from the price move alone. The guard cannot observe the decline before it happens or sell partway through an indivisible model period. Final liquidation adds costs, taking its measured drawdown to 32.05%.
Despite that decline from its peak, the guard finishes the episode 1.48% above its starting balance. Earlier gains explain the apparent tension. Terminal return measures where the account ends relative to its initial capital; maximum drawdown measures the deepest fall from an earlier peak. A positive ending balance can coexist with a severe intervening loss.
Goldberg and Mahmoud’s research treats maximum drawdown as a peak-to-trough measure and examines the importance of return dependence. DN uses a simple observed maximum here, rather than their Conditional Expected Drawdown framework. The relevant lesson is to retain the portfolio path alongside its endpoint. [4]
The guard’s worst terminal result occurs elsewhere: it loses 23.86% in the crash-then-rebound scenario after switching to cash and missing the recovery. In the persistent decline it limits the terminal loss to 10.52%, compared with 28.49% for fixed 80% risk. These cases expose a trade-off between reacting to losses and remaining exposed to a rebound. They do not identify a universally preferable response.
The 9.43% figure is an average of reset experiments
Momentum’s headline figure is the arithmetic mean of eight episode returns. Every episode independently restarts with 100,000 units. The experiment never runs one portfolio through all eight paths in sequence, and the mean is not a compounded return for such a portfolio. Equal weighting also does not imply that the scenarios have equal probabilities in the world.
The variation matters. At 10 basis points, momentum returns 62.95% in the broad rally, 19.81% in leadership rotation and −11.79% in the single-asset shock. It holds cash throughout the persistent decline and alternating-shock paths. Its broad-rally result is below fixed 80% risk’s 66.24%, partly because momentum waits for four observations before entering. Leading the average does not mean leading every episode.
| Path | Cash | Fixed 40% | Fixed 80% | Momentum | Inverse volatility | 10% guard |
|---|---|---|---|---|---|---|
| Broad rally | 0.00% | 28.99% | 66.24% | 62.95% | 66.24% | 66.24% |
| Persistent decline | 0.00% | −15.42% | −28.49% | 0.00% | −28.49% | −10.52% |
| Crash then rebound | 0.00% | 4.69% | 6.65% | 3.22% | 6.57% | −23.86% |
| Late joint crash | 0.00% | 2.65% | 1.48% | 0.23% | 1.48% | 1.48% |
| Alternating shocks | 0.00% | −0.18% | −0.39% | 0.00% | −0.34% | −0.39% |
| Leadership rotation | 0.00% | 7.87% | 16.34% | 19.81% | 16.34% | 16.34% |
| Quiet mixed path | 0.00% | 0.56% | 1.11% | 1.03% | 1.07% | 1.11% |
| Single-asset shock | 0.00% | −3.33% | −7.71% | −11.79% | −8.58% | −12.00% |
There are 48 primary episodes: six policies multiplied by eight scenarios. Repeating them at two other cost settings produces 144 episode records in total. The policies share paths, and cost variants reuse those paths. This is not a sample of 144 independent market observations. The abstract periods also provide no basis for an annualized return claim.
Costs belong inside the portfolio accounting
The primary setting charges 10 basis points, or 0.10%, on the absolute notional bought or sold in each risky asset. Entry, rebalancing and final exit all incur the applicable charge. The executor solves for holdings after fees have been funded from the portfolio, so target weights describe the post-cost account rather than an account with an unpaid bill.
All remaining risky holdings are sold after the 64th return. Terminal wealth is therefore modeled cash after exit costs. Reported returns already include those costs; deducting the fee total again would count them twice. Cvxportfolio’s result documentation makes a similar accounting distinction: logged costs are already reflected in the simulator’s holdings. DN does not use Cvxportfolio to run this experiment. [2]
Momentum’s mean net return falls from 9.69% at zero cost to 9.43% at 10 basis points and 8.43% at 50 basis points. Its mean recorded trading cost at the primary setting is 232.80 DN_TEST units. The return difference between cost settings also reflects how reduced capital affects subsequent holdings and returns. It is not simply a fee total subtracted from an otherwise unchanged final balance.
| Policy | 0 basis points | 10 basis points | 50 basis points |
|---|---|---|---|
| Momentum (4 periods) | 9.69% | 9.43% | 8.43% |
| Fixed 80% risk | 7.11% | 6.91% | 6.07% |
| Inverse volatility (4 periods) | 7.00% | 6.79% | 5.92% |
| Reactive 10% guard | 5.00% | 4.80% | 4.07% |
| Fixed 40% risk | 3.33% | 3.23% | 2.80% |
| Cash control | 0.00% | 0.00% | 0.00% |
DN reports gross turnover as absolute risky-asset trading divided by pretrade portfolio value, summed across the episode, including exit. It applies no factor of one half. Cvxportfolio’s documented turnover convention does include that factor, so identically named columns are not automatically comparable. [2] A later AI-agent comparison must also budget model, tool and operational expenses, as discussed in the Agent Cost Stack.
A compliant rebalance can still drift beyond a limit
Allocation bounds are checked immediately after execution. The subsequent asset move changes weights without another trade. A rising risky asset can push its weight above a cap, or combined gains can reduce cash below 20% of the enlarged portfolio. The results record this market-driven drift separately from execution-time constraint violations.
The scored CSV reports zero execution-constraint violations across all 144 episodes. That establishes a narrower result than continuous compliance. For example, fixed 80% risk records drift in all 64 broad-rally periods despite complying at each rebalance. A real mandate would need to define whether limits apply at execution, continuously, or with a permitted correction interval.
The simulation also assumes fractional positions and immediate fills at its decision mark. It includes no spread, slippage, market impact, failed fill or withdrawal delay. Modeled terminal cash therefore does not demonstrate executable liquidation in a real venue. DN’s cash-recovery analysis for small treasuries provides the relevant operational context.
Past-only decisions do not make this a blind test
At each decision, policies receive previously realized returns, current holdings and their own state. They receive neither the current period’s unrevealed return nor a scenario name. That cutoff constrains the policy’s information. It does not erase what the designers knew: DN authored all eight paths and specified the competing rules with those scenarios available.
The protocol, fixtures, cost settings, metrics and tie-breaks were fixed before the first scored run, with a manifest recording their hashes. This makes the declared experiment auditable and later changes detectable. It cannot turn authored paths into an unseen evaluation set. Any changes prompted by these results require a disclosed new version.
Bailey and co-authors explain how selecting strategies after repeated searches over a finite dataset can produce misleading backtest findings. Their analysis motivates careful separation of selection and evaluation; DN has not estimated a probability of overfitting for this small synthetic suite. Freezing the present design is a provenance control, not evidence of generalization. [3]
Scenario selection remains consequential. This suite includes a rally, a persistent decline, two different crash timings, alternating shocks, leadership rotation, a quiet mixed path and a single-asset shock. Changing their magnitudes, duration or weighting could change the ranking. No claim about which policy will lead on a new market path follows from this ordering.
What a real-agent tournament would have to add
This release supplies transparent baselines and a common accounting environment. A next stage should require actual agent systems to operate through the same observation and action interface, with versioned models, prompts, tools and resource budgets. Decisions, refusals, malformed actions and execution failures need retained records, rather than being discarded when a run becomes inconvenient.
FinRL-Meta documents common environments for algorithm comparisons and separation between training, testing and later trading evaluation. Those are useful methodological reference points. DN v0.1 uses neither FinRL nor reinforcement learning, and has no training stage. A future learned-agent study must declare what data influenced development and preserve genuinely unexposed evaluation material. [1]
Stochastic systems would need repeated runs and a stated uncertainty analysis. Costs would need to include inference and tool usage alongside execution assumptions. Operational tests should examine unavailable quotes, delayed actions, rejected orders and recovery without silently replacing failed attempts. New evaluation sets should be versioned, with every change to policies or scoring visible before results are interpreted.
A public leaderboard could then distinguish authored synthetic scenarios, held-out evaluation, historical simulation, paper execution and any separately authorised live study. Each stage answers different questions. The existing DN Agentic Treasury Benchmark addresses architecture and financial controls; this allocation experiment does not convert that framework’s unassessed platforms into tested competitors.
Authorship and evidence boundary
DN developed this experiment and article with AI assistance. The designers chose both the rules and the paths. The release reports computed outcomes under that declared model, with source, episode records and accounting traces available for inspection. A separate assistant reviewed the accounting, policy information cutoff and ranking rules; this was not a named human audit.
The results establish how these six implementations behave in the specified synthetic environment. They do not establish production profitability, real-agent reasoning ability, reliable loss ceilings or suitability for allocating real funds. The next evidential step is to challenge the frozen baselines on separately designed evaluation conditions and record where their conclusions stop holding.
Download and reproduce the release
Download all 144 episode results (CSV) · Download the complete reproducibility package (ZIP).
The archive contains the protocol, inputs, simulator, separate review script, full traces, rankings, review report and checksums. Extract it and run these commands from its root using Python 3 and the standard library:
python3 test/run_tournament.py
python3 test/review_results.py --report review-report-local.json
The first command recreates results; the second writes a local review report. One fresh-process rerun reproduced all five output files byte for byte. The review also checked 72 altered-future-suffix cases: these are validation-only challenges, excluded from the 144 scored episodes. No network, credentials or external packages are required.
Primary sources
- FinRL-Meta: Overview — Common environments and evaluation-stage separation.
- Cvxportfolio 1.5.0: Back-test result — Turnover convention and costs within holdings.
- Bailey et al.: The Probability of Backtest Overfitting (2015) — Strategy selection and backtest overfitting.
- Goldberg and Mahmoud: Drawdown: From Practice to Theory and Back Again (2016) — Drawdown and return dependence.
Frequently asked questions
Did this tournament test AI agents or real investment performance?
No. It compared six rule-based policies on eight deliberately authored synthetic paths. No LLM, commercial agent, historical market, real account or live trading was tested.
Does the 9.43% mean return describe one compounded portfolio?
No. It is the arithmetic mean of eight separately reset momentum episodes at 10 basis points. It is neither annualized nor a return from one portfolio trading through all eight paths.
Does a 10% drawdown guard guarantee a 10% loss limit?
No. The reactive guard can act only after observing a decline. Its worst drawdown was 32.05% in the released suite. A drawdown budget filters observed results; it does not guarantee future losses remain within that budget.
Disclosure and corrections
No affiliate offer or paid ranking appears here. Change log: 21 October 2026 — v0.1 released. Send corrections through the DN contact page, identifying the version, policy, scenario and calculation.