代码家的干货网站,撰写网站建设策划书范文,影视公司需要的许可证,河南网站seoHello 大家好#xff0c;我是一名新来的金融领域打工人#xff0c;日常分享一些python知识#xff0c;都是自己在学习生活中遇到的一些问题#xff0c;分享给大家#xff0c;希望对大家有一定的帮助#xff01;
今天要个大家讲的是一个十分重要的知识#xff0c;在我们…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,FillPrevious)## 获取万得全A(除科创板)成交额 单位元
data2 w.wsd(881008.WI, amt, 2013-01-04, 2022-05-30, )## 获取上证综指
data3 w.edb(M0020188, 2013-01-04, 2022-05-31,FillPrevious)4.整理获取的数据 我计算了每日融资融券交易金额占比万得全A成交额代码如下这里有一点需要注意就是通过Wind获取得到的数据形式并不是一个常见的DataFrame形式所以我们需要将其稍微进行转化一下
## 获取融资融券交易金额
data w.edb(M0075989, 2013-01-04, 2022-05-31,FillPrevious)
df pd.DataFrame(datadata.Data[0],indexdata.Times,columns[融资融券交易金额])
## 获取万得全A(除科创板)成交额 单位元
data2 w.wsd(881008.WI, amt, 2013-01-04, 2022-05-30, )
df2 pd.DataFrame(datadata2.Data[0], indexdata2.Times,columns[万得全A(除科创板)成交额])
df2 df2[万得全A(除科创板)成交额] / 100000000
result pd.merge(df,df2,left_indexTrue,right_indexTrue)
result[融资融券交易金额占比万得全A成交额] result[融资融券交易金额] / result[万得全A(除科创板)成交额]
## 获取上证综指
data3 w.edb(M0020188, 2013-01-04, 2022-05-31,FillPrevious)
df3 pd.DataFrame(datadata3.Data[0],indexdata3.Times,columns[上证综合指数])
## 组合数据
result pd.merge(result,df3,left_indexTrue,right_indexTrue)
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(y0.12,linestyle--,color firebrick, lw 2.5)
ax.axhline(y0.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, locbest, frameonFalse)
效果如下图 好啦今天的文章就分享到这里