Exemple #1
0
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))
Exemple #2
0
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))
Exemple #3
0
    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')
Exemple #4
0
    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))
Exemple #5
0
    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))