code: def __init__(
      self,
      data_cwd=None,
      price_ary=None,
      tech_ary=None,
      time_frequency=15,
      start=None,
      mid1=172197,
      mid2=216837,
      end=None,
      initial_account=1e6,
      max_stock=1e2,
      transaction_fee_percent=1e-3,
      mode="train",
      gamma=0.99,
  ):
      self.stock_dim = 1
      self.initial_account = initial_account
      self.transaction_fee_percent = transaction_fee_percent
      self.max_stock = 1
      self.gamma = gamma
      self.mode = mode
      self.load_data(
          data_cwd,
          price_ary,
          tech_ary,
          time_frequency,
          start,
          mid1,
          mid2,
          end,
      )
  
      # reset
      self.day = 0
      self.initial_account__reset = self.initial_account
      self.account = self.initial_account__reset
      self.day_price = self.price_ary[self.day]
      self.day_tech = self.tech_ary[self.day]
      self.stocks = 0.0  # multi-stack
  
      self.total_asset = self.account + self.day_price[0] * self.stocks
      self.episode_return = 0.0
      self.gamma_return = 0.0
  
      """env information"""
      self.env_name = "BitcoinEnv4"
      self.state_dim = (
          1 + 1 + self.price_ary.shape[1] + self.tech_ary.shape[1]
      )
      self.action_dim = 1
      self.if_discrete = False
      self.target_return = 10
      self.max_step = self.price_ary.shape[0]
  
file_path: FinRL/finrl/meta/env_cryptocurrency_trading/env_btc_ccxt.py
imports: from __future__ import annotations
  import numpy
label_desc: Use image node_id 1 to create a new BitcoinEnv object  with example: obj = BitcoinEnv(data_cwd, price_ary, tech_ary, time_frequency, start, mid1, mid2, end, initial_account, max_stock, transaction_fee_percent, mode, gamma)