portfolio_toolkit.portfolio.stats package

Submodules

Module contents

class portfolio_toolkit.portfolio.stats.PortfolioStats(realized_profit: float, unrealized_profit: float, initial_cash: float, final_cash: float, initial_valuation: float, final_valuation: float, incomes: float, deposits: float, withdrawals: float, commission: float, closed_positions_stats: Dict[str, Any], closed_positions: DataFrame, open_positions: DataFrame, transactions: DataFrame)[source]

Bases: object

Portfolio statistics dataclass containing all financial metrics and data for a given period.

realized_profit

Total profit/loss from closed positions

Type:

float

unrealized_profit

Unrealized gains/losses from current open positions

Type:

float

initial_valuation

Portfolio valuation at start of period

Type:

float

final_valuation

Portfolio valuation at end of period

Type:

float

incomes

Total income transactions in period

Type:

float

deposits

Total deposit transactions in period

Type:

float

withdrawals

Total withdrawal transactions in period

Type:

float

commission

Total commission fees (currently 0.0)

Type:

float

closed_positions_stats

Statistics about closed positions

Type:

Dict[str, Any]

closed_positions

DataFrame of closed positions

Type:

pd.DataFrame

open_positions

DataFrame of current open positions

Type:

pd.DataFrame

transactions

DataFrame of account transactions

Type:

pd.DataFrame

__init__(realized_profit: float, unrealized_profit: float, initial_cash: float, final_cash: float, initial_valuation: float, final_valuation: float, incomes: float, deposits: float, withdrawals: float, commission: float, closed_positions_stats: Dict[str, Any], closed_positions: DataFrame, open_positions: DataFrame, transactions: DataFrame) None
classmethod from_portfolio(portfolio: Portfolio, year: str) PortfolioStats[source]

Alternate constructor that builds PortfolioStats from a Portfolio and year.

property net_cash_flow: float

Net cash flow (deposits - withdrawals + incomes)

property return_percentage: float

Portfolio return percentage for the period

to_dict() Dict[str, Any][source]

Convert PortfolioStats to dictionary for backward compatibility

property total_profit: float

Total profit including both realized and unrealized gains

property valuation_change: float

Change in portfolio valuation from start to end of period

realized_profit: float
unrealized_profit: float
initial_cash: float
final_cash: float
initial_valuation: float
final_valuation: float
incomes: float
deposits: float
withdrawals: float
commission: float
closed_positions_stats: Dict[str, Any]
closed_positions: DataFrame
open_positions: DataFrame
transactions: DataFrame