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

Itô-Liu delivers Merton sizing: 2.69x at the paper's inputs

The paper's stationarity condition retains uncertainty volatility. Our SPY adaptation caps the allocation at 100% of equity.

2026-10-30 · 7 min read · Log-Utility Portfolio Allocation · US equity ETFs and cash

Reviewing: Portfolio selection and the maximum principle approach in Itô-Liu financial markets · Justin Chirima and Frank Ranganai Matenda · Read it on openalex

Our backtest of this idea

Our automated quick test, not the paper's

Constrained Log-Utility SPY–Cash Allocation with Lagged DFF

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

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

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.

Run on a different market than the paper

Instantiate the generic risky asset with SPY and the risk-free allocation with cash; no specific empirical market is replaced. The excess-drift-over-variance allocation mechanism remains applicable, although SPY need not satisfy the assumed Itô-Liu dynamics.

The paper's own figures describe its universe and do not carry over to ours.

This is not a replication of the paper (2)

  • Daily rebalancing with estimated parameters is a discretized, constrained implementation, not a replication of the continuous-time unconstrained optimal-control result.
  • OHLCV data do not separately identify the Brownian and Liu uncertainty components. The proposed backtest evaluates the explicit allocation rule without empirically validating the Liu process or the representation theorem.

The figures below measure what we could run, not the paper's own method, so they are not evidence for or against its claim.

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

  • Equation 23, self-financing wealth: dZ(t) = η(t)Z(t)[e(t)dt + σ₂(t)dCₜ + σ₁(t)dBₜ], Z(0) = z.: Preserve the equation as analytical provenance; execute a self-financing discrete SPY-unit and interest-bearing cash ledger with trading costs instead. (invalidates: Continuous-time hybrid wealth-path replication; paper simulation terminal-wealth values)
  • Equation 24, exponential wealth solution: Z(t) = z exp(∫₀ᵗ e(s)η(s)ds − ∫₀ᵗ [η²(s)σ₁²(s)/2]ds) × exp(∫₀ᵗ σ₂(s)η(s)dCₛ + ∫₀ᵗ σ₁(s)η(s)dBₛ).: Preserve verbatim as provenance only; mark actual ledger holdings using observed adjusted prices. (invalidates: Equation 24 as the empirical wealth law; paper alpha-path terminal wealth; Liu linear-time wealth-exponent interpretation for historical SPY)
  • Equation 25, portfolio Hamiltonian: H = η(t)ze(t)p + η(t)zσ₁(t)q₁ + η(t)zσ₂(t)q₂.: Archive the expression without constructing or optimizing a Hamiltonian. (invalidates: Hybrid maximum-principle verification of the empirical control)
  • Equation 26, adjoint BUSDE: dpₜ = −η(t)[e(t)pₜ + σ₁(t)q₁(t) + σ₂(t)q₂(t)]dt + q₁(t)dBₜ + q₂(t)dCₜ; p_T = U′(Zη(T)).: Archive verbatim without solving an adjoint BUSDE. (invalidates: Hybrid maximum-principle verification of the empirical control)

9 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 42.7%Jul 2024
Sharpe
0.64
Total Return
42.7%
Max Drawdown
-27.0%
CAGR
8.3%
Volatility
14.8%
Beta vs SPY
0.50
Trades
878

The paper's trading rule reduces to Merton's log-utility allocation once the uncertainty theory is stripped away. It puts e/σ1² of wealth in the risky asset, with e denoting excess drift and σ1 Brownian volatility. The authors' illustrative inputs, e = 0.089 and σ1 = 0.182, produce an allocation of 2.6869 times equity. The paper's new work surrounds that number. Whether it changes the allocation is the practical question, and the paper's own equations leave that unresolved.

The machinery Chirima and Matenda add

In the Itô-Liu market, the risky asset follows dS = eS dt + σ2 S dC + σ1 S dB. B denotes Brownian motion; C is Liu's canonical process. The latter is a non-probabilistic uncertain process from Liu's uncertainty theory, intended to describe ambiguity when data are too sparse to assign probabilities. Its increments have a belief-level distribution. Its paths are Lipschitz, and its quadratic variation is zero. The riskless asset pays r = 0; η denotes the share of wealth allocated to the risky asset.

