Source code for portfolio_toolkit.asset.create

from typing import Optional

from portfolio_toolkit.data_provider.data_provider import DataProvider

from .portfolio_asset import PortfolioAsset


[docs] def create_market_asset( data_provider: DataProvider, ticker: str, currency: Optional[str] = None ) -> PortfolioAsset: """ Creates a PortfolioAsset object with market data using a data provider. Args: data_provider: The data provider instance to fetch ticker information and prices. ticker (str): The ticker for the asset. currency (Optional[str]): The currency for price data. If None, uses the asset's default currency. Returns: PortfolioAsset: The PortfolioAsset object with market data including: - ticker - sector - prices (historical price data) - info (ticker information from data provider) - currency - transactions (empty list) """ # Get ticker information from data provider ticker_info = data_provider.get_ticker_info(ticker) # Determine currency - use provided currency or default from ticker info asset_currency = currency or data_provider.get_ticker_currency() # Get historical price data prices = data_provider.get_price_series_converted( ticker, target_currency=asset_currency ) # Create and return a PortfolioAsset object return PortfolioAsset( ticker=ticker, prices=prices, info=ticker_info, currency=asset_currency, transactions=[], # Initialize with an empty list of transactions )