docstr: add the new user {user_id} into user data
  will create a new folder named "{user_id}" in user data path
      Parameter
          user_id : string
          init_cash : int
          config_file : str/pathlib.Path()
             path of config file
docstr_tok: ["add","the","new","user","{","user_id","}","into","user","data","will","create","a","new","folder","named","``","{","user_id","}","''","in","user","data","path","Parameter","user_id",":","string","init_cash",":","int","config_file",":","str\/pathlib.Path","(",")","path","of","config","file"]
code: def add_user(self, user_id, config_file, add_date):
      """
      add the new user {user_id} into user data
      will create a new folder named "{user_id}" in user data path
          Parameter
              user_id : string
              init_cash : int
              config_file : str/pathlib.Path()
                 path of config file
      """
      config_file = pathlib.Path(config_file)
      if not config_file.exists():
          raise ValueError(
              "Cannot find config file {}".format(config_file)
          )
      user_path = self.data_path / user_id
      if user_path.exists():
          raise ValueError(
              "User data for {} already exists".format(user_id)
          )
  
      with config_file.open("r") as fp:
          config = yaml.safe_load(fp)
      # load model
      model = init_instance_by_config(config["model"])
  
      # load strategy
      strategy = init_instance_by_config(config["strategy"])
      init_args = strategy.get_init_args_from_model(model, add_date)
      strategy.init(**init_args)
  
      # init Account
      trade_account = Account(init_cash=config["init_cash"])
  
      # save user
      user_path.mkdir()
      save_instance(
          model,
          self.data_path / user_id / "model_{}.pickle".format(user_id),
      )
      save_instance(
          strategy,
          self.data_path
          / user_id
          / "strategy_{}.pickle".format(user_id),
      )
      trade_account.save_account(self.data_path / user_id)
      user_record = pd.read_csv(self.users_file, index_col=0)
      user_record.loc[user_id] = [add_date]
      user_record.to_csv(self.users_file)
  
file_path: qlib/qlib/contrib/online/manager.py
imports: import yaml
  import pathlib
  import pandas
  import shutil
  from ...backtest.account import Account
  from .user import User
  from .utils import load_instance, save_instance
  from ...utils import init_instance_by_config
label_desc: Use image node_id 5 for calling the UserManager obj's underlying member method code with example usage: obj.add_user(user_id, config_file, add_date) without return types