Back to Research
Portfolio Risk August 24, 2026 • 15 min read

Realized Covariance, Correlation, and Beta: Cross-Asset Co-Movement from High-Frequency Returns

A single asset's risk is a one-dimensional question — how much does it move? A portfolio's risk is a two-dimensional one — how do its holdings move together? Diversification, hedging, and every risk model that nets one position against another rest on the covariance between returns, and that number is neither constant nor easy to measure cleanly at high frequency. This is a working guide to three model-free estimators — realized covariance, realized correlation, and realized beta — including the alignment trap that quietly biases all of them.

1. Why one asset's volatility is never enough

Measure the volatility of every position in a book and you still know almost nothing about the book's risk. Two names that each swing 2% a day are a very different portfolio depending on whether they move in lockstep or cancel each other out. The quantity that decides which world you are in is covariance — the tendency of two return series to be large-and-positive, or large-and-opposite, at the same moment. Portfolio variance is not the sum of the parts; it is the parts plus every pairwise covariance between them, and for a book of any size those cross terms dominate.

Classically, covariance is estimated over a long window of daily returns. That is fine for a strategic allocation and useless for a desk that rehedges intraday, because co-movement is one of the least stable quantities in markets: it drifts with regime, spikes in stress, and decays back in calm. The high-frequency answer is the same move that gave us realized variance — stop assuming a model and simply add up what actually happened, tick by tick.

2. Realized covariance

Take two assets sampled on the same clock over a session — return series x and y, aligned observation for observation. Realized covariance is just the sum of their products:

RCov = Σi xi · yi

That is it — no mean subtraction, no distributional assumption. On high-frequency returns the mean per interval is negligible, so the raw cross-product sum is the standard estimator, exactly as Σ r² is for realized variance. It has a clean interpretation: each term is positive when both assets moved the same way in that interval and negative when they diverged, so the sum accumulates the net co-movement of the session. Sampled finely, RCov converges to the integral of the instantaneous covariance — the integrated covariance — the multi-asset analogue of integrated variance. The whole matrix of these numbers, one per pair, is the realized covariance matrix that a risk model actually wants.

3. Realized correlation

Covariance carries units — it scales with the volatility of both assets — so a bigger number does not mean a tighter relationship. To compare across pairs you normalise by each asset's realized volatility, which gives realized correlation:

RCorr = Σ x·y / ( √Σx² · √Σy² )

This is a pure, unit-free number in [−1, +1]: +1 is perfect co-movement, 0 is no linear relationship, −1 is a perfect hedge. Because the denominator is the product of the two realized volatilities, realized correlation is the intraday cousin of the familiar Pearson correlation — but built from the market's own tick record rather than a modelled covariance. It is the right lens for the diversification question: a book of assets that all realise correlations near +1 is one position wearing many tickers, however different the names look.

4. Realized beta

Correlation is symmetric — it treats both assets as equals. Often the question is directional: how much does this asset move when the market moves? That is beta, and its realized form is the ratio of the covariance with the market to the market's own realized variance:

RBeta = Σ ai·mi / Σ mi²

where a is the asset and m the market (or any chosen reference — an index, a sector ETF, the leg you are hedging against). This is exactly the slope of a least-squares line through the origin fitting a on m: a realized beta of 1.4 says the asset has historically moved 1.4 units for every unit of the market, this session. It is also the hedge ratio — short 1.4 units of the market per unit of the asset to neutralise first-order market exposure — and it ties the three estimators together neatly, since beta equals correlation times the ratio of volatilities: β = ρ · σa / σm. Estimated on high-frequency returns rather than a rolling window of daily closes, realized beta tracks a name's market sensitivity as it actually shifts through the day instead of lagging weeks behind.

5. The trap: non-synchronous trading and the Epps effect

Every formula above assumes the two return series are aligned — that xi and yi cover the same slice of time. Real assets do not cooperate. They trade at different moments; a liquid future prints many times a second while a thinner name updates sporadically. Line them up on a fine grid and many intervals will have a genuine move in one asset paired with a stale, unchanged print in the other. Those mismatched pairs contribute near-zero products, and they systematically drag the measured covariance toward zero.

This is the Epps effect (1979): empirically, the correlation between two securities falls as you sample them more finely, purely as an artefact of non-synchronous trading. It is one of the most important and most overlooked biases in high-frequency risk. Sample at a coarse interval and the correlation looks strong; push to the millisecond and it appears to melt away — not because the assets decoupled, but because the sampling out-ran the slower asset's updates. Two practical defences: sample coarsely enough that both assets reliably update within each interval (trading resolution for less bias), or sample by activity rather than the clock with information-driven bars, so intervals expand and contract with the market and both series are more likely to have moved. Whatever you choose, the estimate is only as trustworthy as the alignment underneath it.

6. Why co-movement is the number that betrays you

Correlation has a cruel property: it is highest exactly when you most need it to be low. In calm markets, assets wander on their own idiosyncratic stories and a diversified book smooths them out. In a stress event, everything is sold at once, idiosyncratic detail is drowned by a single liquidation signal, and pairwise correlations lurch toward +1. The diversification that looked solid on a year of daily data evaporates in the hour it is supposed to protect you. A covariance estimate measured on last month's calm is not the covariance you will face in next week's shock.

This is precisely why the realized, high-frequency versions earn their place. Because they update from the live tape rather than a slow rolling window, they register a correlation regime shift in hours rather than weeks — early enough to cut gross exposure while it still matters. Read realized correlation as a moving state variable, not a fixed parameter: a book that is comfortably diversified at ρ = 0.3 can be a single concentrated bet at ρ = 0.9, and the only way to know which you are holding right now is to measure it right now.

7. Computing it

All three are one pass over two aligned arrays. Our open-source orderflow-metrics library ships them, dependency-free, in TypeScript and Python:

import {
  realizedCovariance,
  realizedCorrelation,
  realizedBeta,
} from "orderflow-metrics";

const asset  = [0.008, -0.018, 0.02, -0.002, 0.017, -0.012]; // the name
const market = [0.01, -0.02, 0.015, -0.005, 0.02, -0.01];    // the reference

realizedCovariance(asset, market);   // 0.00121  — co-movement, in return-units squared
realizedCorrelation(asset, market);  // 0.9778   — tight positive relationship, in [-1, 1]
realizedBeta(asset, market);         // 0.968    — asset moves ~0.97 per unit of the market

The Python distribution exposes the same three functions in idiomatic form. Both require the two series to be aligned and equal in length — the library does the arithmetic, but keeping the clocks honest is on the caller, which is exactly where the sampling layer earns its keep. These sit naturally beside the single-asset volatility and efficiency metrics in the wider market microstructure toolkit we build in the open, and they feed directly into portfolio risk, hedge construction, and any backtest that trades more than one thing at a time.

8. Conclusion

Risk lives in the relationships between positions, not just inside them, and those relationships move. Realized covariance measures raw co-movement straight from the tape; realized correlation normalises it into a comparable number that answers the diversification question; realized beta turns it into the directional sensitivity that hedges are built on. All three are model-free, one-pass, and honest — provided you respect the alignment beneath them and read the Epps effect as a real bias rather than a curiosity. Measure co-movement the way it actually behaves — as a live, shifting quantity — and a portfolio's risk stops being a guess. Explore the rest of the toolkit in our quantitative research library, or read the implementation in our open-source metrics.

For more on portfolio risk analytics and open-source tooling, visit our official resources:

🧩 Open Source 💻 orderflow-metrics on GitHub 📚 More Research