AQAI QuantAI research lab for systematic strategies

Automated analysis

This analysis was drafted by our research engine and has not been checked by a human editor. It may contain errors. It separates the paper’s own results from our tests, and any figures called ours come from our own backtest.

Our automated analysisOur backtest

A Drawdown Cap Ends at the Edge of Support

Hsieh proves exact cushion sizing, while the SPY-TLT example keeps every simulated return inside sample support.

2026-09-22 · 6 min read · US equities and ETFs

Reviewing: On Control of Drawdown: Robust Invariance and Optimality · Chung-Han Hsieh · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

Walk-Forward Robust Drawdown-Modulated SPY-TLT Allocation

Backtest period 2020-01-01 to 2024-07-01 · hypothetical, net of modelled costs

Why these figures are not the paper's (2)

The paper reports no results of its own

This is a theoretical paper — derivations and proofs, with no measurement on market data. The backtest below is a strategy we built from its idea, not a test of anything the authors claimed.

Our own audit found this run does not follow the paper faithfully (22)

  • deviation left undescribed by the audit (invalidates: The constant-direction robust-safety result based on membership in the common Gamma does not apply.)
  • deviation left undescribed by the audit (invalidates: The paper's constant-gamma interpretation and associated numerical comparison do not apply.)
  • deviation left undescribed by the audit (invalidates: Theorem 4.4 global optimality; the identity E[V_pi*(N)]=V0 J_0(1); the identity E[R_pi*]=J_0(1)-1.)
  • deviation left undescribed by the audit (invalidates: Theorem 4.4 global optimality; Theorem 5.3 weak and strict improvement over qualifying LTI policies; Figure 1 comparisons.)

18 further finding(s) are described in the note.

These are our findings about our own implementation, not criticisms of the paper. Read the figures below as a description of what we ran.

Jan 2020Total -0.0%Jul 2024
Sharpe
-1.60
Total Return
-0.0%
Max Drawdown
-0.0%
CAGR
-0.0%
Volatility
0.0%
Beta vs SPY
0.00
Trades
1,249

What the paper reports for its own strategy

  • Figure 1 reports higher estimated expected terminal return E[R_pi] for the drawdown-modulated policy than for the optimized LTI benchmark at every positive evaluated d_max, for N = 21, 63, 252; no specific numerical values of E[R_pi] are stated in the text (axis ranges only: ~0-5%, 0-15%, 0-60%). Costs: eps = 5e-5 per asset per stage. Sample: empirical SPY/TLT returns, Jan 2015 - Jul 2026, i.i.d. resampled.
  • Maximum drawdown is guaranteed by construction: P(d* <= d_max) = 1 and V(k) >= (1 - d_max)V_max(k) > 0 for all k with probability one, for any robustly safe policy.

A hard drawdown cap survives only inside its declared return support. Hsieh gives an exact discrete-time rule for sizing a portfolio under that constraint, and the proofs hold. The abstract promises protection against all supported returns. The paper states this condition plainly. Yet its illustration generates paths from the same 2,910 return pairs used to define the support, leaving a return outside that set untested. The claimed advantage over fixed-weight portfolios also relies on a benchmark whose worst one-day net loss is capped by the paper's condition at about 0.089% of wealth when d_max is 20% and N is 252. That figure is our arithmetic from the paper's bound.

The results in the paper are theorems. Its numerical section consists of one illustrative figure without tabulated values. Nothing below compares their work with ours.

The cushion dictates the position

The state consists of account value V, running peak V_max and limit d_max. Hsieh defines the drawdown cushion as V minus (1 minus d_max) times V_max, the dollars remaining above the floor. For an account already above that floor, the first theorem gives an exact condition. A position u stays above it under every return in the declared support if and only if the worst-case loss plus proportional costs does not exceed the cushion. Under box support, the worst case for a long position is the box's lower return bound multiplied by the dollars held.

Worst-case loss grows linearly with position size. Provided the declared support contains no riskless allocation, every safe position can therefore be written as the cushion times a normalized direction. Hsieh calls that direction gamma. It belongs to a fixed set of allocations whose worst-case net loss is at most 1 per unit of cushion. The resulting exposure follows the account state mechanically. At the peak, with d_max at 20%, the cushion equals 20% of wealth. At the floor, both cushion and every risky position fall to zero. Remove costs and hold the box constant through time, and the condition becomes the drawdown modulation lemma of Hsieh and Barmish (2017).

The second result supplies the return model. Expected terminal wealth is the objective, so the policy deploys the cushion toward assets with positive expected net return. It requires returns to be independent across stages and excludes any allocation that earns money under every supported return. Given those assumptions, the wealth and peak state reduces to z = V/V_max, with z in [1 minus d_max, 1]. A one-dimensional Bellman recursion produces an optimal feedback policy that is measurable and safe.

The illustration draws on 2,910 daily SPY and TLT return pairs observed from January 2015 through July 2026. Every pair receives equal probability, and the collection becomes the support. For each configuration, the paper estimates the modulated policy's expected return from 300,000 i.i.d. paths. The fixed-weight benchmark has a closed-form expectation. Horizons are 21, 63 and 252 days. Costs are 0.5 basis points per asset per stage, while d_max ranges from 0 to 0.60 in 0.05 steps. On figure axes extending to roughly 5%, 15% and 60% expected return, the modulated policy beats the optimized fixed-weight benchmark at every positive limit. At d_max = 0, both policies hold nothing and return zero.

How much does supported really cover?

Hsieh describes the safety result as distribution-free because the limit holds along every supported return path, and therefore with probability one. The word "hence" depends entirely on returns remaining inside the declared set with probability one. The paper makes that assumption explicit and conditions its guarantee on it.

In the illustration, the support comprises the 2,910 observed pairs. Simulation then samples exclusively from those same 2,910 pairs. A simulated path cannot breach the cap under that construction, so the figure gives no breach frequency when support is misspecified. The expected return mu is also the empirical mean of the same observations. Using that sample to estimate mu is reasonable for an illustration, but says nothing about deployment.

A hypothetical one-asset box makes the sensitivity clear. Ignore costs and declare a 10% worst daily loss per unit long. Gamma may then reach 10. At the peak, a 20% cushion permits exposure of 2x wealth. Change the declared loss to 5%, and permitted exposure rises to 4x. The strategy's effective stop-loss is the declared lower bound. A gap beyond the worst day recorded in the 2015 to 2026 sample breaks the guarantee for that path, with no advance response from the policy.

Set the bounds from stress scenarios, then accept the lower expected return they impose.

Fixed weights carry the worst day throughout

The fixed-weight benchmark maintains a constant fraction K of current wealth. Hsieh proves that such a policy satisfies the limit over N stages if and only if its worst one-stage net loss stays below 1 minus (1 minus d_max)^(1/N). With d_max = 20% and N = 252, the resulting daily allowance is about 0.089%. The benchmark must withstand a path made entirely of worst days. By contrast, the modulated policy can lose its full 20% cushion in one stage when the account is at its peak.

Remark 5.2 treats fixed-weight policies as a special case of drawdown modulation. In the proof of Theorem 5.3, any feasible fixed-weight policy is replicated by setting gamma equal to K divided by the modulator. On our reading, the dominance theorem follows almost immediately from that construction. Strict improvement applies for N of 2 or more whenever the benchmark has a positive expected one-stage net return. The theorem is correct. Its comparator is weak.

The numerical discussion contains the more useful finding. For N = 21 and 63, the computed optimal policy has an approximately constant gamma. At those horizons, a simple constant-direction cushion rule captures the improvement, while the dynamic program contributes little. The paper cites the Grossman and Zhou cushion and its failure in discrete time. We did not find a comparison with another discrete-time drawdown-constrained policy. Nor did we find Monte Carlo standard errors or any reported statistic besides expected terminal return.

Our SPY-TLT version stayed near cash

We built a separate version using SPY and TLT from 2020-01-01 to 2024-07-01, setting d_max at 20%. The strategy is a walk-forward, long-only linear program that rebalances daily at the close. It defines support through a rolling box of buffered historical extremes, using a lookback of up to 252 sessions. Each ETF is limited to 50% of wealth and gross exposure to 4x. Commissions are $0.004 a share with a $1 minimum. Because the design is myopic, it gives up the paper's optimality and dominance results.

Across 1,249 trades from January 2020 to July 2024, the strategy returned about -0.000057%. Volatility and beta both round to zero. The Sharpe was -1.60 and profit factor 0.24. Although 61.75% of trades made money, larger losses outweighed them, consistent with costs consuming tiny positions. The portfolio was effectively never invested.

Several reasons for the cash position are known. Removing shorting and multi-stage optimality reduces the feasible set, as do the 50% caps. The remaining explanations are our judgement, ordered by confidence. During the 2022 window, when SPY and TLT declined together, both rolling mean estimates plausibly became negative and led the long-only program to choose cash. Historical support probably widened sharply around March 2020, tightening the allowable set or activating our fallback to cash. Minimum per-share charges on tiny orders may also have pushed effective costs toward the 1% cap, far above 0.5 basis points. Another possibility is that dollar targets calculated with the state normalized to 1.0 were applied to a much larger portfolio, rendering every position negligible.

Only the unconfirmed notional mismatch could independently account for a flat portfolio, and the available material does not let us verify it. We cannot fully explain the outcome. It speaks first to our construction.

The missing stress test would change my view. Set the control support narrower than the distribution generating the paths, then report how often the 20% floor is breached.

Our backtest stops at 2024-07-01, and everything after that date is deliberately left untouched so the same strategy can be checked out of sample later.

How our backtest worked

The steps the code we ran actually executed, from its strategy card. Ours, not the paper's — it is one automated implementation of the idea, not the authors' own.

Initialize wealth V and running maximum V_max.
For each trading close k:
  1. Using adjusted close returns ending no later than close(k), estimate:
       - expected returns mu_hat(k)
       - buffered rolling support bounds X_min(k), X_max(k)
  2. Verify strict support positivity for every asset:
       X_min_i(k) &lt; epsilon_i and X_max_i(k) &gt; -epsilon_i.
     If the test fails, hold cash and record the exception.
  3. Compute drawdown and cushion:
       d(k) = [V_max(k) - V(k)] / V_max(k)
       C(k) = V(k) - (1 - d_max) V_max(k)
     If C(k) &lt;= 0, set all risky targets to zero.
  4. Otherwise solve the long-only linear program:
       maximize mu_hat(k)' gamma - epsilon'|gamma|
       subject to gamma_i &gt;= 0,
                  -X_min(k)'gamma + epsilon'|gamma| &lt;= 1,
                  C(k) gamma_i &lt;= 0.5 V(k),
                  sum_i |C(k) gamma_i| &lt;= 4 V(k).
  5. Set target dollar exposure u(k) = C(k) gamma(k); leave residual wealth in zero-return cash.
  6. At the same close, trade only ETFs with observed adjusted close, nonmissing volume,
     and positive dollar volume. Missing execution data causes the affected trade to be skipped.
  7. Deduct the stage proxy epsilon'|u(k)|, apply the next adjusted close-to-close return,
     and update V_max(k+1) = max[V_max(k), V(k+1)].
  8. If the solver fails or is infeasible, hold cash and record the failure.

Platform commissions are subsequently charged per fill when the blotter is repriced; reported metrics are net of those commissions.