LIVE· 2026-05-28

A hedge ratio that won't hold still

Why I stopped holding the hedge ratio fixed.

A hedge ratio compresses a relationship between two assets into a number. The difficulty is that the relationship can change. A coefficient estimated over a whole sample can hide the movement that mattered while the observations were arriving.

I built this study to connect an online estimator to a complete historical evaluation: observations enter the filter, the estimate feeds position accounting, and a later period tests the saved setup. The interesting engineering sits at the joins. A sensible estimator can still sit inside an evaluation with unrealistic execution or selection assumptions.

Track the relationship as it changes

The Kalman filter represents the hedge ratio and intercept as a state that evolves over time. With each new price observation, it predicts and corrects that state. It is the same broad estimation idea used in control systems and signal processing: track something changing that cannot be observed directly.

Here, “causal” describes the direction of information through the estimator. An estimate at a given date uses observations available through that date. It does not mean the model has established a causal economic relationship between the assets.

A useful check is to run the filter on a complete history and on a copy that stops earlier. Estimates before that stopping point should agree. This catches later observations leaking backward through the estimator. It has a precise scope; it cannot certify every subsequent accounting or model-selection decision.

STUDY DESIGNCOMPLETED HISTORICAL STUDY

One changing relationship.
A carefully bounded evaluation.

An online Kalman filter tracks a hedge ratio and intercept as new daily observations arrive. The study connects that estimate to position accounting, turnover costs, and a later evaluation window.

Coded comparison
Two ETF pairs
GDX / GLD · EWA / EWC
Develop & select
2011–2018
Parameters and selected pair
Later evaluation
2019–2025
Saved strategy, fixed split

The evaluation boundary: the earlier candidate-selection history was not recorded, and signals using the close are assumed executable at that same close. A lagged return calculation alone does not resolve either issue.

Public methods overview. Cached market data and implementation remain private.

What the study actually compares

The coded study contains two ETF pairs: GDX/GLD and EWA/EWC. Parameters are selected on 2011–2018 data, and the stronger training result determines the selected pair. The saved strategy is then reported on 2019–2025, with GDX/GLD selected in the historical run.

That fixes the coded selection step before the later evaluation window. The earlier history of how the candidate pair list was assembled was not recorded, however. The later period is separate from the parameter grid, but I cannot claim it was independent of every earlier decision about what to investigate.

The accounting uses gross-normalised, dynamic-beta-hedged weights and charges for turnover. These are explicit modelling choices. They do not establish dollar neutrality, factor neutrality, or a market-neutral portfolio.

Timing matters beyond the filter

Positions are lagged when calculating the following day's return. Even so, the setup treats a signal formed using a closing price as executable at that same close. Knowing the final close and trading at it is an optimistic execution assumption; shifting positions by one row does not make it realistic.

Daily closing prices also leave intraday execution, borrowing, financing, and capacity largely outside the experiment. Those omissions matter before interpreting a historical result as something executable.

What I take from it

The useful outcome is a small, inspectable methods study: an adaptive estimator, explicit windows, cost accounting, and checks with clearly stated boundaries. Two pairs and one historical split cannot establish a persistent trading edge.

A stronger follow-up would record the candidate-selection history, use an executable decision and fill timeline, and evaluate a broader set of pairs and periods under that frozen procedure. Those are the next tests the current study motivates.

This public writeup focuses on the method. The implementation and cached market data remain private.