class_docstr: Reward proposed by paper "An End-to-End Optimal Trade Execution Framework based on Proximal Policy Optimization".
  
  Parameters
  ----------
  max_step
      Maximum number of steps.
  start_time_index
      First time index that allowed to trade.
  end_time_index
      Last time index that allowed to trade.
code: def __init__(
      self,
      max_step: int,
      start_time_index: int = 0,
      end_time_index: int = 239,
  ) -> None:
      self.max_step = max_step
      self.start_time_index = start_time_index
      self.end_time_index = end_time_index
  
file_path: qlib/qlib/rl/order_execution/reward.py
imports: from __future__ import annotations
  from typing import cast
  import numpy
  from qlib.backtest.decision import OrderDir
  from qlib.rl.order_execution.state import SAOEMetrics, SAOEState
  from qlib.rl.reward import Reward
label_desc: Use image node_id 1 to create a new PPOReward object from inherited base classes: Reward with example: obj = PPOReward(max_step, start_time_index, end_time_index)