code: def collect_data(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)
      executor_config = self.port_analysis_config["executor"]
      backtest_config = self.port_analysis_config["backtest"]
      backtest_config["benchmark"] = self.benchmark
      strategy_config = {
          "class": "TopkDropoutStrategy",
          "module_path": "qlib.contrib.strategy.signal_strategy",
          "kwargs": {
              "signal": (model, dataset),
              "topk": 50,
              "n_drop": 5,
          },
      }
      data_generator = collect_data(
          executor=executor_config,
          strategy=strategy_config,
          **backtest_config,
      )
      for trade_decision in data_generator:
          print(trade_decision)
  
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 4 for calling the NestedDecisionExecutionWorkflow obj's underlying member method code with example usage: obj.collect_data() without return types