Fei (2014) solved the Itô-Liu problem through the Hamilton-Jacobi-Bellman (HJB) equation, requiring a smooth value function. Hlahla et al. (2025) combined the maximum principle and dynamic programming, then solved numerically. Chirima and Matenda work with the maximum principle alone. Their construction starts with a Hamiltonian and an adjoint defined through a backward equation driven by B and C. They call this a BUSDE, a backward uncertain stochastic differential equation, and state a Mangasarian-type sufficiency theorem.

They also extend the Clark-Ocone formula: a functional of B and C can be separated into a dB integral and a dC integral. With log utility, wealth equals 1/p, where p denotes the adjoint. Matching the drift, dB and dC terms on either side yields η* = e/σ1². The authors attribute the disappearance of uncertainty volatility σ2 to "the Liu process's zero quadratic variation in this setting."

There is no empirical claim here. The figures come from a simulation using hypothetical parameters: initial wealth 100,000, σ2 = 0.05, a step of 0.01, seed 42, one fixed Brownian path, and nine belief levels α from 0.01 to 0.99. Each α sets the Liu increments through the inverse uncertainty distribution. Its range runs from Φ⁻¹(0.01) = −2.53342 to Φ⁻¹(0.99) = 2.533422.

Can 2.69x pass the paper's first-order condition?

Theorem 4 makes optimality conditional on the adjoint triple satisfying Equation 27: e·p + σ1·q1 + σ2·q2 = 0. It states this as an if and only if. Later coefficient matching gives Equations 43 and 44, equivalent to q1 = −pησ1 and q2 = −pησ2. Inserting those expressions into 27 yields p(e − ησ1² − ησ2²) = 0. The resulting allocation is η = e/(σ1² + σ2²).

With the paper's inputs, that is 0.089/(0.033124 + 0.0025), or roughly 2.50.

To obtain the published 2.69, the authors substitute Equation 43 into the drift match, Equation 45. Equation 44 carries σ2 and never returns to the calculation. Because the Liu term supplies no Itô correction there, σ2 disappears. These conditions agree only at σ2 = 0. With σ2 = 0.05, the allocations differ by about 0.19 of wealth.

The authors partly anticipate this in Remark 2. They argue that the coupled BUSDE in Equation 29, together with Z = 1/p, determines the control; pointwise maximization of the Hamiltonian has no role. Yet Theorem 4 requires the solution to satisfy Equation 27 for an optimum to exist. Deriving the control from that BUSDE leaves the requirement intact. With Equations 43 and 44, it satisfies 27 only at η = e/(σ1² + σ2²).

The optimality argument reaches the same obstacle. The paper's remark says the Hamiltonian is jointly concave because it is linear in η and linear in z. Bilinearity alone does not establish joint concavity. In this case, the property holds only because the Hamiltonian becomes identically zero when Equation 27 holds. And 27 is precisely the condition that 2.69 fails for positive σ2. The remark also asserts |ln x| ≤ L(1 + x²) on positive wealth. That bound fails as wealth approaches zero.

The easy case matches Merton

The conclusion says the rule "coincides with the classical Merton solution obtained via dynamic programming, thereby validating the maximum principle approach." At σ2 = 0, the Itô-Liu market becomes geometric Brownian motion. Both expressions reduce to Merton's e/σ1², giving 2.69 at these inputs, as a correct extension must. This checks the corner in which the new component disappears. Where that component matters, the paper's equations produce different allocations.

The authors acknowledge limits to the scope. Their conclusion allows dependence on σ2 for other utility functions, several risky assets, portfolio constraints or different Itô-Liu dynamics. Their claim here concerns log utility, one asset and no constraints: σ2 drops out. Equation 27 retains it. A corrected derivation would need either to defend 2.69 against 27 or to use e/(σ1² + σ2²). The latter would also require a way to estimate σ2 from data.

Borrowing 169% for free

In the worked example, the risky position is 268.69% of wealth, financed by borrowing 168.69% at r = 0. The paper explicitly notes that the zero risk-free rate makes borrowing free. It motivates the position with an 8.9% expected return and 3.31% squared volatility.

Small input changes move the allocation sharply. For each unit of drift, η changes by 1/σ1², about 30.2. A one-point error in e therefore moves the position by 0.30 of wealth. Raising σ1 to 0.20 from 0.182 lowers η to 2.23. A daily implementation needs an estimator for e and σ1, a financing spread over the policy rate, a margin cap, and a rebalancing schedule that includes costs.

