qesdk数据接口

简介

​ 为了方便使用quantease宽易数据行情,适合无法安装docker的用户使用,我们开发了qesdk数据接口,可以通过python的pip简单安装,可以通过该接口访问基本行情数据和策略超市的部分数据。

安装及升级

可以通过pip安装:

pip install qesdk

已经安装的可以通过如下命令升级

pip install -U qesdk

使用行情接口

用户认证

使用任何qesdk接口之前,需要通过quantease宽易用户认证

from qesdk import *
auth('您的用户名','您的授权码')

授权码可以通过登录https://quantease.cn点击右上角‘授权码’菜单获取。

具体使用详细参见获取授权码

期货日线数据

接口:

get_price(security, start_date, end_date, freq='daily', fields=None)

描述:获取采集期内合约的基础数据,包括最高价、最低价、成交量、成交额等。

函数说明

参数

参数名 类型 说明
security str 合约名称,比如“RB2205.SFE”
start_date str/datetime.datetime/datetime.date 开始时间,可以是datetime.datetime或者datetime.date,也可以是字符串比如'2020-10-01",‘2020-10-01 09:00’ 或者 '2020-10-01 09:00:00'
end_date str 结束时间,可以是datetime.datetime或者datetime.date,也可以是字符串比如'2020-10-11",‘2020-10-11 09:00’ 或者 '2020-10-11 09:00:00'
freq str 采样频率,默认是'minute',即为1分钟。如果'daily'代表1天,‘hour’代表1小时。 ‘XT’代表 X 分钟,比如‘3T’代表3分钟采样一次。 ‘XB’代表 x工作日, 比如‘5B’代表5个工作日采样一次。
fields list 默认None返回所有字段, 也可以是list选择某些字段,比如['open','close']只返回两个字段内容

