sf_quant.performance.generate_leverage_summary_table#
- sf_quant.performance.generate_leverage_summary_table(leverage: LeverageSchema) DataFrame#
Generate a summary statistics table for portfolio leverage.
This function calculates summary metrics for portfolio leverage, including mean, min, max, and standard deviation.
Parameters#
- leverageLeverageSchema
Portfolio leverage validated against LeverageSchema. Must include the following columns:
date(date): The observation date.leverage(float): Daily portfolio leverage.
Returns#
- pl.DataFrame
A single-row DataFrame containing leverage summary statistics:
Count(int): Number of days in the sample.Mean Leverage(float): Average leverage.Min Leverage(float): Minimum leverage.Max Leverage(float): Maximum leverage.Std Leverage(float): Standard deviation of leverage.
Notes#
Leverage values are not annualized or converted to percentages.
Leverage = 1.0 indicates fully invested with no leverage or shorting.
Leverage > 1.0 indicates use of margin or shorting.
Examples#
>>> import polars as pl >>> import sf_quant.performance as sfp >>> import datetime as dt >>> weights = pl.DataFrame( ... { ... 'date': [dt.date(2024, 1, 2), dt.date(2024, 1, 2), dt.date(2024, 1, 3), dt.date(2024, 1, 3)], ... 'barrid': ['USA06Z1', 'USA0771', 'USA06Z1', 'USA0771'], ... 'weight': [0.5, 0.5, 0.3, 0.7] ... } ... ) >>> leverage = sfp.generate_leverage_from_weights(weights) >>> summary = sfp.generate_leverage_summary_table(leverage) >>> summary shape: (1, 5) ┌───────┬────────────────┬──────────────┬──────────────┬──────────────┐ │ Count ┆ Mean Leverage ┆ Min Leverage ┆ Max Leverage ┆ Std Leverage │ │ --- ┆ --- ┆ --- ┆ --- ┆ --- │ │ u32 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │ ╞═══════╪════════════════╪══════════════╪══════════════╪══════════════╡ │ 2 ┆ 1.0 ┆ 1.0 ┆ 1.0 ┆ 0.0 │ └───────┴────────────────┴──────────────┴──────────────┴──────────────┘