class_docstr: Executor that simulate the true market
docstr: Parameters
  ----------
  trade_decision : BaseTradeDecision
      the trade decision given by the strategy
  
  Returns
  -------
  List[Order]:
      get a list orders according to `self.trade_type`
docstr_tok: ["Parameters","--","--","--","--","--","trade_decision",":","BaseTradeDecision","the","trade","decision","given","by","the","strategy","Returns","--","--","--","-","List","[","Order","]",":","get","a","list","orders","according","to","`","self.trade_type","`"]
code: def _get_order_iterator(
      self, trade_decision: BaseTradeDecision
  ) -> List[Order]:
      """
  
      Parameters
      ----------
      trade_decision : BaseTradeDecision
          the trade decision given by the strategy
  
      Returns
      -------
      List[Order]:
          get a list orders according to `self.trade_type`
      """
      orders = _retrieve_orders_from_decision(trade_decision)
  
      if self.trade_type == self.TT_SERIAL:
          # Orders will be traded in a parallel way
          order_it = orders
      elif self.trade_type == self.TT_PARAL:
          # NOTE: !!!!!!!
          # Assumption: there will not be orders in different trading direction in a single step of a strategy !!!!
          # The parallel trading failure will be caused only by the conflicts of money
          # Therefore, make the buying go first will make sure the conflicts happen.
          # It equals to parallel trading after sorting the order by direction
          order_it = sorted(orders, key=lambda order: -order.direction)
      else:
          raise NotImplementedError(
              f"This type of input is not supported"
          )
      return order_it
  
imports: from __future__ import annotations
  import copy
  from abc import abstractmethod
  from collections import defaultdict
  from types import GeneratorType
  from typing import Any, Dict, Generator, List, Tuple, Union, cast
  import pandas
  from qlib.backtest.account import Account
  from qlib.backtest.position import BasePosition
  from qlib.log import get_module_logger
  from ..strategy.base import BaseStrategy
  from ..utils import init_instance_by_config
  from .decision import BaseTradeDecision, Order
  from .exchange import Exchange
  from .utils import CommonInfrastructure, LevelInfrastructure, TradeCalendarManager, get_start_end_idx
label_desc: Use image node_id 2 for calling the SimulatorExecutor obj's underlying member method code with example usage: obj._get_order_iterator(trade_decision) and returns: order_it