Skip to content

trading_agent.tools.get_portfolio_tool

The get_portfolio tool: the account's positions, holdings or funds across every broker.

Typical usage example:

tool = GetPortfolioTool(reader, formatter)

GetPortfolioArguments

Bases: BaseModel

The arguments of get_portfolio.

Attributes:

Name Type Description
kind Literal['positions', 'holdings', 'funds']

"positions" for today's and carried positions, "holdings" for delivery holdings, "funds" for balances and margins.

GetPortfolioTool

GetPortfolioTool(reader, formatter)

Bases: BrokerTool

Reads one part of the portfolio.

Source code in src/trading_agent/tools/broker_tool.py
def __init__(
    self,
    reader: broker_reader_module.BrokerReader,
    formatter: result_formatter_module.ResultFormatter,
):
    """Creates the tool.

    Args:
        reader (broker_reader_module.BrokerReader): The shared reader of UBI.
        formatter (result_formatter_module.ResultFormatter): Turns tradingmachine's answers into text.
    """
    self._reader = reader
    self._formatter = formatter

run async

run(arguments)

Reads the part of the portfolio.

Parameters:

Name Type Description Default
arguments GetPortfolioArguments

Which part.

required

Returns:

Type Description
ToolResult

UBI's answer, or an error.

Source code in src/trading_agent/tools/get_portfolio_tool.py
async def run(self, arguments: GetPortfolioArguments) -> tool.ToolResult:
    """Reads the part of the portfolio.

    Args:
        arguments (GetPortfolioArguments): Which part.

    Returns:
        tool.ToolResult: UBI's answer, or an error.
    """
    return await self._answer(functools.partial(self._read, arguments))