def getCode(fileName=None, excludeFileName='zxgExclude.txt'): """返回代码 及代码对应的数据 Args: fileName: excludeFileName: Returns: """ if fileName is None: fileName = '/tmp/code.pickle' try: code = decompress_pickle(fileName) except Exception as e: code = list(qa.QA_fetch_index_list_adv()['code'][:]) codeexclude = read_zxg(excludeFileName) # 排除某些股票 code = setdiff_sorted(code, codeexclude) compressed_pickle(fileName, code) days = 365 * 1.2 # days = 365 * 10 start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() - datetime.timedelta(0) fileName = '/tmp/data{}.pickle'.format(days) data2 = getIndexCalret(fileName, code, start, end) return code, data2
def getIndexCalret(self, readFromfile, code, startDate, endDate): try: # 获取指数数据 dataCalret = decompress_pickle(readFromfile) except Exception as e: data = qa.QA_fetch_index_day_adv(code, startDate, endDate) df = data.add_func(cal_ret) compressed_pickle(readFromfile, data.data) dataCalret = decompress_pickle(readFromfile) data2 = dataCalret return dataCalret
def setUp(self) -> None: fileName = '/tmp/code.pickle' try: self.code = decompress_pickle(fileName) except Exception as e: self.code = list(qa.QA_fetch_index_list_adv()['code'][:]) compressed_pickle(fileName, self.code) days = 365 * 1.2 # days = 365 * 10 self.start = datetime.datetime.now() - datetime.timedelta(days) self.end = datetime.datetime.now() - datetime.timedelta(0) fileName = '/tmp/data{}.pickle'.format(days) self.data2 = self.getIndexCalret(fileName, self.code, self.start, self.end)
def test_cal_ret(self): # code = '000300' fileName = '/tmp/code.pickle' try: code = decompress_pickle(fileName) except Exception as e: code = list( qa.QAFetch.QATdx.QA_fetch_get_stock_list('index')['code'][:]) compressed_pickle(fileName, code) days = 600 rpsday = [20, 50] start = datetime.datetime.now() - datetime.timedelta(days) end = datetime.datetime.now() - datetime.timedelta(10) # 获取指数数据 data = qa.QA_fetch_index_day_adv(code, start, end) fileName = '/tmp/data.pickle' full_pickle(fileName, data.data) data2 = loosen_pickle(fileName) self.assertTrue(data.data.equals(data2)) qadata = qa.QAData(data2)
def getIndexCalret(fileName, code, startDate, endDate): """从本地缓存获取指数。若本地没有,则从数据库读取,并且在本地保存一份 Args: fileName:文件名 code:代码 startDate:起始日期 endDate:截止日期 Returns: """ try: # 获取指数数据 dataCalret = decompress_pickle(fileName) except Exception as e: data = qa.QA_fetch_index_day_adv(code, startDate, endDate) df = data.add_func(cal_ret) compressed_pickle(fileName, data.data) dataCalret = decompress_pickle(fileName) data2 = dataCalret return dataCalret