最后编辑于:2020.02.05 12:30
Wind API使用说明
windAPI是一个很好的工具,可以不通过客户端获取数据(不过前提是要有土豪的账号加持,笑)本文大部分介绍性文字转载自万旷网。本文的分析全部通过python完成。配置安装略过不表,请致电客服经理小哥哥(声音奶声奶气有点温柔!
0. 综述
目前万矿网支持的API函数有:
1、WSD日期序列函数:支持股票、债券、基金、期货、指数等多种证券的基本资料、股东信息、市场行情、证券分析、预测评级、财务数据等各种数据。WSD可以支持取 多品种单指标
或者 单品种多指标
的时间序列数据。(氦核:可以说是最重要的函数)
2、WSS多维函数:同样支持股票、债券、基金、期货、指数等多种证券的基本资料、股东信息、市场行情、证券分析、预测评级、财务数据等各种数据。但是WSS支持取多品种多指标某个时间点的截面数据。
3、WSQ行情数据函数:支持股票、债券、基金、期货、指数等多种证券品种的实时行情数据,既可以选择获取一次性的快照数据,也可以选择订阅数据(即交易所有新的行情就推送)。
4、WSET数据集:支持股票、债券、基金、期货、指数等多种证券品种板块成分、指数历史成分股以及权重,以及各种市场常用报表的获取。
5、TDays 日期函数:日期函数包含日期序列函数(TDays)、日期偏移函数(TDaysOffset) 以及日期区间统计函数(TDaysCount)。
下面为大家介绍各个函数的详细用法。
注: 建议用户在使用取数函数时直接借助API函数生成相应的取数代码,然后修改其中的参数使其满足自己的取数需求。(氦核注:这个很好使,点点点就能拿到代码。)
1. WSD日期序列函数
定义
该命令用来获取选定证券品种的历史序列数据,包括日间的行情数据、基本面数据以及技术数据指标。(氦核注:有些数据被限制获取的数量了,有些是最多五十个,这倒是很不方便。如果看实盘还好,但是做分析就不舒服了。)
函数输入
WSD函数结构 w.wsd(security,fields,startdate,enddate,option)
Element | Type | Description | ||
---|---|---|---|---|
证券(必选) | Security | String | 获取数据的证券列表 | 范例1:’600030.SH’说明:证券列表支持Wind代码及证券转换类工具函数输出的Wind代码结果 |
指标(必选) | Fields | String | 获取数据的指标列表 | 范例1:’CLOSE,HIGH,LOW,OPEN’ |
起始日期(必选) | StartDate | 时间序列的起始日期 | 范例1:’2017-01-01’,’-5w’说明:支持日期类工具函数输出的标准日期结果,支持相对日期宏表达方式,日期宏具体使用方式参考’日期宏’部分内容 | |
截止日期(必选) | EndDate | 时间序列的截止日期,若为空默认为系统当前日期 | 范例1:’2017-05-30’,Sys.Date(),支持相对日期,比如’0w’; 不输入的话为当前时间说明:支持日期类工具函数输出的标准日期结果,支持相对日期宏表达方式 | |
指标参数(可选) | Parameter/Value | String | 提取指标时使用的参数名/指定参数的值 | 范例:’TRADE_DATE=20110301;FUND_DATE=20101231’说明:多指标参数支持在不同引号内分开取值 |
变频参数(可选) | Period | String | 每天一值:D/每周一值:W/每月一值:M/每季度一值:Q/每半年一值:S/每年一值:Y | 范例:’Period=D’ ,默认Period=D |
输出日期(可选) | Days | String | 所有工作日:Weekdays/所有日历日:Alldays/排除所有非交易日:Trading | 范例:’Days=Trading’,默认Days=Trading |
填充方式(可选) | Fill | String | 沿用之前数据:Previous/返回空值:Blank | 范例:’Fill=Previous’,默认Fill=Blank |
日期排序(可选) | Order | String | 升序:A/ 降序:D,最近日期在先 | |
交易日历(可选) | TradingCalendar | String | 选择不同交易所所在国家地区日历 | 范例1:’ TradingCalendar =SSE’,默认TradingCalendar =SSE;SSE表示上交所,SZSE表示深圳证券交易所,CFFE表示中金所…… |
输出币种(可选) | Currency | String | 使用货币设置: ORIGINAL:原始货币/HKD:港币/USD:美元/CNY:人民币 | 范例1:’Currency =Original’,默认Currency =Original |
关于指标参数的详细说明见 7.指标常见参数说明
函数输出
输出内容 | 说明 | |
---|---|---|
错误ID | ErrorCode | 返回值为0 ,则表示代码运行正常。若为其他则需查找原因 |
数据列表 | Data | 函数读取的数据存到此列表中,比如:读取000592.SZ 的close,open指标从’2017-05-08’到’2017-05-18’区间的数据.Data=[[5.12,5.16,5.02,4.9,4.91,5.13,5.35,5.42,5.32],[5.3,5.12,5.17,4.98,4.94,4.93,5.1,5.4,5.4]] |
证券代码列表 | Codes | 输入的证券代码列表 .Codes=[000592.SZ] |
字段列表 | Field | 函数输入中请求的字段列表 .Fields=[CLOSE,OPEN] |
时间列表 | Times | 输出时间序列.Times=[20170508,20170509,20170510,20170511,20170512,20170515,20170516,20170517,20170518] |
示例
1 | # 加载相关的包 |
w.start是启动函数
1 | # 例1、 取富士康概念股近七个交易日的每天机构资金流入额 |
1 | pd.DataFrame(buyamt.Data,index=stock,columns=buyamt.Times).T |
1 | # 例2、 任取一只国债010107.SH六月份以来的净值历史行情数据 |
1 | # 例3、 取国内所有农产品主力合约不同日期所对应的具体合约 |
2. WSS多维数据函数
定义
命令用来获取选定证券品种的历史截面数据
命令原型为:data= w.wss(品种代码,指标,可选参数)
函数输入
WSS函数输入 w.wss(security,fields, option)
Element | Type | Description | ||
---|---|---|---|---|
证券(必选) | Security | String | 获取数据的证券列表 | 范例:’600030.SH,600031.SH 说明:证券列表支持Wind代码及证券转换类工具函数输出的Wind代码结果 |
指标(必选) | Fields | String | 获取数据的指标列表 | 范例1:’CLOSE,HIGH,LOW,OPEN’ 范例2:[‘CLOSE’,’HIGH’,’LOW’,’OPEN’] |
指标参数(可选) | Parameter/Value | String | 提取指标时使用的参数名/指定参数的值 | 范例:’TRADE_DATE=20170601;FUND_DATE=’20161231’ 说明:多指标参数支持在不同引号内分开取值 |
输出币种(可选) | Currency | String | 使用什么货币 ORIGINAL/HKD/USD/CNY | 范例:’Currency =Original’,默认Currency =Original |
关于指标参数的详细说明见 7.指标常见参数说明
示例
1 | # 例4、 取A股纳入MSCI各成分股的基本资料信息 |
1 | # 例5、 取截止日期 上海证券交易所 发行的国债 基本资料 |
1 | # 例6、 取被动指数型基金最新业绩排名 |
1 | #按今年以来总回报排序 |
1 | first_fund=list(returns_sort.index.values) |
1 | from WindCharts import * |
3. WSQ行情数据函数
3.1 实时行情取数函数说明
定义
命令用来获取选定证券品种的当天实时指标数据,数据可以一次性请求,也可以通过订阅的方式获取
命令原型为: data=w.wsq(品种代码,指标,可选参数,回调函数)
函数输入
函数名: w.wsq(security,fields,func = None)
Element | Type | Description | ||
---|---|---|---|---|
证券(必选) | Security | String | 获取数据的证券列表 | 范例:’600030.SH’说明:实时行情所支持品种较多,基本上终端中有的行情接口中皆可取得 |
指标(必选) | Fields | String | 获取数据的指标列表 | 范例:’rt_open,rt_high,rt_last’ |
回调函数(可选) | Func | 指定回测函数 | 范例:’ func=w.demoCallback’ |
返回选定品种的实时数据,支持一次请求和订阅两种方式。
示例
1 | #例7. 获取沪股通最新一笔的行情数据 |
1 | #任意订阅一只股票的最新行情 |
1 | #订阅行情后当交易所发送新的行情数据时,这里就会推送 |
4. WSET数据集函数
定义
命令用来获取数据集信息,包括板块成分、指数成分、ETF申赎成分信息、分级基金明细、融资标的、融券标的、融资融券担保品、回购担保品、停牌股票、复牌股票、分红送转等
参数设置为起止日期、板块名称等,不同的报表有不同的参数设置
命令原型为: data=w.wset(数据集名称,可选参数)
函数输入
函数名: w.wset(view,options),返回股票,基金,债券,商品等专题统计报表的数据。
Element | Type | Description | ||
---|---|---|---|---|
数据集(必选) | view | String | 提取数据集的VIEW名 | 范例1:’SectorConstituent’ |
View参数(可选) | Parameter/Value | String | 提取指标时使用的参数名/指定参数的值 | 范例1:’date=20130531’; |
板块列表(可选) | sectorid | String | 获取数据的板块ID | 范例1: ‘sector=全部A股’ 范例2:’sectorid=a001010100000000’ |
字段列表(可选) | Field | String | 获取字段列表的数据 | 范例1:’field=wind_code,i_weight’ |
基本获取某些板块的数据方法在上面的函数介绍中已经涉及了,这里就不再赘述
示例
1 | #例8、 获取申万一级行业的成分股 |
1 | # 下面分别取各行业指数的成分股 |
1 | #例9、 获取A股纳入MSCI成分股的2017年报的股票分红实施情况 |
1 | #例10、 沪深交易所期权列表 |
5. TDays 日期函数
5.1 返回区间内的日期序列w.tdays
定义
命令用来获取一个时间区间内的某种规则下的日期序列。
函数输入
函数名:TDays(startDate,endDate,[Optional argument])
Element | Type | Description | ||
---|---|---|---|---|
起始日期(必选) | StartDate | String | 时间序列的起始日期 | 范例1:”2015-01-01”,支持日期宏 |
截止日期(必选) | EndDate | String | 时间序列的截止日期,置空取当前最新日期 | 范例1:”2015-06-30”,支持日期宏 |
日期类型(可选) | Days | String | 所有工作日:Weekdays,所有日历日:Alldays,排除所有非交易日:Trading | 范例:’Days=Trading’,默认Days=Trading |
变频参数(可选) | Period | String | 每天一值:D, 每周一值:W,每月一值M:,每季度一值:Q ,每半年一值:S ,每年一值:Y | 范例:’Period=D’ |
交易日历(可选) | TradingCalendar | String | TradingCalendar默认为上海证券交易所,当DAYS为日历日的时候,这个参数不起作用,只有当DAYS为交易日的时候,这个参数才起作用,默认“TradingCalendar=SSE”(上海证券交易所) |
示例
1 | # 例11 取上交所2018年以来的交易日期序列,交易所为空默认为上交所 |
5.2 返回某个偏移值对应的日期w.tdaysoffset
定义
命令用来获取基于某个基准时间前推(<0) 或者后推(="">0)指定天数的日期。0)>
命令原型为:data=w.tdaysoffset(偏移值,基准时间,可选参数)
函数输入
函数名:TDaysOffset(offset, refDate, [Optional argument])
Element | Type | Description | ||
---|---|---|---|---|
参考日期 | refDate | String | 参照日期 | 范例1:”2015-01-01”,支持日期宏 |
日期类型(可选) | Days | String | 所有工作日:Weekdays,所有日历日:Alldays,排除所有非交易日:Trading | 范例:’Days=Trading’,默认Days=Trading |
变频参数(可选) | Period | String | 每天一值:D, 每周一值:W,每月一值M:,每季度一值:Q ,每半年一值:S ,每年一值:Y | 范例:’Period=D’,默认Period=D |
交易日历(可选) | TradingCalendar | String | TradingCalendar默认为上海证券交易所,当DAYS为日历日的时候,这个参数不起作用,只有当DAYS为交易日的时候,这个参数才起作用。默认“TradingCalendar=SSE”(上海证券交易所) | |
偏移量(可选) | Offset | 偏移参数 | 偏移参数,为整数,>0后推,<0前推,默认为0 |
示例
1 | # 例12 取从今天往前推10个月的日历日 |
5.3 返回某个区间内日期数量w.tdayscount
定义
命令用来获取两个时间区间内的某种规则下的日期序列个数
命令原型为:data= w.tdayscount(开始时间,结束时间,可选参数)
函数输入
函数名:TDaysCount(startDate,endDate, [Optional argument])
Element | Type | Description | ||
---|---|---|---|---|
起始日期(必选) | StartDate | String | 时间序列的起始日期 | 范例1:”2017-01-01”,支持日期宏 |
截止日期 | EndDate | String | 时间序列的截止日期,置空取当前最新日期 | 范例1:”2017-06-30”,支持日期宏 |
日期类型(可选) | Days | String | 所有工作日:Weekdays,所有日历日:Alldays,排除所有非交易日:Trading | 范例:’Days=Trading’,默认Days=Trading |
交易日历(可选) | TradingCalendar | String | TradingCalendar默认为上海证券交易所,当DAYS为日历日的时候,这个参数不起作用,只有当DAYS为交易日的时候,这个参数才起作用,默认“TradingCalendar=SSE”(上海证券交易所) |
1 | # 例13 统计2017年交易日天数 |
6. 日期宏的说明
6.1 通用日期
支持相对日期表达方式,相对日期周期包括:交易日TD、日历日:D、日历周:W、日历月:M、日历季:Q、日历半年:S、日历年:Y。
相关说明:
1、以’-’代表前推,数字代表N个周期,只支持整数;后推没有负号,比如’-5D’表示从当前最新日期前推5个日历日;
2、截止日期若为’’空值,取系统当前日期;
3、可对日期宏进行加减运算,比如’ED-10d’。
举例:
1、起始日期为1个月前,截至日期为最新 StartDate=’-1M’,EndDate=’’
2、起始日期为前推10个交易日,截至日期为前推5个交易日 StartDate=’-10TD’,EndDate=’-5TD’
6.2 特殊日期宏
宏名称 | 截止日期 | 开始日期 | 去年一季 | 去年二季 | 去年三季 | 去年年报 | 今年一季 | 今年二季 | 今年三季 | 最新一期 | 本年初 | 下半年初 | 本月初 | 本周一 | 上周末 | 上月末 | 上半年末 | 上年末 | 上市首日 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
宏助记符 | ED | SD | LQ1 | LQ2 | LQ3 | LYR | RQ1 | RQ2 | RQ3 | MRQ | RYF | RHYF | RMF | RWF | LWE | LME | LHYE | LYE | IPO |
1 | #例14 用日期宏IPO的示例 |
7. 指标参数的说明
关于WSD/WSS中常见指标参数的举例说明
element | description | value | Indicator examples | demo | |
---|---|---|---|---|---|
tradeDate | 交易日期 | 自填 | 开盘价 | ‘tradeDate=20180618’ | |
startDate | 开始日期 | 自填 | 区间开盘价 | ‘startDate=20180618’ | |
endDate | 截止日期 | 自填 | 区间开盘价 | ‘endDate=20180618’ | |
adjDate | 复权基期 | 自填 | 收盘价(支持定点复权) | ‘adjDate=20180618’ | |
rptDate | 报告期 | 自填 | 净利润 | ‘rptDate=20171231’ | |
priceAdj | 复权方式 | 不复权/前复权/后复权/定点复权 | 收盘价 | ‘priceAdj=U’ | |
cycle | 周期 | 日/月/…… | 成交量 | ‘cycle=D’ | |
bondPriceType | 债券价格类型 | 全价/净价/收益率/市价 | 涨跌幅(债券) | ‘bondPriceType=2’ | |
currencyType | 币种 | 原始币种/人民币/美元…… | 未平仓卖空金额 | ‘currencyType=Cur=CNY’ | |
ndays | 天数(用负号表示前推) | 自填 | N日涨跌幅 | ‘ndays=-5’ | |
rptType | 报表类型 | 合并报表/母公司报表…… | 杠杆率 | ‘rptType=1’ | |
dataType | 数据类型 | 本外币/本币/…… | 贷款利息收入-短期 | ‘dataType=2’ | |
traderType | 类型 | 机构/大户/散户…… | 流入单数 | ‘traderType=1’ | |
exchangeType | 交易所 | 上海/深圳/银行间…… | 跨市场代码 | ‘exchangeType=SSE’ | |
index | 所属指数 | 上证50指数/上证180指数/沪深300指数…… | 是否属于重要指数成份 | ‘index=1’ | |
unit | 单位 | 元、股、份、张、户 | 总市值、注册资本、持有人持有数量、单一投资者报告期末持有份额合计、股东户数…… | ‘unit=1’ | |
industryType/category/industryStandard | 行业级别/行业标准 | 一级行业/二级行业…… | 全部明细、中信行业/申万行业…… | 所属行业名称(支持历史)、所属恒生行业名称 | ‘industryType=1’,’category=1’,’industryStandard=3’ |
adminType | 行政区划级别 | 省级/地级/县级 | 所属行政区划 | ‘adminType=1’ | |
year | 年度 | 2018/2017/2016…… | 管理层年度薪酬总额 | ‘year=2017’ | |
month | 月份 | 1月/2月/…… | 五星基金占比 | ‘month=2’ | |
order | 大股东排名、名次 | 第一名/第二名/…… | 持有人持有数量、基金经理年限 | ‘order=1’ | |
instituteType | 机构类别 基金公司/证券公司/…… | 配售对象名称 | ‘instituteType=1’ | ||
topNum | 名次 | 第1名/第2名…… | 离职日期 | ‘topNum=1’ | |
shareType | 股本类型 | 流通股本/总股本 | 户均持股比例 | ‘shareType=1’ | |
reportDateType | 报告期 | 第一季度(1-3月)/第二季度(4-6月)…… | 单一投资者报告期末持有份额合计 | ‘reportDateType=1’ | |
Type | 资产池资产级别 | 次级/优先级/次优级 | 各级发行总额 | ‘reportDateType=1’ | |
type | 选择权类型、评级对象类型 | 赎回/回售/……、主体信用评级/不限…… | 行权资金到帐日 | ‘type=Pr’、’type=3’ | |
serial | 第N次提前偿还 | 手动输入数字 | 提前还本比例 | ‘serial=1’ | |
ratingAgency | 评级机构 | 标普/穆迪…… | 债项评级 | ‘ratingAgency=16’ | |
bondTypeIndex | 债券类型 | 短期融资券/中期票据/…… | 历史累计注册额度 | ‘bondTypeIndex=2’ | |
bondType | 债券类型 | 金融债/同业存单…… | 存量债券余额 | ‘bondType=1’ | |
termType | 期限类型 | 1年期内/1-3年期内…… | 存量债券余额(按期限) | termType=2 | |
credibility | 估值类型 | 推荐/不推荐/行权…… | 日终估价全价 | ‘credibility=2’ | |
fundType | 基金分类 | 投资类型(一级分类)/投资类型(二级分类) | 同类基金数量 | ‘fundType=1’ | |
fundRatingAgency | 评级机构 | 1/2…… | 四星基金占比 | ‘fundRatingAgency=2’ | |
chargesType | 收费类型 | 前端/后端 | 认购费率 | ‘chargesType=1’ | |
returnType | 收益率计算方法 | 普通收益率/对数收益率 | 几何平均年化收益率 | ‘returnType=1’ | |
annualized | 是否年化 | 是/否 | 近1周回报 | ‘annualized=0’ | |
netType | 报告期净值数据项 | 过去1个月/过去3个月/…… | 报告期净值增长率 | ‘netType=1’ |
1 | 例16 指标参数说明案例 |
8.财务数据的说明
Python如图,万矿的财务数据都是传入报告期,然后返回相应报告期的财务数据;在参数设置中可以直接设置报表类型为合并报表/母公司报表/合并报表(调整)/母公司报表(调整)。
万矿是取每个季度最后一天作为报告期,如取2017年的四个定期报告数据,那报告期设置分别为 :一季报:2017-03-31,半年报:2017-06-30,三季报:2017-09-30,年报:2017-12-31
如果要用wsd取多个报告期的公告数据,则需要将周期设置为季,日期类型设置为日历日(因为有的季度最后一天不是交易日)
财务数据回填说明:
1、比如说某公司A在2018年3月22日公布2017年年报,那在2018年3月22以前取2017年年报数据则为空,A公司公布年报数据后,我们会将公布的数据回填到2017-12-31,用户传入相应的报告期参数即可取出对应的年报数据;
2、如果用户直接取出年报数据做回测则会引入未来数据,所以如果要用财报数据做回测要先按照定期报告披露日期拉平至时间序列再做回测。
下面举例说明如何获取各个报告期的财务数据。
1 | #例 17 用wsd函数取000001.SZ[平安银行]近十年的利润表(合并报表)数据 |
1 | #例18 用wss取上证50的常见财务指标的2017年年报数据 |
(完)
特别鸣谢:我家松鼠
本文链接: https://konelane.github.io/2020/02/01/20200201WindAPI/
-- EOF --
转载请注明出处 署名-非商业性使用-禁止演绎 3.0 国际(CC BY-NC-ND 3.0)