def test_QA_SU_save_stock_day_lastdate(self): # 交易时间QA.QAFetch.QATdx.QA_fetch_get_stock_day返回的数据会实时更新 codelist = QA.QA_fetch_stock_list_adv().code.tolist() days = 300 start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() if QA_util_if_tradetime(end): end2 = end - datetime.timedelta(1) else: end2 = end codeListCount = 200 a = time.time() ps = Parallelism(cpu_count()) data1 = QA.QAFetch.QATdx.QA_fetch_get_stock_day( codelist[0], start, end) data2 = QA.QAFetch.QATdx.QA_fetch_get_stock_day( codelist[0], start, end2) # 交易时间段 self.assertTrue( len(data1) == len(data2), '数据长度:{} {} 日期: {} {}'.format(len(data1), len(data2), end, end2)) print('数据长度:{} {} 日期: {} {}'.format(len(data1), len(data2), end, end2)) print('当前数据: {} {}'.format(data1.close[-1], data2.close[-1])) # 设定在交易时间内 end = datetime.datetime(end.year, end.month, end.day, 10, 0) end2 = end while not QA_util_if_tradetime(end): end = end - datetime.timedelta(1) end = end - datetime.timedelta(7) codeListCount = 200 a = time.time() ps = Parallelism(cpu_count()) data1 = QA.QAFetch.QATdx.QA_fetch_get_stock_day( codelist[0], start, end) data2 = QA.QAFetch.QATdx.QA_fetch_get_stock_day( codelist[0], start, end2) # 交易时间段 self.assertFalse( len(data1) == len(data2), '数据长度应不等:{} {} 日期: {} {}'.format(len(data1), len(data2), end, end2)) print('数据长度:{} {} 日期: {} {}'.format(len(data1), len(data2), end, end2)) print('当前数据: {} {}'.format(data1.close[-1], data2.close[-1]))
def test_gen_param(self): codelist = QA.QA_fetch_stock_list_adv().code.tolist() days = 300 start = datetime.datetime.now().date() - datetime.timedelta(days) end = datetime.datetime.now().date() - datetime.timedelta(10) codeListCount = 200 ips = get_ip_list_by_multi_process_ping(QA.QAUtil.stock_ip_list, _type='stock') param = gen_param(codelist[:codeListCount], start, end, IPList=ips[:cpu_count()]) a = time.time() ps = Parallelism(cpu_count()) ps.run(QA.QAFetch.QATdx.QA_fetch_get_stock_day, param) data = ps.get_results() b = time.time() t1 = b - a data = list(data) print('返回数据{}条,用时:{}秒'.format(len(data), t1)) # print(data) # print([x.code.unique() for x in data]) self.assertTrue( len(data) == codeListCount, '返回结果和输入参数个数不匹配: {} {}'.format(len(data), codeListCount)) i, j = 0, 0 for x in data: try: # print(x) i += 1 self.assertTrue((x is None) or (len(x) > 0), '返回数据太少:{}'.format(len(x))) if not ((x is None) or (len(x) > 0)): print('data is None') if i % 10 == 0: print(x) except Exception as e: j += 1 print(i, j)