Skip to main content
Version: latest

Analysis

The analysis subpackage groups components relating to trading performance statistics and analysis.

class PortfolioAnalyzer

Bases: object

Provides a portfolio performance analyzer for tracking and generating performance metrics and statistics.

register_statistic(statistic: PortfolioStatistic) → None

Register the given statistic with the analyzer.

deregister_statistic(statistic: PortfolioStatistic) → None

Deregister a statistic from the analyzer.

deregister_statistics() → None

Deregister all statistics from the analyzer.

reset() → None

Reset the analyzer.

All stateful fields are reset to their initial value.

property currencies : list[Currency]

Return the analyzed currencies.

statistic(name: str) → PortfolioStatistic | None

Return the statistic with the given name (if found).

  • Return type: PortfolioStatistic or None

returns() → Series

Return raw the returns data.

  • Return type: pd.Series

calculate_statistics(account: Account, positions: list[Position]) → None

Calculate performance metrics from the given data.

  • Parameters:
    • account (Account) – The account for the calculations.
    • positions (list [Position ]) – The positions for the calculations.

add_positions(positions: list[Position]) → None

Add positions data to the analyzer.

  • Parameters: positions (list [Position ]) – The positions for analysis.

add_trade(position_id: PositionId, realized_pnl: Money) → None

Add trade data to the analyzer.

  • Parameters:
    • position_id (PositionId) – The position ID for the trade.
    • realized_pnl (Money) – The realized PnL for the trade.

add_return(timestamp: datetime, value: float) → None

Add return data to the analyzer.

  • Parameters:
    • timestamp (datetime) – The timestamp for the returns entry.
    • value (double) – The return value to add.

realized_pnls(currency: Currency | None = None) → Series | None

Return the realized PnL for the portfolio.

For multi-currency portfolios, specify the currency for the result.

  • Parameters: currency (Currency , optional) – The currency for the result.
  • Return type: pd.Series or None
  • Raises: ValueError – If currency is None when analyzing multi-currency portfolios.

total_pnl(currency: Currency | None = None, unrealized_pnl: Money | None = None) → float

Return the total PnL for the portfolio.

For multi-currency portfolios, specify the currency for the result.

  • Parameters:
    • currency (Currency , optional) – The currency for the result.
    • unrealized_pnl (Money , optional) – The unrealized PnL for the given currency.
  • Return type: float
  • Raises:
    • ValueError – If currency is None when analyzing multi-currency portfolios.
    • ValueError – If currency is not contained in the tracked account balances.
    • ValueError – If unrealized_pnl is not None and currency is not equal to the given currency.

total_pnl_percentage(currency: Currency | None = None, unrealized_pnl: Money | None = None) → float

Return the percentage change of the total PnL for the portfolio.

For multi-currency accounts, specify the currency for the result.

  • Parameters:
    • currency (Currency , optional) – The currency for the result.
    • unrealized_pnl (Money , optional) – The unrealized PnL for the given currency.
  • Return type: float
  • Raises:
    • ValueError – If currency is None when analyzing multi-currency portfolios.
    • ValueError – If currency is not contained in the tracked account balances.
    • ValueError – If unrealized_pnl is not None and currency is not equal to the given currency.

get_performance_stats_pnls(currency: Currency | None = None, unrealized_pnl: Money | None = None) → dict[str, float]

Return the ‘PnL’ (profit and loss) performance statistics, optionally includes the unrealized PnL.

Money objects are converted to floats.

  • Parameters:
    • currency (Currency) – The currency for the performance.
    • unrealized_pnl (Money , optional) – The unrealized PnL for the performance.
  • Return type: dict[str, Any]

get_performance_stats_returns() → dict[str, Any]

Return the return performance statistics values.

  • Return type: dict[str, Any]

get_performance_stats_general() → dict[str, Any]

Return the general performance statistics.

  • Return type: dict[str, Any]

get_stats_pnls_formatted(currency: Currency | None = None, unrealized_pnl: Money | None = None) → list[str]

Return the performance statistics from the last backtest run formatted for printing in the backtest run footer.

  • Parameters:
    • currency (Currency) – The currency for the performance.
    • unrealized_pnl (Money , optional) – The unrealized PnL for the performance.
  • Return type: list[str]

get_stats_returns_formatted() → list[str]

Return the performance statistics for returns from the last backtest run formatted for printing in the backtest run footer.

  • Return type: list[str]

