code: def __init__(
      self,
      config,
      lookback=1,
      initial_capital=1e6,
      buy_cost_pct=1e-3,
      sell_cost_pct=1e-3,
      gamma=0.99,
  ):
      self.lookback = lookback
      self.initial_total_asset = initial_capital
      self.initial_cash = initial_capital
      self.buy_cost_pct = buy_cost_pct
      self.sell_cost_pct = sell_cost_pct
      self.max_stock = 1
      self.gamma = gamma
      self.price_array = config["price_array"]
      self.tech_array = config["tech_array"]
      self._generate_action_normalizer()
      self.crypto_num = self.price_array.shape[1]
      self.max_step = self.price_array.shape[0] - lookback - 1
  
      # reset
      self.time = lookback - 1
      self.cash = self.initial_cash
      self.current_price = self.price_array[self.time]
      self.current_tech = self.tech_array[self.time]
      self.stocks = np.zeros(self.crypto_num, dtype=np.float32)
  
      self.total_asset = (
          self.cash + (self.stocks * self.price_array[self.time]).sum()
      )
      self.episode_return = 0.0
      self.gamma_return = 0.0
  
      """env information"""
      self.env_name = "MulticryptoEnv"
      self.state_dim = (
          1
          + (self.price_array.shape[1] + self.tech_array.shape[1])
          * lookback
      )
      self.action_dim = self.price_array.shape[1]
      self.if_discrete = False
      self.target_return = 10
  
file_path: FinRL/finrl/meta/env_cryptocurrency_trading/env_multiple_crypto.py
imports: from __future__ import annotations
  import numpy
label_desc: Use image node_id 1 to create a new CryptoEnv object  with example: obj = CryptoEnv(config, lookback, initial_capital, buy_cost_pct, sell_cost_pct, gamma)