microsoft/qlib · error · NotImplementedError

Please implement the `get_cash` method

Error message

Please implement the `get_cash` method

What it means

Error "Please implement the `get_cash` method" thrown in microsoft/qlib.

Source

Thrown at qlib/backtest/position.py:146

        float:
            the amount of the stock
        """
        raise NotImplementedError(f"Please implement the `get_stock_amount` method")

    def get_cash(self, include_settle: bool = False) -> float:
        """
        Parameters
        ----------
        include_settle:
            will the unsettled(delayed) cash included
            Default: not include those unavailable cash

        Returns
        -------
        float:
            the available(tradable) cash in position
        """
        raise NotImplementedError(f"Please implement the `get_cash` method")

    def get_stock_amount_dict(self) -> dict:
        """
        generate stock amount dict {stock_id : amount of stock}

        Returns
        -------
        Dict:
            {stock_id : amount of stock}
        """
        raise NotImplementedError(f"Please implement the `get_stock_amount_dict` method")

    def get_stock_weight_dict(self, only_stock: bool = False) -> dict:
        """
        generate stock weight dict {stock_id : value weight of stock in the position}
        it is meaningful in the beginning or the end of each trade step
        - During execution of each trading step, the weight may be not consistent with the portfolio value

View on GitHub (pinned to 79633dd950)

Solutions

  1. Implement the `get_cash` method in your Position subclass before calling it.
  2. Use the built-in Position class which already implements `get_cash`.

When it happens

Trigger: This error is raised at qlib/backtest/position.py:146 when the guard condition fails: "Please implement the `get_cash` method". It triggers when the code path receives input or a state that violates the precondition checked at this point — e.g. an unimplemented abstract method being called, an unsupported argument type/value, or an invalid configuration. To avoid it, satisfy the documented precondition before this call: implement the required method in your subclass, or pass a supported value of the expected type as described by the message.

Common situations: See trigger scenarios.


AI-assisted analysis of microsoft/qlib@79633dd950 (2026-08-15). Data as JSON: /api/errors/b5813481aec5ea4b. Report an issue: GitHub.