Source code for portfolio_toolkit.position.get_closed_positions

from typing import List

from portfolio_toolkit.asset.portfolio_asset import PortfolioAsset
from portfolio_toolkit.position.get_asset_closed_positions import (
    get_asset_closed_positions,
)

from .closed_position import ClosedPosition


[docs] def get_closed_positions( assets: List[PortfolioAsset], from_date: str, to_date: str ) -> List[ClosedPosition]: """ Calculates all closed positions for multiple assets using FIFO logic up to a specific date. Args: assets (List[PortfolioAsset]): List of PortfolioAsset objects containing transactions. date (str): The date up to which closed positions are calculated (YYYY-MM-DD). Returns: List[ClosedPosition]: List of all ClosedPosition objects from all assets. """ all_closed_positions: List[ClosedPosition] = [] for asset in assets: asset_closed_positions = get_asset_closed_positions(asset, from_date, to_date) all_closed_positions.extend(asset_closed_positions) return all_closed_positions