class_docstr: The correctness of the metrics of Account in nested execution depends on the shallow copy of `trade_account` in
  qlib/backtest/executor.py:NestedExecutor
  Different level of executor has different Account object when calculating metrics. But the position object is
  shared cross all the Account object.
code: def reset_report(self, freq: str, benchmark_config: dict) -> None:
      # portfolio related metrics
      if self.is_port_metr_enabled():
          # NOTE:
          # `accum_info` and `current_position` are shared here
          self.portfolio_metrics = PortfolioMetrics(
              freq, benchmark_config
          )
          self.hist_positions = {}
  
          # fill stock value
          # The frequency of account may not align with the trading frequency.
          # This may result in obscure bugs when data quality is low.
          if (
              isinstance(self.benchmark_config, dict)
              and "start_time" in self.benchmark_config
          ):
              self.current_position.fill_stock_value(
                  self.benchmark_config["start_time"], self.freq
              )
  
      # trading related metrics(e.g. high-frequency trading)
      self.indicator = Indicator()
  
imports: from __future__ import annotations
  import copy
  from typing import Dict, List, Optional, Tuple, cast
  import pandas
  from qlib.utils import init_instance_by_config
  from .decision import BaseTradeDecision, Order
  from .exchange import Exchange
  from .high_performance_ds import BaseOrderIndicator
  from .position import BasePosition
  from .report import Indicator, PortfolioMetrics
label_desc: Use image node_id 4 for calling the Account obj's underlying member method code with example usage: obj.reset_report(freq, benchmark_config) without return types