class_docstr: A trading environment made for use with Gym-compatible reinforcement
  learning algorithms.
  
  Parameters
  ----------
  action_scheme : `ActionScheme`
      A component for generating an action to perform at each step of the
      environment.
  reward_scheme : `RewardScheme`
      A component for computing reward after each step of the environment.
  observer : `Observer`
      A component for generating observations after each step of the
      environment.
  informer : `Informer`
      A component for providing information after each step of the
      environment.
  renderer : `Renderer`
      A component for rendering the environment.
  kwargs : keyword arguments
      Additional keyword arguments needed to create the environment.
class_docstr_tok: ["A","trading","environment","made","for","use","with","Gym-compatible","reinforcement","learning","algorithms",".","Parameters","--","--","--","--","--","action_scheme",":","`","ActionScheme","`","A","component","for","generating","an","action","to","perform","at","each","step","of","the","environment",".","reward_scheme",":","`","RewardScheme","`","A","component","for","computing","reward","after","each","step","of","the","environment",".","observer",":","`","Observer","`","A","component","for","generating","observations","after","each","step","of","the","environment",".","informer",":","`","Informer","`","A","component","for","providing","information","after","each","step","of","the","environment",".","renderer",":","`","Renderer","`","A","component","for","rendering","the","environment",".","kwargs",":","keyword","arguments","Additional","keyword","arguments","needed","to","create","the","environment","."]
code: def __init__(
      self,
      action_scheme: ActionScheme,
      reward_scheme: RewardScheme,
      observer: Observer,
      stopper: Stopper,
      informer: Informer,
      renderer: Renderer,
      min_periods: int = None,
      max_episode_steps: int = None,
      random_start_pct: float = 0.00,
      **kwargs,
  ) -> None:
      super().__init__()
      self.clock = Clock()
  
      self.action_scheme = action_scheme
      self.reward_scheme = reward_scheme
      self.observer = observer
      self.stopper = stopper
      self.informer = informer
      self.renderer = renderer
      self.min_periods = min_periods
      self.random_start_pct = random_start_pct
  
      # Register the environment in Gym and fetch spec
      gym.envs.register(
          id="TensorTrade-v0",
          max_episode_steps=max_episode_steps,
      )
      self.spec = gym.spec(env_id="TensorTrade-v0")
  
      for c in self.components.values():
          c.clock = self.clock
  
      self.action_space = action_scheme.action_space
      self.observation_space = observer.observation_space
  
      self._enable_logger = kwargs.get("enable_logger", False)
      if self._enable_logger:
          self.logger = logging.getLogger(
              kwargs.get("logger_name", __name__)
          )
          self.logger.setLevel(kwargs.get("log_level", logging.DEBUG))
  
file_path: tensortrade/tensortrade/env/generic/environment.py
imports: import uuid
  import logging
  from typing import Dict, Any, Tuple
  from random import randint
  import gym
  import numpy
  from tensortrade.core import TimeIndexed, Clock, Component
  from tensortrade.env.generic import ActionScheme, RewardScheme, Observer, Stopper, Informer, Renderer
label_desc: Use image node_id 1 to create a new TradingEnv object from inherited base classes: gym, TimeIndexed with example: obj = TradingEnv(action_scheme, reward_scheme, observer, stopper, informer, renderer, min_periods, max_episode_steps, random_start_pct)