Understanding Ornstein-Uhlenbeck Parameters
The Ornstein-Uhlenbeck (OU) process models mean reversion. Three parameters define its behavior: speed of reversion ($\theta$), long-run mean ($\mu$), and volatility ($\sigma$). Each parameter influences asset price movement. Traders estimate these parameters from historical data. This builds actionable strategies.
Speed of Reversion ($\theta$)
The speed of reversion ($\theta$) determines how fast a price returns to its long-run mean. A high $\theta$ implies quick mean reversion. A low $\theta$ suggests slower reversion. $\theta$ must be positive for mean reversion. If $\theta$ is zero, the process becomes a random walk. If $\theta$ is negative, the price diverges exponentially.
Consider two pairs trading strategies. Strategy A trades the spread between Coke (KO) and Pepsi (PEP). Strategy B trades the spread between ExxonMobil (XOM) and Chevron (CVX). From January 1, 2020, to December 31, 2022, we analyze their price spreads.
For KO/PEP, we calculate a spread $S_t = \ln(\text{KO}_t) - \ln(\text{PEP}_t)$. We estimate $\theta = 0.8$ per trading day. This spread reverts to its mean quickly. A deviation from the mean dissipates fast.
For XOM/CVX, we calculate a spread $S_t = \ln(\text{XOM}_t) - \ln(\text{CVX}_t)$. We estimate $\theta = 0.2$ per trading day. This spread exhibits slower mean reversion. Deviations persist longer.
A trader operating Strategy A might use tighter entry and exit thresholds. A $1.5$ standard deviation move from the mean could trigger a trade. The high $\theta$ suggests a quick return. Strategy B, with its lower $\theta$, requires wider thresholds, perhaps $2.5$ standard deviations. The longer reversion time demands more patience and larger potential profit targets.
Estimating $\theta$ involves regressing the change in the spread against the spread itself. We use the discrete form of the OU process:
$\Delta S_t = \alpha + \beta S_t + \epsilon_t$
Here, $\Delta S_t = S_{t+1} - S_t$. Then, $\theta = -\beta / \Delta t$. For daily data, $\Delta t = 1$. Ordino Least Squares (OLS) regression is a common method.
For the KO/PEP spread, suppose the regression yields $\beta = -0.8$. Then $\theta = 0.8$. This means 80% of the deviation from the mean closes within one day, on average.
Long-Run Mean ($\mu$)
The long-run mean ($\mu$) represents the equilibrium level. The asset price reverts to this level. It is the central tendency of the process. Traders use $\mu$ to identify overbought or oversold conditions. A price significantly above $\mu$ indicates a potential short opportunity. A price significantly below $\mu$ suggests a potential long opportunity.
The long-run mean is not static. It can drift over time. Fundamental changes in the asset or market conditions cause this. Traders must continuously re-estimate $\mu$. Using an outdated $\mu$ leads to incorrect trading signals.
Consider the EUR/USD exchange rate. From January 1, 2018, to December 31, 2019, its estimated $\mu$ was $1.15$. A trader might short EUR/USD when it reached $1.18$ (an overbought condition). They would long EUR/USD when it hit $1.12$ (an oversold condition).
However, from January 1, 2020, to December 31, 2021, economic shifts changed the equilibrium. The new estimated $\mu$ became $1.10$. If the trader continued using the old $\mu$ of $1.15$, they would misinterpret signals. A price of $1.12$ might still appear undervalued based on the old $\mu$. But with the new $\mu$ of $1.10$, $1.12$ is actually overvalued.
Estimating $\mu$ from the OLS regression:
$\mu = -\alpha / \beta$
For the KO/PEP spread, if the regression yields $\alpha = 0.004$ and $\beta = -0.8$, then $\mu = -0.004 / -0.8 = 0.005$. This means the natural logarithm of the ratio of KO to PEP prices tends towards $0.005$. A ratio of $e^{0.005} \approx 1.005$.
Traders often use moving averages to approximate $\mu$. A 200-day moving average of a price series provides a dynamic estimate of its long-run mean. This approach adapts to changing market regimes.
Volatility ($\sigma$)
Volatility ($\sigma$) quantifies the randomness or noise in the process. It measures the magnitude of random fluctuations around the long-run mean. A high $\sigma$ indicates large, unpredictable price swings. A low $\sigma$ suggests more stable price action.
$\sigma$ affects the confidence intervals around the mean. A higher $\sigma$ means wider bands. Trading signals require larger deviations from the mean to overcome noise. A lower $\sigma$ allows for tighter bands and more frequent trading opportunities.
Consider a mean reversion strategy on two different ETFs: SPDR S&P 500 (SPY) and ProShares UltraPro QQQ (TQQQ). TQQQ is a 3x leveraged ETF.
For SPY, we estimate $\sigma = 0.01$ (daily log returns). For TQQQ, we estimate $\sigma = 0.03$ (daily log returns). TQQQ is three times more volatile than SPY.
A trader setting Bollinger Bands for mean reversion on SPY might use $1.5$ standard deviations. This captures most price action while providing sufficient signals. For TQQQ, using $1.5$ standard deviations would generate too many false signals due to its higher $\sigma$. The trader would need to use $2.5$ or $3$ standard deviations to filter out noise.
Estimating $\sigma$ involves calculating the standard deviation of the residuals from the OLS regression.
$\hat{\sigma}^2 = \frac{1}{N-2} \sum_{t=1}^{N-1} ( \Delta S_t - (\hat{\alpha} + \hat{\beta} S_t) )^2$
The residual $\epsilon_t = \Delta S_t - (\hat{\alpha} + \hat{\beta} S_t)$ represents the unexplained random component. The standard deviation of these residuals gives $\sigma$.
For the KO/PEP spread, suppose the standard deviation of the residuals is $0.002$. This is the estimated $\sigma$. This value helps define the width of the "reversion channel." A $1\sigma$ deviation from the mean is $0.002$. A $2\sigma$ deviation is $0.004$.
Traders use $\sigma$ to set entry and exit thresholds. A common approach involves trading when the price deviates by a certain multiple of $\sigma$ from $\mu$. For example, shorting when the price is $(\mu + 2\sigma)$ and covering when it returns to $\mu$.
Practical Implementation Notes
Traders estimate OU parameters using historical data. Python's statsmodels library provides OLS regression functionality. Continuously monitor parameter stability. Market regimes change, and parameters drift. Implement rolling windows for parameter estimation. For example, re-estimate $\theta$, $\mu$, and $\sigma$ every 60 or 120 days. This keeps the model adaptive.
