Пример #1
0
class ExtQuotes(object):
    """扩展市场实时行情"""
    def __init__(self, **kwargs):
        self.client = TdxExHq_API(**kwargs)
        # self.bestip = os.environ.setdefault("MOOTDX_SERVER", '61.152.107.141:7727')
        # self.bestip = kwargs.get("bestip", '202.108.253.131:7709')
        # self.bestip = self.bestip.split(':')
        self.bestip = ('202.108.253.131', 7709)
        # self.bestip[1] = int(self.bestip[1])

    def markets(self):
        '''
        获取实时市场列表

        :return: pd.dataFrame or None
        '''
        with self.client.connect(*self.bestip):
            data = self.client.get_markets()
            return self.client.to_df(data)

        return None

    def quote5(self, market=47, symbol="IF1709"):
        '''
        查询五档行情

        :return: pd.dataFrame or None
        '''
        with self.client.connect(*self.bestip):
            data = self.client.get_instrument_quote(market, symbol)
            return self.client.to_df(data)

    def minute(self, market=47, symbol="IF1709"):
        '''
        查询五档行情

        :return: pd.dataFrame or None
        '''
        with self.client.connect(*self.bestip):
            data = self.client.get_minute_time_data(market, symbol)
            return self.client.to_df(data)

    def instrument(self, start=0, offset=100):
        '''
        查询代码列表
        :param start:
        :param offset:
        :return: pd.dataFrame or None
        '''
        with self.client.connect(*self.bestip):
            # nums = self.client.get_instrument_count()
            data = self.client.get_instrument_info(int(start), int(offset))
            return self.client.to_df(data)
Пример #2
0
def test_all_functions():

    symbol_params = [[47, "IF1709"], [8, "10000889"], [31, "00020"],
                     [47, "IFL0"], [31, "00700"]]

    api = TdxExHq_API(auto_retry=True)
    try:
        with api.connect('121.14.110.210', 7727, time_out=30):
            log.info("获取市场代码")
            data = api.get_markets()
            assert data is not None
            assert type(data) is list
            assert len(data) > 0

            log.info("查询市场中商品数量")
            data = api.get_instrument_count()
            assert data is not None
            assert data > 0

            log.info("查询五档行情")
            for params in symbol_params:
                data = api.get_instrument_quote(*params)
                print(data)
                assert data is not None
                assert type(data) is list
                assert len(data) > 0

            # log.info("查询分时行情")
            for params in symbol_params:
                data = api.get_minute_time_data(*params)
                assert data is not None
                assert type(data) is list
                assert len(data) >= 0

            log.info("查询历史分时行情")
            for params in symbol_params:
                data = api.get_history_minute_time_data(
                    params[0], params[1], 20170811)
                assert data is not None
                assert type(data) is list
                assert len(data) >= 0

            log.info("查询分时成交")
            for params in symbol_params:
                data = api.get_transaction_data(*params)
                assert data is not None
                assert type(data) is list
                assert len(data) >= 0

            log.info("查询历史分时成交")
            for params in symbol_params:
                data = api.get_history_transaction_data(
                    params[0], params[1], 20170811)
                assert data is not None
                assert type(data) is list
                assert len(data) >= 0

            log.info("查询k线")
            for params in symbol_params:
                data = api.get_instrument_bars(TDXParams.KLINE_TYPE_DAILY,
                                               params[0], params[1])
                assert data is not None
                assert type(data) is list
                assert len(data) >= 0

            log.info("查询代码列表")
            data = api.get_instrument_info(10000, 98)
            assert data is not None
            assert type(data) is list
            assert len(data) > 0
    except socket.timeout as e:
        pass
