Пример #1
0
 def test__get_getNumpy(self):
     code = '000001'
     days = 365 * 1.2
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.get(code, start, end)
     self.assertIsInstance(df, pd.DataFrame, "应返回类型:pd.DataFrame,实际返回数据类型:{}".format(type(df)))
     arrary = qm.getNumpy(code, start, end)
     self.assertIsInstance(arrary, np.ndarray, "应返回类型:np.ndarray,实际返回数据类型:{}".format(type(arrary)))
     self.assertTrue(len(arrary) > days // 10, "返回数据数量应该大于0。")
Пример #2
0
 def test_get_noData(self):
     code = '600001'  # 不存在的股票代码
     days = 365 * 1.2
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.get(code, start, end)
     self.assertTrue(df is None, "{}已退市,2020年返回数据数量应该等于0,{}。".format(code, df))
Пример #3
0
 def test_getMin(self):
     code = '000001'
     days = 30 * 1.2
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.get(code, start, end, frequence='1min')
     self.assertTrue(len(df) > 0, "返回数据数量应该大于0。")
     self.assertTrue(len(df[df['close'] > 1000]) < days // 10, "大部分股票价格小于1000")
     print(df.tail(10))
Пример #4
0
 def test_get(self):
     code = '000001'
     days = 365 * 1.2
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.get(code, start, end)
     self.assertIsInstance(df, pd.DataFrame,"应返回类型:pd.DataFrame,实际返回数据类型:{}".format(type(df)))
     self.assertTrue(len(df) > days // 10, "返回数据数量应该大于0。")
     print(df.tail())
Пример #5
0
 def test_getAdv(self):
     code = '000001'
     days = 365 * 1.2
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.getAdv(code, start, end)
     self.assertIsInstance(df, QA_DataStruct_Stock_day,"应返回类型:QA_DataStruct_Stock_day,实际返回数据类型:{}".format(type(df)))
     self.assertTrue(len(df) > days // 10, "返回数据数量应该大于0。")
     print(df.data.tail())
Пример #6
0
 def test_getMin_datetimestr(self):
     code = '000001'
     days = 30 * 1.2
     start = str(datetime.datetime.now() - datetime.timedelta(days))[:10]
     end = str(datetime.datetime.now() - datetime.timedelta(0))[:10]
     df = qm.get(code, start, end, frequence='1min')
     self.assertTrue(len(df) > 0, "返回数据数量应该大于0。")
     print(df.tail(10))
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df2 = qm.get(code, start, end, frequence='1min')
     # str化后的时间为开盘时间,
     self.assertTrue(len(df) >= len(df2))
     data1, data2 = df, df2
     if len(data1) > len(data2):
         data1 = data1[-len(data2):]
         print("array1f的长度比array2长")
     elif len(data1) < len(data2):
         data2 = data2[-len(data1):]
         print("array2的长度比array1长")
     self.assertTrue(data1.equals(data2), "截取相同长度后的数据应该相同")
Пример #7
0
    def test_data_struct_min_stock(self):
        code = '000001'
        days = 10 * 1.2
        start = datetime.datetime.now() - datetime.timedelta(days)
        end = datetime.datetime.now() - datetime.timedelta(0)
        df = qm.get(code, start, end, frequence='1min')
        if df is not None and len(df.index.names) == 1:
            df = df.set_index(['date', 'code'], drop=True)
        ds = qd(frequence=8).dataStruct(df)
        ds2 = QA_DataStruct_Stock_min(df)

        self.assertIsInstance(ds, QA_DataStruct_Stock_min)
        self.assertIsInstance(ds2, QA_DataStruct_Stock_min)
Пример #8
0
    def test_data_struct_stock(self):
        code = '000001'
        days = 365 * 1.2
        start = datetime.datetime.now() - datetime.timedelta(days)
        end = datetime.datetime.now() - datetime.timedelta(0)
        df = qm.get(code, start, end)
        if df is not None:
            df = df.set_index(['date', 'code'], drop=True)
        ds = qd().dataStruct(df)
        ds2 = QA_DataStruct_Stock_day(df)

        self.assertIsInstance(ds, QA_DataStruct_Stock_day)
        self.assertIsInstance(ds2, QA_DataStruct_Stock_day)
Пример #9
0
 def test_getAdv_diffQA(self):
     """和QA返回的数据对比一致性
     """
     code = '000001'
     days = 365 * 1.2
     start = datetime.datetime.now() - datetime.timedelta(days)
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.getAdv(code, start, end)
     self.assertTrue(len(df) > 0, "返回数据数量应该大于0。")
     df2 = QA_fetch_stock_day_adv(code, start, end)
     self.assertTrue(len(df) == len(df2), "和QA返回的数据,长度不一致")
     # 两种方式检测numpy数据一致性
     obo = self.differOneByOne(df.data, df2.data)
     self.assertTrue(np.array_equal(df, df2), "和QA返回的数据不一致{}".format(obo))
Пример #10
0
 def _get_diffQA(self, code, days):
     start = (datetime.datetime.now() - datetime.timedelta(days)).date()
     end = datetime.datetime.now() - datetime.timedelta(0)
     df = qm.get(code, start, end)
     self.assertTrue(len(df) > 0, "返回数据数量应该大于0。")
     df2 = QA_fetch_stock_day(code, start, end, format='pd')
     # todo 全自动运行时会报错。单独测试不会报错??
     if len(df) !=len(df2):
         print("_get_diffQA : {} {} {} {}".format(start, end,df.head(), df2.head()))
         print('columns:\n {}\n{}'.format(df.columns, df2.columns))
         print(df.equals(df2))
     else:
         print('数据长度{}'.format(len(df)))
     self.assertTrue(len(df) == len(df2), "和QA返回的数据,长度不一致{}:{}".format(len(df), len(df2)))
     # 两种方式检测DataFrame数据一致性
     obo = self.differOneByOne(df2, df)
     self.assertTrue(df.equals(df2), "和QA返回的数据不一致{}".format(obo))
     return df
Пример #11
0
 def test_getMin_diffQA(self):
     code = '000001'
     days = 20 * 1.2
     start = str(datetime.datetime.now() - datetime.timedelta(days))
     end = str(datetime.datetime.now() - datetime.timedelta(0))
     df = qm.get(code, start, end, frequence='1min')
     df2 = QA_fetch_stock_min(code, start, end=end, format='pd', frequence='1min')
     # todo df的长度比df2长。未找出原因
     data1, data2 = df, df2
     self.assertTrue(len(data1) == len(data2), "和QA返回的分钟线数据长度不一致:{}:{}".format(len(data1), len(data2)))
     if len(data1) > len(data2):
         print("array1f的长度比array2长")
         data1 = data1[-len(data2):]
     elif len(data1) < len(data2):
         print("array2的长度比array1长")
         data2 = data2[-len(data1):]
     obo = self.differOneByOne(data1, data2)
     self.assertTrue(data1.equals(data2),
                     "和QA返回的分钟线数据不一致:{}".format(obo))