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

Differentiable Paths and Infinite Leverage Split Viability

Karatzas and Kim separate the classical cornerstone; our weekly ETF version earns a 0.51 Sharpe

2026-09-08 · 7 min read

Reviewing: Pathwise Portfolio Theory and Market Viability · Ioannis Karatzas and Donghan Kim · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

Finite-Resolution Pathwise Growth-Optimal Allocation on Liquid US ETFs

Backtest period 2016-01-01 to 2024-12-31 · hypothetical, net of modelled costs

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

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

  • Empirical ETF universe, backtest dates, liquidity filter, covariance shrinkage, leverage cap, per-ETF bounds, and turnover cap. (invalidates: Exact theorem-level unconstrained canonical growth identity for the traded portfolio; exact driftless numéraire representation for the constrained traded portfolio; paper-only viability statements without imposed bounds)
  • Continuous paths and Föllmer covariation along refining partitions. (invalidates: Exact continuous-path Föllmer covariation interpretation; exact pathwise calculus identities as mathematical equalities in the empirical backtest)
  • Traded universe deduplicated relative to the volume-ranked top-25 screen.: Removed IVV, VOO, TQQQ, IEMG, JNK — near-collinear/leveraged clones of SPY, QQQ, EEM, HYG (pairwise r>0.994) — leaving 20 distinct-exposure ETFs, so the 20×20 covariance fed to ν=Σ†α is not rank-deficient and the trend signal α, not the shrinkage constant, decides the allocation within each exposure cluster. (invalidates: Any result tied to the exact volume-ranked top-25 screened set; the constrained portfolio's allocation across the removed duplicate pairs.)
  • Constrained traded-weight objective (constrained analogue of eq 3.3/3.6 growth maximization).: Objective corrected from minimum-squared-distance-to-nu_raw to direct maximization of the constrained growth objective w^T alpha − 1/2 w^T Sigma w; even so, under active weight/leverage/net/turnover constraints the traded optimum need not equal the unconstrained canonical nu_raw=Σ†α. (invalidates: The exact eq 3.9 canonical growth identity, Remark 3.11 relative-growth identity, and eq 3.18 driftless-numéraire property for the traded (constrained) portfolio; these hold only at nu_raw.)

3 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 2016Total 48.5%Dec 2024
Sharpe
0.51
Total Return
48.5%
Max Drawdown
-23.8%
CAGR
4.5%
Volatility
10.5%
Trades
9,402

The paper's arbitrage needs a differentiable return path and a position that grows without limit. Nobody will trade it. Yet the construction exposes a real split: an allocator using estimated trend and covariance can be fully specified, show zero attainable growth, and coexist with unbounded attainable wealth. Karatzas and Kim prove exactly that.

Their residual creates the gap. After probability is removed, it may contain a smooth, nonconstant finite-variation direction with zero Föllmer quadratic variation. Covariation-based growth does not see that direction, though a trading rule can exploit it. The same construction fails in the semimartingale setting because a continuous local martingale with zero quadratic variation is constant.

Choosing the trend after probability disappears

Cumulative returns in the standard continuous semimartingale model decompose as R = A + M, with drift A and continuous local martingale M. Several properties that look distinct then become equivalent. The paper invokes Theorem 2.31 of Karatzas and Kardaras, which connects market viability, a local martingale deflator, a supermartingale numéraire, locally finite growth, and boundedness in probability of attainable wealth. Karatzas and Kim remove the probability measure and ask which links remain.

A lone continuous path has no canonical drift, so the paper selects one. Fix an observation window h and a Borel trend extractor D. It sees only the rescaled trailing window R_{t,h}(u) = R(t−h+hu). The resulting signal is α(t) = D(R_{t,h})/h. Its accumulation defines a finite-variation trend A, leaving M as the residual.

Subtracting a continuous finite-variation path does not change Föllmer quadratic covariation. The residual therefore retains all the second-order roughness in R. An operational clock O combines the trend's total variation with the diagonal covariations and normalises the selected characteristics, giving |a_i(t)| ≤ 1 and Tr(c(t)) ≤ 1 at every t.

For a portfolio π, the growth rate is π⊤a − ½π⊤cπ. Local finiteness holds exactly when a belongs to the range of c and ∫a⊤c†a dO is finite. Under those conditions, the maximal rate is ½a⊤c†a and the canonical maximiser is ν = c†a. Faber-Schauder projections provide explicit trend extractors. The simplest takes the slope over the final dyadic cell in the window.

Theorem 4.15 carries the main result in two layers. Its growth-numéraire layer gives five equivalent conditions. These include the range and integrability requirement, a driftless numéraire, a growth-optimal portfolio, and the identity Γ_ν − Γ_π = ½C_{π−ν}. The viability-boundedness layer contains two conditions: pathwise viability holds if and only if attainable terminal wealth remains finite on every individual scenario.

Those layers need not coincide for general paths. They do coincide in the semimartingale setting, where a continuous local martingale with zero quadratic variation must be constant. A pathwise residual faces no such restriction and can carry a direction missed by covariation.

There is no data anywhere in the paper and it reports no performance figures for itself.

Can the exploiting portfolio be traded?

Example 4.16 uses one scenario, ω(t) = sin(2πt/δ), where δ = h2^{−N}. The last-cell Faber-Schauder extractor reads it at resolution N. Its extracted trend is identically zero. Because the path is continuously differentiable, its quadratic variation is also identically zero. The clock is zero, the canonical numéraire is zero, and cumulative maximal growth satisfies G(T,ω) = 0.

The portfolios π_m = m·Ṙ nevertheless produce X(T,ω) = exp(m∫|Ṙ|²dt). Terminal wealth diverges as m increases. A unit terminal withdrawal can then be financed with initial capital 1/X → 0.

Every ingredient of the trade is unavailable in practice. The path is C¹ with zero quadratic variation, a set assigned probability zero by any nondegenerate diffusion. The rule observes the instantaneous derivative of returns, which finite-frequency sampling cannot provide. Leverage tends to infinity. The framework imposes neither a position bound nor transaction costs.

As a market proposition, the example is empty. The abstract describes the intended claim more narrowly: the equivalences "need not collapse into a single equivalence class in the pathwise setting", and "this separation is illustrated by two examples". Example 4.17 addresses the "advance knowledge implicit in a singleton scenario set". It disposes of foreknowledge while retaining continuously differentiable paths and unbounded m. Those ingredients make the result a theorem about a path class rather than an executable trade.

The viability direction offers a less extreme target. The reverse implication in Theorem 4.10 uses the withdrawal stream K(t,ω) = 1_{T}(t)1_{{ω_0}}(ω), a terminal lump sum directed at one path. Remark 4.11 explicitly states that scenario-specific terminal lump-sum withdrawals drive that implication. Example 4.16 also works with a singleton scenario set, where non-anticipativity has no force. The authors acknowledge this and supply a repair.

Example 4.17 is the construction worth contesting. It takes an uncountable family ω_θ(t) = θ((t−τ)_+)³, with θ in [−1,−θ]∪[θ,1] and τ in (T−h,T). Every path has the same history up to the branch time τ. The lag-point extractor D(x) = x(0) samples only window points preceding that branch. Consequently, a ≡ 0, c ≡ 0 and G(T,ω_θ) = 0 for every scenario.

A single non-anticipative rule, π_m = m·D⁻R, achieves R_{π_m}(T,ω_θ) = 9mθ²(T−τ)⁵/5. Its terminal wealth diverges uniformly over the full scenario set. The unit terminal withdrawal can therefore be financed everywhere from x_m = exp(−9mθ²(T−τ)⁵/5), leaving financing capital 0 even though K is not identically zero.

Example 4.17 is stronger. Foreknowledge no longer explains the separation, while C¹ paths and unbounded m still do all the work.

The extractor aliases its own cell length

In 4.16, the path's period equals the cell length δ = h2^{−N}. The final-cell slope consequently reads zero. Resolution choice has aliased the entire signal away.

That observation transfers directly to empirical work. The null space of the last-cell extractor is available in closed form, so checking a lookback against its cell length is immediate.

The authors are explicit that no canonical drift exists to be recovered. Their characteristics are defined relative to h, D, N and the partition sequence Π. Föllmer quadratic covariation itself is taken along one fixed refining sequence, making c dependent on the sampling scheme by construction.

The driftless numéraire is algebraic. Without a measure, it has no supermartingale property and supplies no budget inequality for financeable liabilities. The identity Γ_ν − Γ_π = ½C_{π−ν} orders portfolios by extracted growth, without furnishing a bound.

Theorem 4.15 separately assumes canonical numéraire admissibility, meaning ν must belong to the wealth-generating class. Corollary 4.14 gives a concrete sufficient condition: continuous finite-variation α and Σ, constant rank Σ, and clock density bounded away from zero. Admissible integrands take the form ∇_x f(B(t),R(t)), with f in C^{1,2}, and remain closed under finite pasting at partition times. Remark 2.6 stresses that this class is much smaller than the Itô-integrable class. Path dependence enters through the finite-variation control B, which admits the trend rule.

What happened in weekly ETFs

Our discrete analogue returned 48.54% in total from 2016-01-01 to 2024-12-31. Its Sharpe was 0.51, with a maximum drawdown of -23.84%. Sortino came to 0.61, Calmar to 0.19, and realised volatility to 10.51%.

A 0.51 Sharpe paired with a 23.84% drawdown is thin for a portfolio permitted 1.5 gross exposure. Two qualifications should remain beside those results. The book may turn over a quarter of itself every Friday, or roughly 13 gross turns a year, yet we modelled zero slippage and did not measure how much that choice improved the net result. The sole trading charge was four tenths of a cent a share. Meanwhile, the 10.51% volatility largely reflects the imposed bounds: net exposure was floored at 0 and capped at 1.2, while gross exposure was capped at 1.5.

We used 20 liquid US ETFs: SPY, QQQ, IWM, TLT, LQD, HYG, GLD, GDX, EEM, EFA, EWZ, FXI, SMH, DIA and the XL sector funds. Rebalancing occurred at each Friday close. Trend came from the last-cell Faber-Schauder slope, using h = 63 trading days and N = 3. The terminal cell was therefore 7.9 days wide.

The covariance input was the 63-day realised covariance of daily log returns. We shrank it 15% toward the diagonal, added a 1e-6 ridge, and pseudo-inverted the result. The unconstrained target was pinv(Σ)α. The actual portfolio maximised w⊤α − ½w⊤Σw.

Constraints limited gross exposure to ≤ 1.5 and net exposure to between 0 and 1.2. Individual ETF weights stayed within [−0.10, +0.25], and weekly turnover was ≤ 0.25. When the estimated growth rate was non-positive, risky weights were halved. Costs were four tenths of a cent a share with a $1 order minimum. Slippage was set to zero.

This was one automated pass based on the paper's description. Karatzas and Kim have not endorsed it as a replication. Three choices probably account for much of the 0.51 Sharpe and the -23.84% drawdown.

With N = 3 over 63 days, the entire trend estimate comes from the final 7.9-day window. The last-cell slope misses any path component whose period matches that 7.9-day cell, precisely the mechanism in Example 4.16. Our 15% shrinkage imposes the constant-rank and positive-clock-density conditions requested by Corollary 4.14 instead of verifying them. We also selected the 20 tickers manually for liquidity and used no point-in-time screen.

The paper develops an ETF-agnostic continuous-time object. The weekly ETF market, all parameter choices and the full constraint set are ours. We previously examined a worst-case allocator over a Wasserstein ball, solved as a linear program (our note). That problem placed ambiguity over distributions. Here, no distribution exists, removing the budget inequality that made the earlier formulation well posed.

Evidence from real bar data could change the trading verdict. The residual left after a 63-day, N = 3 trend extraction would need to contain a directional component unpriced by the 63-day covariance estimate. A portfolio capped at 1.5 gross would then have to harvest it after four tenths of a cent a share in costs. Until that evidence appears, the layer separation remains a theorem about a class of paths, while the practical estimator lesson is aliasing at the 7.9-day cell.

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.

For each Friday rebalance at the close:
  1. Build the tradable ETF universe from the 20 liquid, deduplicated ETF list.
  2. Require at least 63 valid close observations and valid execution prices.
  3. For each ETF:
       R := cumulative log return path from daily closes.
       Rt,h(u) := trailing 63-day path rescaled to u in [0,1].
       Interpolate observed closes onto the dyadic grid needed for PN.
       alpha_i := (2^N / h) * [(PN Rt,h)(1) - (PN Rt,h)(1 - 1/2^N)], with N = 3.
  4. Estimate Σ as the 63-day per-day realized covariance of daily log returns.
  5. Regularize Σ using 15% shrinkage to diagonal plus 1e-6 ridge; use pseudo-inverse.
  6. Compute raw canonical target:
       nu_raw := pinv(Σ_regularized) @ alpha
       raw_growth_score := 0.5 * alpha.T @ pinv(Σ_regularized) @ alpha
  7. Solve constrained allocation by maximizing:
       w.T @ alpha - 0.5 * w.T @ Σ_regularized @ w
     subject to:
       gross exposure <= 1.5
       0.0 <= net exposure <= 1.2
       -0.10 <= each ETF weight <= 0.25
       turnover per rebalance <= 0.25
       cash allowed, shorting allowed
  8. If gamma_estimate = w.T alpha - 0.5 w.T Σ_regularized w <= 0:
       scale risky ETF weights by 0.50 before turnover cap is applied.
  9. Round target weights to 0.0001 and trade at the rebalance close.