python金融分析小知识(27)——如何通过python连接Wind(万得)数据库

Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!

今天要个大家讲的是一个十分重要的知识,在我们平时的工作中肯定会经常用到Wind数据库,大家应该都知道Wind数据库有一个excel插件可以使用,大家可以通过excel插件的相关功能来提取Wind数据库的数据:

但是在我平时使用的过程中,我更喜欢用python的强大的数据处理能力,所以我会通过python去获取Wind数据库的数据,今天我就给大家介绍如何通过python连接Wind数据库。

1. 修复python接口

首先我们通过Wind金融终端的界面,里面选择修复python接口,这样接下来我们就可以连接Wind数据库啦!

 

2.通过python连接Wind数据库 

我们首先需要导入相关的包,代码如下:

## 连接Wind接口
import pandas as pd 
from WindPy import w
w.start()

连接成功后,会打印出如下语句,如果你不是下面的情况,有可能是因为你的Wind没有python接口的权限:

 

3.代码生成器的使用 

在第二步连接上Wind数据库后,我们就可以写语句来获取Wind中的数据啦!我们都知道对于不同的平台这种API语句有很大的不同,在这里大家不用去学Wind的API语句,因为我们有一个神器:代码生成器

 

在进入代码生成器后是这样的页面:

 

这个时候我们可以像使用Wind的excel插件一样,在红色框区域内选择自己想要看的标的、想要看的指标等等,这里就不加赘述了。

在这里我举个例子,我来获取融资融券交易金额、万得全A(除科创板)成交额以及上证综指,我们通过代码生成器可以获得如下的获取数据的语句,请注意以下语句是通过代码生成器生成的:

## 获取融资融券交易金额
data = w.edb("M0075989", "2013-01-04", "2022-05-31","Fill=Previous")

## 获取万得全A(除科创板)成交额 单位元
data2 = w.wsd("881008.WI", "amt", "2013-01-04", "2022-05-30", "")

## 获取上证综指
data3 = w.edb("M0020188", "2013-01-04", "2022-05-31","Fill=Previous")

4.整理获取的数据 

我计算了每日融资融券交易金额占比万得全A成交额,代码如下,这里有一点需要注意:就是通过Wind获取得到的数据形式并不是一个常见的DataFrame形式,所以我们需要将其稍微进行转化一下:

## 获取融资融券交易金额
data = w.edb("M0075989", "2013-01-04", "2022-05-31","Fill=Previous")
df = pd.DataFrame(data=data.Data[0],index=data.Times,columns=['融资融券交易金额'])
## 获取万得全A(除科创板)成交额 单位元
data2 = w.wsd("881008.WI", "amt", "2013-01-04", "2022-05-30", "")
df2 = pd.DataFrame(data=data2.Data[0], index=data2.Times,columns=['万得全A(除科创板)成交额'])
df2 = df2['万得全A(除科创板)成交额'] / 100000000
result = pd.merge(df,df2,left_index=True,right_index=True)
result['融资融券交易金额占比万得全A成交额'] = result['融资融券交易金额'] / result['万得全A(除科创板)成交额']
## 获取上证综指
data3 = w.edb("M0020188", "2013-01-04", "2022-05-31","Fill=Previous")
df3 = pd.DataFrame(data=data3.Data[0],index=data3.Times,columns=['上证综合指数'])
## 组合数据
result = pd.merge(result,df3,left_index=True,right_index=True)
result

我们来看看结果:

 

5.可视化展示 

接下来我们将每日融资融券交易金额占比万得全A成交额进行可视化展示,并同时画出上证综指:

## 绘图
import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'retina'
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
fig, ax = plt.subplots(figsize = (14,6))
ax.plot(result.index, result['融资融券交易金额占比万得全A成交额'], label = '融资融券交易金额占比万得全A成交额', color = 'firebrick')
ax.axhline(y=0.12,linestyle='--',color = 'firebrick', lw = 2.5)
ax.axhline(y=0.06,linestyle='--',color = 'firebrick', lw = 2.5)
ax2 = ax.twinx()
ax2.plot(result['上证综合指数'], label = '上证综合指数', color = 'darkorange')
lines_1, labels_1 = ax.get_legend_handles_labels()
lines_2, labels_2 = ax2.get_legend_handles_labels()
lines = lines_1 + lines_2
labels = labels_1 + labels_2
ax2.legend(lines, labels, loc='best', frameon=False)

