def get_multiple_history_kline(self,
                                   codelist,
                                   start=None,
                                   end=None,
                                   ktype=KLType.K_DAY,
                                   autype=AuType.QFQ):
        """
        获取多只股票的本地历史k线数据

        :param codelist: 股票代码列表，list或str。例如：['HK.00700', 'HK.00001']，'HK.00700,HK.00001'
        :param start: 起始时间，例如'2017-06-20'
        :param end: 结束时间, 例如'2017-07-20'，start与end组合关系参见 get_history_kline_
        :param ktype: k线类型，参见KLType
        :param autype: 复权类型，参见AuType
        :return: 成功时返回(RET_OK, [data])，data是DataFrame数据, 数据列格式如下

            =================   ===========   ==============================================================================
            参数                  类型                        说明
            =================   ===========   ==============================================================================
            code                str            股票代码
            time_key            str            k线时间
            open                float          开盘价
            close               float          收盘价
            high                float          最高价
            low                 float          最低价
            pe_ratio            float          市盈率（该字段为比例字段，默认不展示%）
            turnover_rate       float          换手率
            volume              int            成交量
            turnover            float          成交额
            change_rate         float          涨跌幅
            last_close          float          昨收价
            =================   ===========   ==============================================================================

            失败时返回(RET_ERROR, data)，其中data是错误描述字符串

        """
        if is_str(codelist):
            codelist = codelist.split(',')
        elif isinstance(codelist, list):
            pass
        else:
            return RET_ERROR, "code list must be like ['HK.00001', 'HK.00700'] or 'HK.00001,HK.00700'"
        result = []
        for code in codelist:
            ret, data = self.get_history_kline(code, start, end, ktype, autype)
            if ret != RET_OK:
                return RET_ERROR, 'get history kline error: {}, {},{},{},{}'.format(data, code, start, end, ktype)
            result.append(data)
        return 0, result