code: def QA_fetch_get_security_bars(code, _type, lens, ip=None, port=None):
      
      ip, port = get_mainmarket_ip(ip, port)
      api = TdxHq_API()
      with api.connect(ip, port):
          data = pd.concat([api.to_df(api.get_security_bars(_select_type(_type), _select_market_code(
              code), code, (i - 1) * 800, 800)) for i in range(1, int(lens / 800) + 2)], axis=0)
          data = data \
              .drop(['year', 'month', 'day', 'hour', 'minute'], axis=1, inplace=False) \
              .assign(datetime=pd.to_datetime(data['datetime']),
                      date=data['datetime'].apply(lambda x: str(x)[0:10]),
                      date_stamp=data['datetime'].apply(
                          lambda x: QA_util_date_stamp(x)),
                      time_stamp=data['datetime'].apply(
                          lambda x: QA_util_time_stamp(x)),
                      type=_type, code=str(code)) \
              .set_index('datetime', drop=False, inplace=False).tail(lens)
          if data is not None:
              return data
          else:
              return None
docs: 按bar长度推算数据
  
      Arguments:
          code {[type]} -- [description]
          _type {[type]} -- [description]
          lens {[type]} -- [description]
  
      Keyword Arguments:
          ip {[type]} -- [description] (default: {best_ip})
          port {[type]} -- [description] (default: {7709})
  
      Returns:
          [type] -- [description]