返回值

  • pandas.DataFrame类型数据
  • 代码示例:

    from qesdk import *
    get_price('AU2106.SFE', '2021-01-01', '2021-05-01', 'daily' )
    

    运行结果:

    返回值:pandas.DataFrame类型数据

    各字段说明

    字段名 类型 描述
    open float 开盘价
    close float 收盘价
    high float 最高价
    low float 最低价
    volume int 成交量
    money float 成交额
    upperlimit float 涨停价
    lowerlimit float 跌停价
    position float 持仓量
    presett float 昨结算价
    preclose float 昨收盘价
    settle float 今结算价

    期货分钟线数据

    接口:

    get_price(security, start_date, end_date, freq='minute', fields=None)
    

    描述:获取采集期内合约的基础数据,包括最高价、最低价、成交量、成交额等。

    函数说明

    参数

    参数名 类型 说明
    security str 合约名称,比如“RB2205.SFE”
    start_date str/datetime.datetime/datetime.date 开始时间,可以是datetime.datetime或者datetime.date,也可以是字符串比如'2020-10-01",‘2020-10-01 09:00’ 或者 '2020-10-01 09:00:00'
    end_date str 结束时间,可以是datetime.datetime或者datetime.date,也可以是字符串比如'2020-10-11",‘2020-10-11 09:00’ 或者 '2020-10-11 09:00:00'
    freq str 采样频率,默认是'minute',即为1分钟。如果'daily'代表1天,‘hour’代表1小时。 ‘XT’代表 X 分钟,比如‘3T’代表3分钟采样一次。 ‘XB’代表 x工作日, 比如‘5B’代表5个工作日采样一次。
    fields list 默认None返回所有字段, 也可以是list选择某些字段,比如['open','close']只返回两个字段内容

    返回值

  • pandas.DataFrame类型数据
  • 代码示例:

    from qesdk import *
    get_price('AU2106.SFE', '2021-01-01', '2021-05-01', 'minute' )
    

    运行结果:

    返回值:pandas.DataFrame类型数据 各字段说明
    字段名 类型 描述
    open float 开盘价
    close float 收盘价
    high float 最高价
    low float 最低价
    volume int 成交量
    money float 成交额

    期货分笔数据

    接口:

    get_ticks(security, start_dt, end_dt, count=None, fields=None)
    

    描述:获取采集期间所有的成交量、成交额、最高价、最低价等,一般以一分钟为采集时间。

    注意:get_ticks不提供昨日结算价,昨日收盘价,开盘价,涨跌停价信息,需要的用户可以根据tradingday字段去日行情数据查询.

    参数
    参数名 类型 说明
    security str 合约名称,比如“RB2205.SFE”
    start_date str/datetime.datetime/datetime.date 开始时间,可以是datetime.datetime或者datetime.date,也可以是字符串比如'2020-10-01",‘2020-10-01 09:00’ 或者 '2020-10-01 09:00:00'
    end_date str 结束时间,可以是datetime.datetime或者datetime.date,也可以是字符串比如'2020-10-11",‘2020-10-11 09:00’ 或者 '2020-10-11 09:00:00'
    count int 取数据行数,默认是None,即为全部数据。比如 count=10, 仅取出满足条件的前10个数据
    fields list 默认None输出所有字段。若指定字段比如 fields=['high','low'] 代表只输出最低价格和最高价格
    返回值:pandas.DataFrame类型数据

    各字段说明

    键值 类型 说明
    current float 最新价
    open float 开盘价
    volume int 成交量
    money float 成交额
    position float 持仓量
    a1_p float 一档买价
    a1_v int 一档卖量
    b1_p float 一档买价
    b1_v int 一档买量
    tradingday int 交易日,晚盘算下一个交易日

    代码示例:

    from qesdk import *
    get_ticks('AU2106.SFE', '2021-01-01', '2021-01-10')
    

    运行结果:

    合约结算参数

    接口:

    get_instrument_setting(instid)
    

    描述: 获取给定合约的结算参数,比如保证金率,手续费,平今比例等。

    参数
    参数 类型 说明
    instid str 产品合约名称,比如'AG2112.SFE'
    返回值 dict 形式,包含如下key:
    键值 类型 说明
    instid str 合约名
    marglong float 做多保证金率
    margshort float 做空保证金率
    openfeerate float 开仓手续费率按比例
    closefeerate float 平仓手续费率按比例
    openfee float 开仓手续费按绝对值
    closeetodayrate float 平今倍数
    refprice float 参考价格
    volmult int 每手多少数量(比如吨)
    ticksize float 最小价格变动值

    备注:

    1> 大商所是平今时候开仓和平仓都有倍数,为了简单方便,都算在平今倍数中了。 比如生猪平今开平仓都是2倍,那么不计算开仓,仅计算平今倍数为3

    2> 参考价为交易所网站给出参考挂牌价,有些比如中金所产品没有这个价格,设置为0。

    代码示例:

    from qesdk import *
    get_instrument_setting('AU2112.SFE')
    

    运行结果:

    {'instid': 'AU2112_SFE',
     'marglong': 20.0,
     'margshort': 20.0,
     'openfeerate': 0.0,
     'closefeerate': 0.0,
     'openfee': 10.0,
     'closefee': 10.0,
     'closetodayrate': 0.0,
     'refprice': 408.2,
     'volmult': 1000,
     'ticksize': 0.05}
    

    主力合约

    接口:

    get_dominant_instID(symbol, date, code)
    

    描述: 获取指定日期指定产品主力合约。

    参数
    参数 类型 说明
    symbol str 产品代号,比如‘AU’
    date str/datetime.datetime/datetime.date 日期,可以是字符串格式比如‘2021-10-10’,也可以是datetime格式。
    code str 默认‘9999’查询主力合约,改成‘9998’可以查询次主力合约,其他字符串无效。
    返回值 str类型, 当天的主力合约或次主力合约。

    切换主力合约规则说明:

    1. 新主力合约连续三天持仓量第一
    2. 新主力合约必须比现有主力合约到期更晚
    3. 若当前主力合约已经到达到期前一个月最后两个工作日,则切换到更远期合约中持仓量最高的合约。
    4. 对于常见交易品种,主力合约月份需要符合历年月份规律。

    代码示例:

    from qesdk import*
    get_dominant_instID('AG', "2022-04-19")
    

    运行结果:

    'AG2206.SFE'
    

    多品种多日主力合约

    接口:

    get_dominant_instIDs(symbols, start_date, end_date,code)
    

    描述:获取给定产品和时间的主力合约名

    参数
    参数 类型 说明
    symbols str / list of str 产品代号或者产品代号列表,比如‘AU’或者['AU','AG']
    start_date str/datetime.datetime/datetime.date 开始日期,可以是字符串格式比如‘2021-10-10’,也可以是datetime格式。
    end_date str/datetime.datetime/datetime.date 结束日期,可以是字符串格式比如‘2021-11-10’,也可以是datetime格式。
    code str 默认‘9999’查询主力合约,改成‘9998’可以查询次主力合约,其他字符串无效。
    返回值 pandas.DataFrame 格式,日期是index, 列标题是产品名,内容是当天的主力合约/次主力合约。

    代码示例:

    from qesdk import *
    get_dominant_instIDs(['AG','AU'], "2022-04-19", "2022-05-08")
    

    运行结果:

    期货合约列表

    接口:

     get_securities_list(stype="all", dateWindow=None, exchange='all')
    

    描述:用于获取期货合约的基础数据,包括上市时间,结束时间等。

    参数
    参数 类型 说明
    stype str 可以是'all','futures','options'.默认'all'查询所有期货和期权,若仅需要期货'futures', 仅需要期权'options'.
    dateWindow list 默认None查询所有时间,若设置时间窗口,将只查询时间窗口内有效的合约列表。比如['2020-10-01','2020-11-01']. 若直接用“”代表当天,比如["",""]查询今天还在交易的所有合约列表
    exchange str 默认“all”查询所有交易所合约,可以指定仅查某个交易所,有效的交易所代码为“CCF”中金所,"DCE"大商所,"ZCE"郑商所,"SFE"上期所,"INE"国际能源中心。
    返回值 pandas.DataFrame 类型
    键值 说明
    name 合约代码
    display 合约名
    startdate 上市时间
    enddate 结束时间
    type 种类
    exID 交易所代码

    代码示例:

    from qesdk import *
    get_securities_list("futures",["",""],'CCF')
    

    运行结果:

    开收盘时间

    接口:

    get_prod_open_time(instid)
    

    描述:根据合约名称获取开盘时间,包括白天盘和夜盘开市和收市时间。

    参数
    参数 类型 说明
    instid str 产品合约名称,比如'AG2112.SFE'
    返回值
    返回结果 类型 说明
    {'daytime':['0900','1500'], 'night':['2100','0100']} dict 代表白天盘是9点开市,16点收市. 晚盘21点开市,第二天早上1点收市。

    代码示例:

    from qesdk import *
    get_prod_open_time('AU2112.SFE')
    

    运行结果:

    {'night': ['2100', '0230'], 'daytime': ['0900', '1500']}
    

    使用策略超市接口

    本接口用于访问Quantease出品策略超市软件的克隆策略以及相关仓位查询。

    用户登录

    使用任何策略超市接口前,需要先使用已注册账户进行登录。用户需要事先在策略超市软件进行注册。

    from qesdk import *
    login('用户名','密码')
    

    查找用户克隆策略表

    接口:

    sm_get_clone_strat_list()
    

    描述:

    查询登录用户所有已克隆策略的策略名列表

    返回值
    返回示例 类型 说明
    ['R-breaker_AG_v1_1','R-breaker_IC_v1_2'] list 当前用户已克隆策略的策略名称list。

    代码示例

    from qesdk import *
    stratlist = sm_get_clone_strat_list()
    stratlist
    

    返回值:

    ['R-breaker_AG_v1_1','R-breaker_IC_v1_2']
    

    查询策略表最新仓位

    接口

    sm_get_clone_strat_position(stratlist)
    

    描述:

    根据给定的策略表,返回相应策略表的持仓列表。

    参数
    参数 类型 说明
    stratlist list 策略名列表,比如['R-breaker_AG_v1_1','R-breaker_IC_v1_2']

    返回值示例:

    'IC2211.CCF': {'longpos': 0, 'shortpos': 0, 'updatetime': datetime.datetime(2022, 11, 7, 8, 39, 22)}, 'AG2301.DCE': {'longpos': 0, 'shortpos': 0, 'updatetime': datetime.datetime(2022, 11, 7, 8, 39, 22)}}
    

    该返回值key为合约名,value字段说明:

    ▼ 持仓字段名
    字段名 说明
    longpos 多头持仓
    shortpos 空头持仓
    updatetime 最后更新时间
    Copyright © QUANTEASE Team all right reserved,powered by Gitbook该文件修订时间: 2022-11-07 13:04:41

    results matching ""

      No results matching ""