def get_today_all(output='pd'): """today all Returns: [type] -- [description] """ data = [] today = str(datetime.date.today()) codes = QA_fetch_get_stock_list('stock').code.tolist() bestip = select_best_ip()['stock'] for code in codes: try: l = QA_fetch_get_stock_day(code, today, today, '00', ip=bestip) except: bestip = select_best_ip()['stock'] l = QA_fetch_get_stock_day(code, today, today, '00', ip=bestip) if l is not None: data.append(l) res = pd.concat(data) if output in ['pd']: return res elif output in ['QAD']: return QA_DataStruct_Stock_day( res.set_index(['date', 'code'], drop=False))
def get_today_all(output='pd'): """today all Returns: [type] -- [description] """ data = [] today = str(datetime.date.today()) codes = QA_fetch_get_stock_list('stock').code.tolist() bestip = select_best_ip()['stock'] for code in codes: try: l = QA_fetch_get_stock_day( code, today, today, '00', ip=bestip) except: bestip = select_best_ip()['stock'] l = QA_fetch_get_stock_day( code, today, today, '00', ip=bestip) if l is not None: data.append(l) res = pd.concat(data) if output in ['pd']: return res elif output in ['QAD']: return QA_DataStruct_Stock_day(res.set_index(['date', 'code'], drop=False))
def test_cache(self): # 测试内存缓存变量 from QUANTAXIS.QAUtil.QASetting import DATABASE, stock_ip_list, \ future_ip_list best_ip = select_best_ip() stockips = QATdx.get_ip_list_by_multi_process_ping(stock_ip_list, _type='stock') stockip = QATdx.get_ip_list_by_ping(stock_ip_list, _type='stock') self.assertTrue(stockip == stockips[0], '没有使用缓存: {} {}'.format(stockip, stockips[0])) futurips = QATdx.get_ip_list_by_multi_process_ping(future_ip_list, _type='future') futurip = QATdx.get_ip_list_by_ping(future_ip_list, _type='future') self.assertTrue(futurip == futurips[0], '没有使用缓存: {} {}'.format(futurip, futurips[0])) stockips = QATdx.get_ip_list_by_multi_process_ping(stock_ip_list, _type='stock') futurips = QATdx.get_ip_list_by_multi_process_ping(future_ip_list, _type='future') stockips = QATdx.get_ip_list_by_multi_process_ping(stock_ip_list, _type='stock') futurips = QATdx.get_ip_list_by_multi_process_ping(future_ip_list, _type='future')
def test_select_best_ip(self): best_ip = select_best_ip() ip = best_ip['stock']['ip'] port = best_ip['stock']['port'] self.assertTrue(isinstance(ip, str), '未获取到ip') self.assertTrue(isinstance(port, int), '未获取到端口号') self.assertTrue(ping(ip, port, 'stock') < datetime.timedelta(0, 1, 0), '地址ping不通: {} {} {}'.format(ip, port, ping(ip, port, 'stock'))) # ip = best_ip['future']['ip'] # port = best_ip['future']['port'] # self.assertTrue(ping(ip, port, 'stock') < datetime.timedelta(0, 1, 0), '地址ping不通: {} {} {}'.format(ip, port, ping(ip, port, 'stock'))) code = '000001' days = 300 start = datetime.datetime.now().date() - datetime.timedelta(days) end = datetime.datetime.now().date() - datetime.timedelta(10) data = QA_fetch_get_stock_day(code, start_date=start, end_date=end) print(data) self.assertTrue(len(data) > (end - start).days / 2, '返回数据个数不匹配,数据长度:{},天数(包含节假日):{}'.format(len(data), (end - start).days / 2)) default_ip = {'stock': {'ip': None, 'port': None}, 'future': {'ip': None, 'port': None}} qasetting = QA_Setting() qasetting.set_config( section='IPLIST', option='default', default_value=default_ip) best_ip = select_best_ip() ip = best_ip['stock']['ip'] port = best_ip['stock']['port'] self.assertTrue(isinstance(ip, str) or ip is None, '未获取到ip') self.assertTrue(isinstance(port, int) or port is None, '未获取到端口号') ip = best_ip['future']['ip'] port = best_ip['future']['port'] self.assertTrue(isinstance(ip, str) or ip is None, '未获取到ip') self.assertTrue(isinstance(port, int) or port is None, '未获取到端口号') data = QA_fetch_get_stock_day(code, start, end) self.assertTrue(len(data) > (end - start).days / 2, '返回数据个数不匹配,数据长度:{},天数(包含节假日):{}'.format(len(data), (end - start).days / 2))
def test_select_best_ip(self): best_ip = select_best_ip() ip = best_ip['stock']['ip'] port = best_ip['stock']['port'] self.assertTrue(isinstance(ip, str), '未获取到ip') self.assertTrue(isinstance(port, int), '未获取到端口号') self.assertTrue( ping(ip, port, 'stock') < datetime.timedelta(0, 1, 0), '地址ping不通: {} {} {}'.format(ip, port, ping(ip, port, 'stock'))) type = 'future' ip = best_ip[type]['ip'] port = best_ip[type]['port'] self.assertTrue( ping(ip, port, type) < datetime.timedelta(0, 1, 0), '地址ping不通: {} {} {}'.format(ip, port, ping(ip, port, 'stock'))) code = '000001' days = 300 start = datetime.datetime.now().date() - datetime.timedelta(days) end = datetime.datetime.now().date() - datetime.timedelta(10) data = QA_fetch_get_stock_day(code, start_date=start, end_date=end) # print(data) self.assertTrue( len(data) > (end - start).days / 2, '返回数据个数不匹配,数据长度:{},天数(包含节假日):{}'.format(len(data), (end - start).days / 2)) # 恢复初始化ip,重新测试ip default_ip = { 'stock': { 'ip': None, 'port': None }, 'future': { 'ip': None, 'port': None } } qasetting = QA_Setting() qasetting.set_config(section='IPLIST', option='default', default_value=default_ip) filenames = ['stock_ip_list', 'stock_ip_list_MP'] for filename in filenames: # 删除保存ip的pickle文件 filename = '{}{}{}.pickle'.format( qasetting.get_config(section='LOG', option='path', default_value=""), os.sep, filename) if os.path.isfile(filename): os.remove(filename) best_ip = select_best_ip() ip = best_ip['stock']['ip'] port = best_ip['stock']['port'] self.assertTrue(isinstance(ip, str), '未获取到ip') self.assertTrue(isinstance(port, int), '未获取到端口号') ip = best_ip['future']['ip'] port = best_ip['future']['port'] self.assertTrue(isinstance(ip, str), '未获取到ip') self.assertTrue(isinstance(port, int), '未获取到端口号') data = QA_fetch_get_stock_day(code, start, end) self.assertTrue( len(data) > (end - start).days / 2, '返回数据个数不匹配,数据长度:{},天数(包含节假日):{}'.format(len(data), (end - start).days / 2))