def tdx_import_data(connect, market, ktype, quotations, src_dir, dest_dir, progress=ProgressBar): """导入通达信指定盘后数据路径中的K线数据。注:只导入基础信息数据库中存在的股票。 :param connect : sqlit3链接 :param market : 'SH' | 'SZ' :param ktype : 'DAY' | '1MIN' | '5MIN' :param quotations: 'stock' | 'fund' | 'bond' :param src_dir : 盘后K线数据路径,如上证5分钟线:D:\\Tdx\\vipdoc\\sh\\fzline :param dest_dir : HDF5数据文件所在目录 :param progress : 进度显示函数 :return: 导入记录数 """ add_record_count = 0 market = market.upper() h5file = open_h5file(dest_dir, market, ktype) if ktype.upper() == "DAY": suffix = ".day" func_import_from_file = tdx_import_day_data_from_file elif ktype.upper() == "1MIN": suffix = ".lc1" func_import_from_file = tdx_import_min_data_from_file elif ktype.upper() == "5MIN": suffix = ".lc5" func_import_from_file = tdx_import_min_data_from_file marketid = get_marketid(connect, market) stktype_list = get_stktype_list(quotations) sql = "select stockid, marketid, code, valid, type from stock where marketid={} and type in {}".format(marketid, stktype_list) cur = connect.cursor() a = cur.execute(sql) a = a.fetchall() total = len(a) for i, stock in enumerate(a): if stock[3] == 0: if progress: progress(i, total) continue filename = src_dir + "\\" + market.lower() + stock[2]+ suffix this_count = func_import_from_file(connect, filename, h5file, market, stock) add_record_count += this_count if this_count > 0: if ktype == 'DAY': update_hdf5_extern_data(h5file, market.upper() + stock[2], 'DAY') elif ktype == '5MIN': update_hdf5_extern_data(h5file, market.upper() + stock[2], '5MIN') if progress: progress(i, total) connect.commit() h5file.close() return add_record_count
def import_data(connect, market, ktype, quotations, api, dest_dir, startDate=199012190000, progress=ProgressBar): """导入通达信指定盘后数据路径中的K线数据。注:只导入基础信息数据库中存在的股票。 :param connect : sqlit3链接 :param market : 'SH' | 'SZ' :param ktype : 'DAY' | '1MIN' | '5MIN' :param quotations: 'stock' | 'fund' | 'bond' :param src_dir : 盘后K线数据路径,如上证5分钟线:D:\\Tdx\\vipdoc\\sh\\fzline :param dest_dir : HDF5数据文件所在目录 :param progress : 进度显示函数 :return: 导入记录数 """ add_record_count = 0 market = market.upper() h5file = open_h5file(dest_dir, market, ktype) stock_list = get_stock_list(connect, market, quotations) total = len(stock_list) for i, stock in enumerate(stock_list): if stock[3] == 0: if progress: progress(i, total) continue this_count = import_one_stock_data(connect, api, h5file, market, ktype, stock, startDate) add_record_count += this_count if this_count > 0: if ktype == 'DAY': update_hdf5_extern_data(h5file, market.upper() + stock[2], 'DAY') elif ktype == '5MIN': update_hdf5_extern_data(h5file, market.upper() + stock[2], '5MIN') if progress: progress(i, total) connect.commit() h5file.close() return add_record_count