code: def df_to_ary(
      self,
      df,
      pair_list,
      tech_indicator_list=[
          "macd",
          "boll_ub",
          "boll_lb",
          "rsi_30",
          "dx_30",
          "close_30_sma",
          "close_60_sma",
      ],
  ):
      df = df.dropna()
      date_ary = df.index.values
      price_array = df[
          pd.MultiIndex.from_product([pair_list, ["close"]])
      ].values
      tech_array = df[
          pd.MultiIndex.from_product([pair_list, tech_indicator_list])
      ].values
      return price_array, tech_array, date_ary
  
file_path: FinRL/finrl/meta/data_processors/processor_ccxt.py
imports: from __future__ import annotations
  import calendar
  from datetime import datetime
  import ccxt
  import numpy
  import pandas
  from stockstats import StockDataFrame
label_desc: Use image node_id 4 for calling the CCXTEngineer obj's underlying member method code with example usage: obj.df_to_ary(df, pair_list, tech_indicator_list) and returns: price_array,  tech_array,  date_ary