Пример #3
0
class ExtQuotes(object):
    """扩展市场实时行情"""

    config = None
    client = None
    bestip = ('112.74.214.43', 7727)

    def __init__(self, **kwargs):
        try:
            default = settings.get('SERVER').get('EX')[0]
            self.bestip = config.get('BESTIP').get('EX', default)
        except ValueError:
            self.bestip = ('112.74.214.43', 7727)

        self.client = TdxExHq_API(**kwargs)

    def validate(self, market, symbol):
        if not market:
            if len(symbol.split('#')) > 1:
                market = symbol.split('#')[0]
                symbol = symbol.split('#')[1]

        if not market:
            raise ValueError('市场参数错误, 市场参数不能为空.')

        return int(market), symbol

    def markets(self):
        '''
        获取实时市场列表

        :return: pd.dataFrame or None
        '''
        with self.client.connect(*self.bestip) as client:
            result = client.get_markets()
            return to_data(result)

    def instrument(self, start=0, offset=100):
        '''
        查询代码列表

        :param offset:
        :param start:
        :return:
        '''

        with self.client.connect(*self.bestip):
            result = self.client.get_instrument_info(start=start, count=offset)
            return to_data(result)

    def instrument_count(self):
        '''
        市场商品数量

        :return:
        '''
        with self.client.connect(*self.bestip):
            result = self.client.get_instrument_count()

            return result

    def instruments(self):
        '''
        查询所有代码列表

        :return:
        '''
        with self.client.connect(*self.bestip):
            count = self.client.get_instrument_count()
            pages = math.ceil(count / 100)
            result = []

            for page in tqdm(range(0, pages)):
                result += self.client.get_instrument_info(
                    page * 100, (page + 1) * 100)

            return to_data(result)

    def quote(self, market='', symbol=''):
        '''
        查询五档行情

        :param market:
        :param symbol:
        :return:
        '''
        market, symbol = self.validate(market, symbol)
        with self.client.connect(*self.bestip):
            result = self.client.get_instrument_quote(market, symbol)
            return to_data(result)

    def minute(self, market='', symbol=''):
        '''
        查询分时行情

        :param market:
        :param symbol:
        :return:
        '''
        market, symbol = self.validate(market, symbol)
        with self.client.connect(*self.bestip):
            result = self.client.get_minute_time_data(market, symbol)
            return to_data(result)

    def minutes(self, market=None, symbol='', date=''):
        '''
        查询历史分时行情

        :param market:
        :param symbol:
        :param date:
        :return:
        '''
        market, symbol = self.validate(market, symbol)
        with self.client.connect(*self.bestip):
            result = self.client.get_history_minute_time_data(
                market, symbol, date)
            return to_data(result)

    def bars(self, frequency='', market='', symbol='', start='', offset=0):
        '''
        查询k线数据
        参数: K线周期, 市场ID, 证券代码,起始位置, 数量

        :param frequency: K线周期
        :param market: 市场ID
        :param symbol: 证券代码
        :param start: 起始位置
        :param offset: 数量
        :return:
        '''
        market, symbol = self.validate(market, symbol)
        with self.client.connect(*self.bestip):
            result = self.client.get_instrument_bars(frequency=frequency,
                                                     market=market,
                                                     code=symbol,
                                                     start=start,
                                                     count=offset)
            return to_data(result)

    def transaction(self, market=None, symbol='', start=0, offset=1800):
        '''
        查询分笔成交

        :param market:
        :param symbol:
        :param start:
        :param offset:
        :return:
        '''
        market, symbol = self.validate(market, symbol)
        with self.client.connect(*self.bestip):
            result = self.client.get_transaction_data(market=market,
                                                      code=symbol,
                                                      start=start,
                                                      count=offset)
            return to_data(result)

    def transactions(self,
                     market=None,
                     symbol='',
                     date='',
                     start=0,
                     offset=1800):
        '''
        查询历史分笔成交

        :param market:
        :param symbol:
        :param date:
        :param start:
        :param offset:
        :return:
        '''
        market, symbol = self.validate(market, symbol)
        with self.client.connect(*self.bestip):
            result = self.client.get_history_transaction_data(market=market,
                                                              code=symbol,
                                                              date=date,
                                                              start=start,
                                                              count=offset)
            return to_data(result)
Пример #4
0
# -*- coding: utf-8 -*-

from pytdx.exhq import TdxExHq_API
import ta
api = TdxExHq_API()
with api.connect('124.74.236.94', 7721):
    #查询市场中商品数量
    marketsID = api.to_df(api.get_markets())
    #查询五档行情
    quote =api.to_df(api.get_instrument_quote(47, "IFL8"))
    #查询分时行情
    markets_fenshi = api.to_df(api.get_minute_time_data(47, "IFL8"))
    #查询历史分时行情
    historydata = api.to_df(api.get_history_minute_time_data(47, "IFL8", 20170811))
    #查询k线数据
    kdata = api.to_df(api.get_instrument_bars(0, 47, "IFL8", 0, 700))
    #查询当前分笔成交
    fenbi = api.to_df(api.get_transaction_data(47, "IFL8"))
    
    #查询历史分笔成交
    fenbi_history = api.to_df(api.get_history_transaction_data(47, "IFL8", 20191204, start=1800))
    #查询当天分笔成交
    fenbi_chenjiao = api.to_df(api.get_history_transaction_data(47, "IFL8", 20191204,))
    
    
    
    print (marketsID)
    
    print (quote)
    print (kdata)
    df = kdata
Пример #5
0
from pytdx.exhq import TdxExHq_API
api = TdxExHq_API()
with api.connect('101.227.77.254', 7727):
    api.get_markets()
    api.get_minute_time_data(47, "IF1709")

import tushare as ts