python+Windpy金融数据分析之EDB数据库便捷使用

一、初步想法

        wind有一个很强大的库——EDB数据库,即经济数据库。Wind官方对它的介绍是:

        经济数据库(EDB)整合了海量的宏观和行业数据,并配合强大的指标计算和图形功能,是目前很多经济学家、宏观分析师、策略分析师、行业研究员等必备的宏观和行业分析工具。EDB汇集了国内外权威数据发布机构的第一手数据资源,包括国民经济核算、国际收支、对外贸易、人口就业、财政金融、能源环境、价格水平等各国宏观经济数据专题,也包含包括价格、产量、销量、进出口量、产能、上市公司业务数据等行业数据专题。数据最早起始于1900年,频度跨越月、季、年度,既可以监测国内外国家和地区重点经济指标,又可以从专题角度进行国家间、行业间经济比较。EDB已成为国内外专家和学者分析和研究经济形势、行业影响的便捷工具。经济数据库包含中国宏观、地区宏观、海外宏观、行业数据、商品数据、利率数据、医药数据、三方数据八大类,目前共计800万条数据。我们每月都会定期更新及新增数据。八个指标体系兼容,用户可以自由选取指标,任意设置时间区间,自由提取;并提供图形制作、指标换算等多项功能。打开Excel,数据自动更新到最新。

        这个数据库还是非常实用的,常用的利率、商品价格、行业数据等都可以方便的从这个数据库提取。

        但是,在提取数据的时候(不管是从客户端还是EXCEL插件),都有一个很难受的问题,提取数据需要选择固定的起止日期,而且不能通过公式随时更新!!!这个bug让这么好用的数据库用起来非常不方便,特别是需要随时更新数据的时候得全部重新选择一遍,非常费时间

        但还好还好,Windpy可以解决这个问题!用Windpy导出数据的时候,还是可以通过设置日期参数来达到快速更新和导出的目的。

        现在是Windpy—EDB数据库应用第一篇,主要完成了从EDB数据库导出指定经济数据,并可视化的任务。

二、思路和代码展示

(一)导入相关的库

        详见python+Windpy做金融数据分析

(二)导出数据

        先导出直接有的数据,以两个金价数据为例

def get_EDB_data(
    EdbCode,
    EdbName_list,
    StartDate, 
    EndDate, 
    color_list,
    ylabel1,
    long_x = 10,        # 图片的尺寸设置,默认是10,可以改
    short_y = 6,        # 图片的尺寸设置,默认是6, 可以改
    need_to_show=True
):
    # 1.数据导出
    error_code, EDB_data = w.edb(EdbCode, StartDate, EndDate,"Fill=Previous",usedf=True)  #导出价格
    col=EdbName_list
    EDB_data.columns=col

(三)可视化做图

        把黄金价格走势做成折线图:

    # 2.可视化做图
    # 2.1 价格数据走势    
    plt.rcParams['figure.figsize'] = (long_x, short_y)
    x = EDB_data.index
    for index,EdbName in enumerate(EdbName_list):
        y = EDB_data[EdbName_list[index]]
        plt.plot(x, y,label=EdbName_list[index], 
                 color=color_list[index], linestyle='-',  markersize=5)
    # 设置X,Y轴标签
    plt.ylabel(ylabel1,fontsize = 14,loc="top")
    # 设置图例
    plt.legend(loc='best')
    # plt.show()
    # 设置图片标题并保存
    plt.savefig('指标对比.png', bbox_inches='tight')

        生成的图片如下:

(四)数据再处理,做成涨跌幅的对比折线图

        数量级不一样,导致画出来的图不太好看趋势对比,所以把数据的涨跌幅计算出来,然后画成涨跌幅的折线图来看:

# 2.1 价格涨跌幅走势    
    EDB_data_increase = ((EDB_data - EDB_data.iloc[0,:]) / EDB_data.iloc[0,:])*100  #涨跌幅计算
    plt.rcParams['figure.figsize'] = (long_x, short_y)
    x2 = EDB_data_increase.index
    for index,EdbName in enumerate(EdbName_list):
        y2 = EDB_data_increase[EdbName_list[index]]
        plt.plot(x2, y2,label=EdbName_list[index], 
                 color=color_list[index], linestyle='-',  markersize=5)
    # 设置X,Y轴标签
    plt.ylabel('涨跌幅:%',fontsize = 14,loc="top")
    # 设置图例
    plt.legend(loc='best')
    # plt.show()
    # 设置图片标题并保存
    plt.savefig('指标涨跌幅对比.png', bbox_inches='tight')

        生成的图片如下:

        这样就能方便的看出来变化的趋势了~(ps:黄金的涨幅真的很喜人啊哈哈哈)

(五)函数调用

EdbCode = "S0035818,S0031645"  #edb中的指标ID
EdbName_list = ['中国上金所黄金现货','伦敦现货黄金:美元计价'] #指标中文名称
StartDate = '20230301'
EndDate = '20240229'
color_list = [color1,color2,color3]
ylabel1 = '黄金价格'
get_EDB_data(EdbCode,EdbName_list,StartDate,EndDate,color_list,ylabel1)

三、总结

        以上就是一个简单的运用Wind EDB数据库导出数据并进行数据分析、可视化的例子,这个可以和其他的Wind的库一起用,比如把指数数据和经济数据放在一起分析,具体的指数数据导出和分析的例子可以看这一篇《python+Windpy做金融数据分析》,之后应该也会出一个结合起来运用的例子,嘻嘻~

        其他的应用也还将持续优化、更新,还有其他的分析实例也将再发出来~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值