The 1-year table makes the downside of 2.69x concrete. With α = 0.50, Liu increments vanish and terminal wealth is 67,823.94 (−32.18%). This is plain Merton on one draw. The Brownian contribution is 2.6869 × 0.182 × −1.0385, about −0.51 in log wealth. Drift contributes +0.12, and exp(−0.39) is about 0.68. At this position size, a Brownian path ending at B1 = −1.0385 consumes a third of wealth.

A scenario fan, not a return distribution

The authors describe the simulations as "illustrative rather than statistical evidence," deferring a Monte Carlo and sensitivity study. That restraint is warranted. In the 10-year table, terminal wealth ranges from 28,295.28 at α = 0.01 to 25,582,926 at α = 0.99. The α = 0.99 result is about 30 times the 850,809.0 reported at α = 0.50. The entire spread comes from σ2 = 0.05. As the conclusion observes, Liu increments scale with T rather than √T.

Because α denotes a belief level, this fan of wealth scenarios has no probability weights. It supplies no return distribution from which to calculate a Sharpe ratio.

The accompanying prose also gets the table wrong. It says α = 0.10 and α = 0.25 "ultimately end below the initial wealth" and describes α = 0.50 as finishing slightly below it. Table 2 gives +67.13%, +277.09% and +750.81%.

Our SPY and cash adaptation

We substituted SPY for the hypothetical risky asset and cash for the riskless asset.

Our daily rebalancing rule uses estimated parameters and an exposure cap. It is a discrete, constrained stand-in for the paper's continuous-time, unconstrained control. Daily OHLCV data cannot disentangle a Brownian component from a Liu component. The run consequently tests only the explicit sizing rule, the Merton core. It says nothing about Liu uncertainty, the representation theorem or the 27-versus-45 question. The paper reports no trading performance; we make no comparison between its results and the figures below.

After each close, we use 252 daily returns to estimate the annualized mean SPY excess return over cash. We divide that estimate by annualized SPY variance, then clip the allocation between 0 and 1. This excludes the paper's 2.69x position. With the paper's inputs, the capped rule would hold 100% SPY. Cash earns the Fed funds rate with a lag of two banking days.

Our window runs from 2020-01-01 to 2024-07-01. Commissions were $0.004 a share, subject to a $1 minimum per order; fills occurred at the close auction. The capped rule returned 42.74% over that period. Sharpe was 0.64 (Sortino 0.65), with volatility of 14.78%. Maximum drawdown reached -26.97%, giving a Calmar of 0.31. These are figures for our own construction and test nothing the paper claims. They include commissions. Exposure stays at or below 100%, so the run incurs no borrowing cost.

The figures have two weaknesses. We intended to fill at the next open, yet the run filled at the close, and we have not reconciled that difference. We also have not checked the historical publication dates of the Fed funds series. Until buy-and-hold SPY and a fixed 60/40 are run over identical dates, the 0.64 Sharpe and -26.97% drawdown describe this rule without establishing an edge over either benchmark.

A derivation that reconciles Equation 27 with the drift match at σ2 = 0.05 would change my view of the paper. Until then, its published tradable content remains Merton sizing at 2.69x. Following Equation 27 as written would lower the allocation to about 2.50.

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.

Specified allocation logic; platform execution metadata differs as noted below.

1. Load consistent adjusted SPY prices and eligible DFF observations.
2. Build cash returns using rates lagged at least two US banking business days;
   enforce verified publication/vintage cutoffs where available.
3. Accrue cash with simple ACT/360 factors within calendar-day segments,
   compounding across segments; carry eligible rates forward, never backward.
4. Remain in cash until 253 closes provide 252 complete, consecutive,
   cash-aligned SPY returns.
5. After each close:
   mu = 252 * mean(SPY return - aligned cash return)
   variance = 252 * sample_variance(SPY returns, denominator=251)
   target = clip(mu / variance, 0, 1)
   If estimates are invalid after initialization: target = 0; flag the date.
6. Specification: queue target for the following adjusted open, retain existing
   SPY overnight, and accrue cash through execution before sizing.
7. At execution, let A = old SPY notional, V = A + accrued cash.
   Solve x = target * (V - c * abs(x - A)), with internal c = 0.0002.
   Set units = x / execution_price; residual wealth remains cash.
   Enforce nonnegative cash/units and the platform initial-capital exposure cap.
8. Fail validation for a missing execution price; do not fabricate a fill.
9. Mark holdings at adjusted closes; do not force terminal liquidation.

The reported platform convention is daily MOC execution with separately recalculated per-share commissions, not the specification's next-open, fixed-basis-point ledger. Reconciliation is required before treating the reported run as an exact implementation.