class_docstr: Trade Decision (W)ith (O)rder.
  Besides, the time_range is also included.
class_docstr_tok: ["Trade","Decision","(","W",")","ith","(","O",")","rder",".","Besides",",","the","time_range","is","also","included","."]
code: def __init__(
      self,
      order_list: List[Order],
      strategy: BaseStrategy,
      trade_range: Union[Tuple[int, int], TradeRange, None] = None,
  ) -> None:
      super().__init__(strategy, trade_range=trade_range)
      self.order_list = cast(List[Order], order_list)
      start, end = strategy.trade_calendar.get_step_time()
      for o in order_list:
          assert isinstance(o, Order)
          if o.start_time is None:
              o.start_time = start
          if o.end_time is None:
              o.end_time = end
  
imports: from __future__ import annotations
  from abc import abstractmethod
  from datetime import time
  from enum import IntEnum
  from typing import TYPE_CHECKING, Any, ClassVar, Generic, List, Optional, Tuple, TypeVar, Union, cast
  from qlib.backtest.utils import TradeCalendarManager
  from qlib.data.data import Cal
  from qlib.log import get_module_logger
  from qlib.utils.time import concat_date_time, epsilon_change
  from dataclasses import dataclass
  import numpy
  import pandas
label_desc: Use image node_id 1 to create a new TradeDecisionWO object from inherited base classes: BaseTradeDecision with example: obj = TradeDecisionWO(order_list, strategy, trade_range)