效果如下图:

 

好啦今天的文章就分享到这里! 

 

 

 

 

1 WINDPY接口说明 ................................................................................................. 1 1.1 WINDPY接口概述 ............................................................................................... 1 1.2 WINDPY接口安装 ............................................................................................... 2 1.2.1 WindPy对系统环境要求 ............................................................... 2 1.2.2 Python环境安装 .......................................................................... 2 1.2.3 正常WindPy接口安装 .................................................................. 3 1.2.4 特殊安装WindPy方式 .................................................................. 6 1.3 接口向导界面 ..................................................................................................... 6 1.4 WINDPY获取帮助途径 ....................................................................................... 7 1.4.1 本用户手册 .................................................................................... 7 1.4.2 量化交易群和R语言交流群 ........................................................... 7 1.5 WINDPY接口相关规范 ....................................................................................... 1 1.5.1 以下所有命令都有如下假设 ........................................................... 1 1.5.2 命令区分大小写,且“w.”不能省略 ............................................... 1 1.5.3 中文以及单字节码和双字节码的问题 ............................................. 1 1.5.4 品种、指标、参数等引号内的部分不区分大小写 ........................... 1 1.5.5 参数支持list输入 ...................................................................... 1 1.5.6 时间、日期支持Python语言的时间、日期格式 ........................... 2 1.5.7 参数中有缺省值的可以不用输入 .................................................... 2 1.5.8 可以带参数名输入 ......................................................................... 2 精于数据,一直进步 IV 1.5.9 Showblank参数 ........................................................................... 3 1.5.10 交易接口中Showfields参数................................................ 3 1.5.11 ErrorCode定义 .................................................................... 3 2 WIND PY插件命令说明 ....................................................................................... 1 2.1 FROM WINDPY IMPORT *:装载WINDPY包 ..................................................... 1 2.2 W.START:启动WINDPY ..................................................................................... 1 2.3 W.STOP:停止WINDPY ....................................................................................... 2 2.4 W.ISCONNECTED:判断是否已经登录 .............................................................. 2 2.5 W.CANCELREQUEST:取消订阅 .......................................................................... 2 2.6 W.WSD:获取历史序列数据 .............................................................................. 3 2.7 W.WSI:获取分钟数据 ...................................................................................... 3 2.8 W.WST:获取日内TICK级别数据 .................................................................... 4 2.9 W.WSS:获历史截面数据 .................................................................................. 5 2.10 W.WSQ:获取和订阅实时行情数据 ................................................................. 5 2.11 W.WSET:获取板块、指数等成分数据 ........................................................... 6 2.12 W.WEQS:获取条件选股结果 ............................................................................ 7 2.13 W.WPF:获取资产管理、组合管理数据 ......................................................... 7 2.14 交易相关函数 ..................................................................................................... 8 2.14.1 w.tlogon交易登录 ............................................................... 8 2.14.2 w.tlogout交易登出 ............................................................. 9 2.14.3 w.torder委托下单 ............................................................. 10 2.14.4 w.tcancel撤销委托 ........................................................... 11 精于数据,一直进步 V 2.14.5 w.tquery交易查询 ............................................................. 12 2.15 W.TDAYS, W.TDAYSOFFSET,W.TDAYSCOUNT:日期函数 ............................... 14 2.15.1 w.tdays:返回区间内的日期序列 ....................................... 14 2.15.2 w.tdaysoffset:返回某个偏移值对应的日期 ................... 14 2.15.3 w.tdayscount:返回某个区间内日期数量 ......................... 15 3 WINPY插件函数体说明........................................................................................ 1 3.1 日期序列(WSD)................................................................................................. 1 3.2 历史截面数据(WSS) ........................................................................................ 3 3.3 分钟序列(WSI)................................................................................................. 3 3.4 日内跳价(WST)................................................................................................. 4 3.5 实时数据(WSQ)................................................................................................. 5 3.6 数据集(WSET) ..............................................
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君子以自强不息python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值