rolling_cov

rolling_cov(lhs, rhs, window, min_periods=None, ddof=1, name=None, metadata=None)

Return rolling covariance between corresponding columns.

Parameters

lhs : Panel | Graph
Left-hand numeric Panel or single-output Graph. rhs : Panel | Graph
Right-hand numeric Panel or single-output Graph. window : int
Positive trailing-window length in rows. min_periods : int | None, default None
Minimum number of observations required to produce a value. ddof : int, default 1
Delta degrees of freedom used by variance or standard-deviation calculations. name : str | None, default None
Optional graph-node name. A generated name is used when omitted. metadata : Mapping[str, Any] | None, default None
Optional metadata stored on the graph node.

Returns

Graph
Lazy single-output graph. Call .compute() to materialize a Panel.

Examples

import pandas as pd

from bagelquant_core import Domain, Panel
from bagelquant_core.composer import rolling_cov

domain = Domain(calendar=pd.to_datetime(["2024-01-02", "2024-01-03", "2024-01-04"]), universe=["a", "b"])
left = Panel.from_domain(pd.DataFrame({"a": [1.0, 2.0, 4.0], "b": [2.0, 3.0, 8.0]}, index=domain.sessions), domain)
right = Panel.from_domain(pd.DataFrame({"a": [1.0, 1.0, 2.0], "b": [1.0, 2.0, 4.0]}, index=domain.sessions), domain)

result = rolling_cov(left, right, window=2).compute().data
print(result)

Notes

Inputs are aligned by index and columns before the operation runs.

Rolling calculations run independently down each asset column.