原理:wind会在python的第三方库中安装一个属于wind的库
文章目录
- 步骤1:确定python的路径
- 步骤2:配置wind的接口
- 步骤3:检查配置
- 步骤4:使用python提取任意的wind数据
步骤1:确定python的路径
如果是默认安装,一般路径是:C:\Users\用户名\Anaconda
如果有其他python的安装路径,只需要定位到那个位置即可,在这个目录下会有【python.exe】的文件,如下图所示
步骤2:配置wind的接口
打开wind资讯,点击【我的】-【插件修复】-【修复python接口】
打开的窗口中一般会自动运行,运行完成后,点击【配置详情】就可以看到添加了wind支持的python路径了
同样也可以点击【添加路径】,把其他目录下的python也添加进来
这个包含了python.exe的路径有一个专门的名字,叫【python解析器的路径】
步骤3:检查配置
1.登录wind,打开界面
2.新建一个python文件直接执行下面的代码:
from WindPy import w
w.start()
wind_data = w.wsd("000852.SH", "close", "20221201", "20221220", Period="D")
print(wind_data)
预期的结果是:
Welcome to use Wind Quant API for Python (WindPy)!
COPYRIGHT (C) 2020 WIND INFORMATION CO., LTD. ALL RIGHTS RESERVED.
IN NO CIRCUMSTANCE SHALL WIND BE RESPONSIBLE FOR ANY DAMAGES OR LOSSES CAUSED BY USING WIND QUANT API FOR Python.
.ErrorCode=0
.Codes=[000852.SH]
.Fields=[CLOSE]
.Times=[20221201,20221202,20221205,20221206,20221207,20221208,20221209,20221212,20221213,20221214,...]
.Data=[[6658.4265,6680.5415,6714.367,6703.5524,6705.2873,6662.3441,6680.3752,6655.6737,6593.6675,6570.0183,...]]
这一段是提取 000852.SH(中证1000)从2022-12-01到2022-12-20的日线的收盘价,如果得到想要的结果,python获取wind数据配置完成!
注意:因为wind提取数据容量有限,因此要避免频繁执行读取数据的操作,可以先把数据保存下来,然后再继续使用;wind提取数据量的计算规则是最近7天的提取量,因此当天使用的量,7天后才会恢复。
步骤4:使用python提取任意的wind数据
首先在代码中登录wind:
from WindPy import w
w.start()
在使用python获取wind数据的时候要确保wind在后台运行,否则会弹出wind的登录窗口
然后打开Wind界面的【量化】-【数据接口】-【代码生成器(CG)】
一般选择【多维数据】
在打开的窗口中选择想要的数据,最后点击确定后,就会生成一行代码:
只需要把这行代码复制到Python中,然后赋值给一个变量:
my_wind_data = w.wss("600012.SH", "sec_name") # 就是这个操作会消耗数据量,其他的代码不会
print(my_wind_data.Data)
这时,my_wind_data.Data
就是想要获取的数据,同时,my_wind_data
还有其他属性:
- my_wind_data.ErrorCode:错误代码,如果是0表示正常,其他代码可以参考:
- my_wind_data.Codes:当时选择的股票代码(对应代码生成器第一页的内容)
- my_wind_data.Fields:当时选择的数据列(对应代码生成器的第二页内容)
- my_wind_data.Times:时间
一般可以通过这个变量构造想要的数据表,比如上面的读取中证1000的结果:
from WindPy import w
import pandas as pd
w.start()
wind_data = w.wsd("000852.SH", "close", "20221201", "20221220", Period="D")
wind_df = pd.DataFrame(wind_data.Data,index=wind_data.Fields,columns=wind_data.Times)
print(wind_df)
就可以构造成pandas支持的数据格式,之后就可以用numpy,pandas等分析工具进行数据处理