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

At λ=1, Han and Li discount most of the horizon away

The tradable idea forecasts fractional noise. Our SPY results are separate from the paper.

2026-09-29 · 5 min read · Portfolio Optimization · US equity ETF and cash

Reviewing: Maximum Principle for Optimal Control of Infinite Horizon Stochastic Difference Equations Driven by Fractional Noises · Yuecai Han and Yuhang Li · Read it on openalex

Our backtest of this idea

Our automated quick test, not the paper's

Rolling Fractional-Noise Utility Allocation: SPY versus Cash

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 (11)

  • Paper (2.2), fractional-noise state: X_{n+1} = X_n + b(n,X_n) + σ(n,X_n)ξ^H_n, n≥0; X_0=x.: Fit a stationary fractional-Gaussian-noise covariance to rolling SPY log returns instead of evolving this theoretical state. (invalidates: Paper Theorem 6 pointwise necessary condition for this fitted portfolio model; paper Theorem 7 sufficiency for this fitted portfolio model.)
  • Paper, Section 2, noise definition: ξ^H_n = B^H(n+1)−B^H(n).: Use this increment's covariance model, without claiming observed SPY returns are observed B^H increments. (invalidates: Identification of the backtest's fitted return shocks with the paper's ξ^H_n.)
  • Paper (3.1), controlled state: X_{n+1} = X_n + b(n,X_n,u_n) + σ(n,X_n,u_n)ξ^H_n, n∈T; X_0=x.: Backtest realized SPY/cash holdings under observed SPY returns and a separate cash accrual. (invalidates: Paper Theorem 6 pointwise necessary condition for the backtest; paper Theorem 7 sufficiency for the backtest.)
  • Paper, Section 4, asset dynamics: S_1(n+1)=(1+r_n)S_1(n); S_2(n+1)=(1+µ_n)S_2(n)+σ_nS_2(n)ξ^H_n.: Use observed adjusted SPY closes and as-of DFF-based cash accrual; use fitted stochastic dynamics only for analysis-only forecasts. (invalidates: Paper Section 4's derived control as an optimal allocation for historical SPY/cash.)

7 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 40.5%Jul 2024
Sharpe
0.59
Total Return
40.5%
Max Drawdown
-26.3%
CAGR
7.9%
Volatility
15.3%
Beta vs SPY
0.54
Trades
765

A trader could use Han and Li's forecast of the next fractional-noise increment to size a risky position. Whether that forecast pays is another matter. The paper is theoretical and makes no empirical claim. Every performance figure on this page comes from a strategy we built ourselves; those figures say nothing about the truth of the authors' theorems.

Where the forecast comes from

Fractional Gaussian noise consists of increments of fractional Brownian motion with Hurst exponent H. Today's increment helps predict tomorrow's. Above H=0.5, increments persist; below H=0.5, they mean-revert. In the paper, the conditional expectation of the next increment is a weighted sum of past increments. The weights γ(n,k) come from two kernel functions, α and β, in the authors' earlier discrete-time paper. White noise makes that sum zero. Fractional noise leaves a forecast that a trader might use.

Han and Li work on an infinite horizon. Under Lipschitz and moment assumptions, they prove unique solutions for the controlled state equation, for every H in (0,1), and for the backward equation defining the recursive cost Y_0. Their stochastic maximum principle gives a first-order condition for optimal control. A verification theorem makes it sufficient when the Hamiltonian is convex. The difficulty is fractional noise's dependence on its own past across an infinite horizon. They address it with a norm weighted by e^{-λn^γ}, where γ>1, and period-by-period shrinking moment exponents δ_n = 1-(n+2)^{-θ}, with θ>1. Proposition 1 bounds the limit of the product of the δ_n below by exp(2^{1-θ}/(1-θ) + 2^{1-2θ}/(1-2θ)).

Their example has a bond and a stock exposed to fractional noise. The investor allocates wealth between them, consumes half of wealth (c=0.5) at dates 10, 20 and so on, and incurs a penalty R·v^β on the risky position. The simulation sets μ=0.15, r=0.05, σ=0.2, λ=1, β=2, Q=1 and R=0.01, and runs at H=0.75 and H=0.25. Its output is two figures, without a path count or summary statistic.

What would a trader hold?

The paper's optimal risky position is

v_n = (0 ∨ [(μ_n − r_n)p_n + σ_n p_n Σγ(n,k)ξ^H_k] / (β k_n R_n))^{1/(β−1)} ∧ X_n(1 − c_n 1{n∈N}).

At β=2, the exponent becomes 1. The position responds linearly to the excess drift of 0.10 and to the noise forecast scaled by σ=0.2. The adjoint k_n equals −(1+λ/2)^{n−1}. The authors say q is zero, as follows from the example's deterministic coefficients. A floor at 0 prevents short positions; the cap limits the holding to wealth after that period's consumption.

There is an implementation ambiguity. The text calls v_n the fraction of funds in the stock. Yet the state equation adds (μ_n − r_n)v_n to wealth, and the cap is X*_n multiplied by a number no greater than 1. Those expressions read as a dollar position. An ETF translation would therefore hold SPY dollars between zero and current wealth, with the balance in cash. Only the forecast term changes from day to day.

At λ=1, period 10 weighs less than e^{-10}

The authors say they cannot show E|Y_n|^2 ≤ O(e^{−λn}) for any λ>0 with fractional noise. Their norm consequently uses e^{−λn^γ} instead of an ordinary exponential. They offer this economic reading: "Assume that the utility derived by investors from delayed consumption decreases more rapidly as time increases."

The chosen parameter makes the distant horizon faint. With λ=1, period 1 receives weight e^{−1}, about 0.37, whatever γ is. At period 10, the example's first consumption date, it is below e^{−10}, about 4.5×10^{−5}. The backward equation also multiplies Y_{n+1} by 1+λ/2 = 1.5 each period. Even after that adjustment, period 10 has effective weight e^{−10^γ}·1.5^9, at most about 1.7×10^{−3} as γ→1. Most of the infinite horizon occupying the proofs contributes almost nothing to the example's objective.

The paper says λ and γ do not depend on H and "could be arbitrary closed to 0 and 1." Taking λ tiny and γ near 1 would extend the effective horizon considerably. The condition γ>1 remains strict, though, so the discount eventually outruns any exponential. The example uses λ=1.

The moment assumptions also ask something of the initial state. It must belong to L^{2a}, while the product of the δ_n must reach at least 1/a. At θ=2, Proposition 1 gives about 0.58. That certifies a ≥ 1.72, or roughly 3.4 moments on the initial state, which must persist under noise whose L^m norm grows like m^{1/2}.

Can SPY support the forecast?

The tradable part is Σγ(n,k)ξ^H_k, the conditional forecast built from past noise increments. Using it on market data requires an estimate of H and its kernel weights, plus the assumption that realized returns behave as fractional-noise increments. The paper defines γ through α and β and sends the reader to its predecessor for those kernels. Crossing H=0.5 also reverses the bet's sign.

For a broad index, H could be close to 0.5. Forecast weights then approach zero, leaving a deterministic drift bet.

The finite-horizon bridge

The existence proof itself uses a finite-horizon approximation. It cuts off the backward equation at N, assigns a zero terminal value, and proves that the truncated solutions form a Cauchy sequence. The application makes the same cut with p^N_N = 0. This establishes convergence of the truncated adjoint. It gives no guarantee that a short-horizon utility maximizer fitted to real prices is close to optimal. A backtest addresses that separate question.

Our SPY run: 40.51% return, 0.59 Sharpe

Our figures cover 2020-01-01 to 2024-07-01, using daily SPY bars and cash accruing at the federal funds effective rate (DFF). At each close, we estimate lag-one autocorrelation from 126 trailing log returns and clip it to [−0.45, 0.45]. We map the result to an implied H, shrink it halfway toward 0.5, then clip it to [0.1, 0.9]. A fractional-Gaussian covariance conditions five future returns on the observed 126. From 1,024 simulated paths, we choose the SPY weight in [0, 1] that maximizes mean log wealth. Orders fill at the next day's close. We charge $0.004 a share, subject to a $1 minimum. We assume no slippage because the fills are at the closing auction.

This is our construction. It replaces the paper's recursive cost, consumption and adjoint equations with expected log utility over five sessions. The paper prints no performance results of its own; the figures below are ours alone.

Across that window, our construction returned 40.51% in total. Its Sharpe was 0.59, Sortino 0.57 and Calmar 0.30. Volatility was 15.31%, and the worst drawdown was -26.30%. A 0.59 Sharpe is thin for a long-only SPY/cash book. If the result resembles diluted buy-and-hold, our estimator is the first suspect: one lag-one autocorrelation over 126 days, shrunk halfway toward 0.5, nearly ensures a small forecast term. The window also includes March 2020, when that estimate is least stable. One automated pass on one ETF says little about the authors' work either way.

Outcome statistics in Section 4 would change my view of the paper's practical content. I would want mean utility and turnover at H=0.75 and 0.25, set against pure-cash and constant-weight benchmarks over enough paths to distinguish them.

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.

For each trading-date close t:
  Require 126 observed trailing adjusted SPY log returns and an eligible DFF observation dated before t; otherwise retain the prior allocation.
  Estimate lag-one return autocorrelation, clip it to [-0.45, 0.45], and shrink the implied H toward 0.5.
  Fit the fractional-noise covariance; condition five future modeled returns on all 126 observed returns. Skip the signal if the conditioned covariance fails the numerical PSD check.
  Freeze the as-of DFF rate for forecast cash accrual. With 1,024 seeded Gaussian paths, maximize mean log terminal wealth over a constant hypothetical SPY weight in [0, 1], including the specified initial weight-change charge; check both bounds.
  Submit the target for the next trading date’s close. Keep the existing allocation until an observed adjusted SPY close permits execution; hold the remainder in cash. Re-solve on the next valid signal.

Forecast paths are optimization inputs, never execution or marking prices.