Skip to main content

Variables

  • run_from_portfolio_metric: systematica.portfolio.metrics.PortfolioMetric: Initiated portfolio metric class with default metric config.

check_metrics

check_metrics(
    metrics: str | List[str],
)
Validate metrics. Parameters:
NameTypeDefaultDescription
metricsstr--| tp.List[str] Performance metrics.
Raises:
TypeDescription
TypeErrorIf metrics is not a string or list.
ValueErrorIf metric has not been configured and is not tunable.
ValueErrorIf mixing tunable and non-tunable metrics.

get_total_returns_nb

get_total_returns_nb(
    close: numpy.ndarray,
    sim_out: vectorbtpro.portfolio.enums.SimulationOutput,
)
Calculate the total returns. Parameters:
NameTypeDefaultDescription
closetp.Array2d--Array of close prices.
sim_outSimulationOutputT--Simulation output containing order records.
Returns:
TypeDescription
floatTotal returns.

get_expectancy_nb

get_expectancy_nb(
    close: numpy.ndarray,
    sim_out: vectorbtpro.portfolio.enums.SimulationOutput,
)
Calculate the expectancy. Parameters:
NameTypeDefaultDescription
closetp.Array2d--Array of close prices.
sim_outSimulationOutputT--Simulation output containing order records.
Returns:
TypeDescription
floatExpectancy.

get_sharpe_nb

get_sharpe_nb(
    close: numpy.ndarray,
    sim_out: <function NamedTuple at 0x10535c180>,
    ann_factor: int,
) ‑> float
Calculate the Sharpe ratio.
Note on ddof:
  • Use ddof=0 for population variance, where you have data for the entire population.
  • Use ddof=1 for sample variance, to correct for bias when estimating the variance of a population from a sample.
Parameters:
NameTypeDefaultDescription
closetp.Array2d--Array of close prices.
sim_outtp.NamedTuple--Simulation output containing returns.
ann_factorint--Annualization factor.
Returns:
TypeDescription
floatSharpe ratio.

PortfolioMetric

PortfolioMetric(
    registry: <function NamedTuple at 0x10535c180> = None,
)
Portfolio metric class to manage and execute portfolio metrics. Method generated by attrs for class PortfolioMetric.

Instance variables

  • all_non_tunable_metrics: List[str]:
  • all_tunable_metrics: List[str]:
  • registry: <function NamedTuple at 0x10535c180>: Metric vbt.HybridConfig registry. This registry should have a retrivable metric name as key and schema. if None, fallbacks to METRIC_REGISTRY.

Methods

get_all_metrics

get_all_metrics(
    self,
    include_non_tunable: bool = False,
) ‑> List[str]
Get a list of metric keys from the registry. Optionally include non-tunable metrics based on user choice. Parameters:
NameTypeDefaultDescription
include_non_tunableboolFalseWhether to include non-tunable metrics. Defaults to False.
Returns:
TypeDescription
List[str]List of metric keys with valid (non-NaNs) rolling_func values.

get_all_rolling_metrics

get_all_rolling_metrics(
    self,
    include_non_tunable: bool = False,
) ‑> List[str]
Get a list of metric keys from the registry that have a valid rolling_func. Optionally include non-tunable metrics based on user choice. Parameters:
NameTypeDefaultDescription
include_non_tunableboolFalseWhether to include non-tunable metrics. Defaults toFalse.
Returns:
TypeDescription
List[str]List of metric keys with valid (non-NaNs) rolling_func values.

get_all_pf_metrics

get_all_pf_metrics(
    self,
    include_non_tunable: bool = False,
) ‑> List[str]
Get a list of metric keys from the registry that have a valid pf_func. Optionally include non-tunable metrics based on user choice. Parameters:
NameTypeDefaultDescription
include_non_tunableboolFalseWhether to include non-tunable metrics. Defaults to False.
Returns:
TypeDescription
List[str]List of metric keys with valid (non-NaNs) pf_func values.

run

run(
    self,
    pf: vectorbtpro.portfolio.base.Portfolio,
    metrics: str | List[str],
    key: str,
    **kwargs,
) ‑> Dict[strfloat | pandas.core.series.Series | pandas.core.frame.DataFrame]
Retrieve a dictionary of metric keys and their function values from the registry and execute it using vbt.deep_get_attr. Only includes metrics with non-None and string-type values.
  • Metrics with None or missing are excluded.
  • The function stops iterating once all requested metrics are found.
  • Input validation ensures all provided metrics exist in the registry.
Parameters:
NameTypeDefaultDescription
pfvbt.Portfolio--Portfolio instance.
metricsstr--or list of str A single metric key or a list of metric keys to look up in the registry.
keystr--Type of key to fetch.
kwargstp.Kwargs--Additional key-word arguments.
Raises:
TypeDescription
KeyErrorIf any provided metric key is not found in the registry.
Returns:
TypeDescription
tp.Dict[str, float | tp.SeriesFrame]Dictionary mapping valid metric keys to their corresponding output values.

run_rolling_metric

run_rolling_metric(
    self,
    pf: vectorbtpro.portfolio.base.Portfolio,
    metrics: str | List[str],
    window: int,
    minp: int = None,
    to_numpy: bool = False,
    **kwargs,
) ‑> pandas.core.frame.DataFrame | numpy.ndarray
Retrieve a dictionary of metric keys and their rolling function values from the registry and execute it using vbt.deep_get_attr. Only includes metrics with non-None and string-type values. Parameters:
NameTypeDefaultDescription
pfvbt.Portfolio--Portfolio instance.
metricsstr--or list of str A single metric key or a list of metric keys to look up in the registry.
windowint--Rolling window size.
minpintNoneMinimum number of observations required.
to_numpyboolFalseIf False, returns a pandas DataFrame. Otherwise a numpy array.
kwargstp.Kwargs--Additional key-word arguments.
Returns:
TypeDescription
pd.DataFrame | tp.ArrayRolling output.

run_pf_metric

run_pf_metric(
    self,
    pf: vectorbtpro.portfolio.base.Portfolio,
    metrics: str | List[str],
    to_dict: bool = False,
    to_numpy: bool = False,
    **kwargs,
) ‑> collections.OrderedDict | numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame
Retrieve a dictionary of metric keys and their pf function values from the registry and execute it using vbt.deep_get_attr. Only includes metrics with non-None and string-type values. Parameters:
NameTypeDefaultDescription
pfvbt.Portfolio--Portfolio instance.
metricsstr--or list of str A single metric key or a list of metric keys to look up in the registry.
to_dictboolFalseChange frame format output to dict type if set to True. Raw pd.DataFrame object data otherwise. Frames are retrieve when group_by is False in the vbt.PF configuration and/or when rolling calculation is triggered. Defaults to False.
to_numpyboolFalseIf False, returns a pandas DataFrame. Otherwise a numpy array.
kwargstp.Kwargs--Additional key-word arguments.
Returns:
TypeDescription
OrderedDictFloat or int if metrics is standalone. OrderedDict mapping valid metric keys to their corresponding output.