portfolio_toolkit.position.closed package
Submodules
portfolio_toolkit.position.closed.closed_position module
- class portfolio_toolkit.position.closed.closed_position.ClosedPosition(ticker: str, buy_price: float, quantity: float, buy_date: str, sell_price: float, sell_date: str)[fuente]
Bases:
Position
- classmethod to_list(positions: List[ClosedPosition]) List [fuente]
Convert a list of Position objects to a pandas DataFrame.
- classmethod to_dataframe(positions: List[ClosedPosition]) DataFrame [fuente]
Convert a list of Position objects to a pandas DataFrame.
portfolio_toolkit.position.closed.closed_position_list module
- class portfolio_toolkit.position.closed.closed_position_list.ClosedPositionList(positions: List[ClosedPosition])[fuente]
Bases:
object
- __init__(positions: List[ClosedPosition])[fuente]
- classmethod from_portfolio(portfolio: List[PortfolioAsset], from_date: str, to_date: str) ClosedPositionList [fuente]
Create ClosedPositionList from a portfolio.
portfolio_toolkit.position.closed.get_closed_positions_stats module
- portfolio_toolkit.position.closed.get_closed_positions_stats.get_closed_positions_stats(positions: ClosedPositionList, date: str) Dict[str, Any] [fuente]
Calculates a summary of closed positions with key metrics.
- Parámetros:
positions (List[ClosedPosition]) – List of ClosedPosition objects representing closed positions.
date (str) – The date for which the positions are calculated.
- Devuelve:
- Dictionary containing summary metrics:
date: Reference date
total_positions: Total number of positions
winning_positions: Number of profitable positions
losing_positions: Number of unprofitable positions
win_rate: Win rate percentage
total_profit: Total profit/loss
best_return: Best return percentage
best_ticker: Ticker with best performance
worst_return: Worst return percentage
worst_ticker: Ticker with worst performance
- Tipo del valor devuelto:
Dict[str, Any]
- portfolio_toolkit.position.closed.get_closed_positions_stats.print_closed_positions_summary(positions: ClosedPositionList, date: str) None [fuente]
Prints a summary of closed positions with key metrics only.
This function uses get_closed_positions_summary() and formats the output.
- Parámetros:
positions (List[ClosedPosition]) – List of ClosedPosition objects representing closed positions.
date (str) – The date for which the positions are printed.
- Devuelve:
None
portfolio_toolkit.position.closed.list_from_portfolio module
- portfolio_toolkit.position.closed.list_from_portfolio.get_closed_positions(assets: List[PortfolioAsset], from_date: str, to_date: str) ClosedPositionList [fuente]
Calculates all closed positions for multiple assets using FIFO logic up to a specific date.
- Parámetros:
assets (List[PortfolioAsset]) – List of PortfolioAsset objects containing transactions.
date (str) – The date up to which closed positions are calculated (YYYY-MM-DD).
- Devuelve:
List of all ClosedPosition objects from all assets.
- Tipo del valor devuelto:
- portfolio_toolkit.position.closed.list_from_portfolio.get_asset_closed_positions(asset: PortfolioAsset, from_date: str, to_date: str) List[ClosedPosition] [fuente]
Calculates all closed positions for an asset using FIFO logic up to a specific date. Each “sell” transaction closes positions from the oldest “buy” transactions.
- Parámetros:
- Devuelve:
List of ClosedPosition objects representing closed positions.
- Tipo del valor devuelto:
List[ClosedPosition]
portfolio_toolkit.position.closed.plot_closed_positions module
- portfolio_toolkit.position.closed.plot_closed_positions.plot_closed_positions(closed_positions: List[ClosedPosition]) BarChartData [fuente]
Plot closed positions grouped by month of sale
- portfolio_toolkit.position.closed.plot_closed_positions.plot_closed_positions_by_ticker(closed_positions: List[ClosedPosition]) BarChartData [fuente]
Plot closed positions grouped by ticker
- portfolio_toolkit.position.closed.plot_closed_positions.plot_closed_positions_count_by_month(closed_positions: List[ClosedPosition]) BarChartData [fuente]
Plot count of closed positions by month
Module contents
- class portfolio_toolkit.position.closed.ClosedPosition(ticker: str, buy_price: float, quantity: float, buy_date: str, sell_price: float, sell_date: str)[fuente]
Bases:
Position
- __init__(ticker: str, buy_price: float, quantity: float, buy_date: str, sell_price: float, sell_date: str) None
- classmethod to_dataframe(positions: List[ClosedPosition]) DataFrame [fuente]
Convert a list of Position objects to a pandas DataFrame.
- classmethod to_list(positions: List[ClosedPosition]) List [fuente]
Convert a list of Position objects to a pandas DataFrame.
- class portfolio_toolkit.position.closed.ClosedPositionList(positions: List[ClosedPosition])[fuente]
Bases:
object
- __init__(positions: List[ClosedPosition])[fuente]
- classmethod from_portfolio(portfolio: List[PortfolioAsset], from_date: str, to_date: str) ClosedPositionList [fuente]
Create ClosedPositionList from a portfolio.