code: def backtest(self):
      self._init_qlib()
      model = init_instance_by_config(self.task["model"])
      dataset = init_instance_by_config(self.task["dataset"])
      self._train_model(model, dataset)
      strategy_config = {
          "class": "TopkDropoutStrategy",
          "module_path": "qlib.contrib.strategy.signal_strategy",
          "kwargs": {
              "signal": (model, dataset),
              "topk": 50,
              "n_drop": 5,
          },
      }
      self.port_analysis_config["strategy"] = strategy_config
      self.port_analysis_config["backtest"][
          "benchmark"
      ] = self.benchmark
  
      with R.start(experiment_name=self.exp_name, resume=True):
          recorder = R.get_recorder()
          par = PortAnaRecord(
              recorder,
              self.port_analysis_config,
              indicator_analysis_method="value_weighted",
          )
          par.generate()
  
file_path: qlib/examples/nested_decision_execution/workflow.py
imports: from copy import deepcopy
  import qlib
  import fire
  import pandas
  from qlib.constant import REG_CN
  from qlib.config import HIGH_FREQ_CONFIG
  from qlib.data import D
  from qlib.utils import exists_qlib_data, init_instance_by_config, flatten_dict
  from qlib.workflow import R
  from qlib.workflow.record_temp import SignalRecord, PortAnaRecord
  from qlib.tests.data import GetData
  from qlib.backtest import collect_data
label_desc: Use image node_id 3 for calling the NestedDecisionExecutionWorkflow obj's underlying member method code with example usage: obj.backtest() without return types