get_stats_general_formatted() → list[str]

Return the performance statistics for returns from the last backtest run formatted for printing in the backtest run footer.

  • Return type: list[str]

class ReportProvider

Bases: object

Provides various portfolio analysis reports.

static generate_orders_report(orders: list[Order]) → DataFrame

Generate an orders report.

  • Parameters: orders (list [Order ]) – The orders for the report.
  • Return type: pd.DataFrame

static generate_order_fills_report(orders: list[Order]) → DataFrame

Generate an order fills report.

This report provides a row per order.

  • Parameters: orders (list [Order ]) – The orders for the report.
  • Return type: pd.DataFrame

static generate_fills_report(orders: list[Order]) → DataFrame

Generate a fills report.

This report provides a row per individual fill event.

  • Parameters: orders (list [Order ]) – The orders for the report.
  • Return type: pd.DataFrame

static generate_positions_report(positions: list[Position]) → DataFrame

Generate a positions report.

  • Parameters: positions (list [Position ]) – The positions for the report.
  • Return type: pd.DataFrame

static generate_account_report(account: Account) → DataFrame

Generate an account report for the given optional time range.

  • Parameters: account (Account) – The account for the report.
  • Return type: pd.DataFrame

class PortfolioStatistic

Bases: object

The base class for all portfolio performance statistics.

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

class Expectancy

Bases: PortfolioStatistic

Calculates the expectancy from a realized PnLs series.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class LongRatio

Bases: PortfolioStatistic

Calculates the ratio of long (to short) positions.

  • Parameters: precision (int , default 2) – The decimal precision for the output.

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class AvgLoser

Bases: PortfolioStatistic

Calculates the average loser from a series of PnLs.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class MaxLoser

Bases: PortfolioStatistic

Calculates the maximum loser from a series of PnLs.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class MinLoser

Bases: PortfolioStatistic

Calculates the minimum loser from a series of PnLs.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class ProfitFactor

Bases: PortfolioStatistic

Calculates the annualized profit factor or ratio (wins/loss).

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class ReturnsAverage

Bases: PortfolioStatistic

Calculates the average return.

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

class ReturnsAverageLoss

Bases: PortfolioStatistic

Calculates the average losing return.

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

class ReturnsAverageWin

Bases: PortfolioStatistic

Calculates the average winning return.

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

class ReturnsVolatility

Bases: PortfolioStatistic

Calculates the volatility of returns.

The returns will be downsampled into daily bins.

  • Parameters: period (int , default 252) – The trading period in days.

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

class RiskReturnRatio

Bases: PortfolioStatistic

Calculates the return on risk ratio.

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class SharpeRatio

Bases: PortfolioStatistic

Calculates the Sharpe Ratio from returns.

The returns will be downsampled into daily bins.

  • Parameters: period (int , default 252) – The trading period in days.

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

class SortinoRatio

Bases: PortfolioStatistic

Calculates the annualized Sortino Ratio from returns.

The returns will be downsampled into daily bins.

  • Parameters: period (int , default 252) – The trading period in days.

property name : str

Return the name for the statistic.

  • Return type: str

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

class WinRate

Bases: PortfolioStatistic

Calculates the win rate from a realized PnLs series.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class AvgWinner

Bases: PortfolioStatistic

Calculates the average winner from a series of PnLs.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class MaxWinner

Bases: PortfolioStatistic

Calculates the maximum winner from a series of PnLs.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str

class MinWinner

Bases: PortfolioStatistic

Calculates the minimum winner from a series of PnLs.

calculate_from_realized_pnls(realized_pnls: Series) → Any | None

Calculate the statistic value from the given raw realized PnLs.

  • Parameters: realized_pnls (pd.Series) – The raw PnLs for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_orders(orders: list[Order]) → Any | None

Calculate the statistic value from the given orders.

  • Parameters: orders (list [Order ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_positions(positions: list[Position]) → Any | None

Calculate the statistic value from the given positions.

  • Parameters: positions (list [Position ]) – The positions to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

calculate_from_returns(returns: Series) → Any | None

Calculate the statistic value from the given raw returns.

  • Parameters: returns (pd.Series) – The returns to use for the calculation.
  • Returns: A JSON serializable primitive.
  • Return type: Any or None

classmethod fully_qualified_name() → str

Return the fully qualified name for the PortfolioStatistic class.

  • Return type: str

property name : str

Return the name for the statistic.

  • Return type: str