microsoft/qlib · error · NotImplementedError

Please implement the `get_stock_weight_dict` method

Error message

Please implement the `get_stock_weight_dict` method

What it means

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

Source

Thrown at qlib/backtest/position.py:176

    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

        Parameters
        ----------
        only_stock : bool
            If only_stock=True, the weight of each stock in total stock will be returned
            If only_stock=False, the weight of each stock in total assets(stock + cash) will be returned

        Returns
        -------
        Dict:
            {stock_id : value weight of stock in the position}
        """
        raise NotImplementedError(f"Please implement the `get_stock_weight_dict` method")

    def add_count_all(self, bar: str) -> None:
        """
        Will be called at the end of each bar on each level

        Parameters
        ----------
        bar :
            The level to be updated
        """
        raise NotImplementedError(f"Please implement the `add_count_all` method")

    def update_weight_all(self) -> None:
        """
        Updating the position weight;

        # TODO: this function is a little weird. The weight data in the position is in a wrong state after dealing order
        # and before updating weight.

View on GitHub (pinned to 79633dd950)

Solutions

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

When it happens

Trigger: This error is raised at qlib/backtest/position.py:176 when the guard condition fails: "Please implement the `get_stock_weight_dict` 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/b1857af431e31a11. Report an issue: GitHub.