本文介绍一种免费的快速获取金融市场数据的量化方法,适用于广大投资者,整个流程需要一台上网的电脑,有Excel软件。不过需要中上等的电脑操作水平,如果平时写个Word文章制作个Excel列表都不熟练的话,那这个方法还是有些难度的。

首先,需要上网下载叫R跟Rstudio的两款软件,它们都是免费的,可以自行百度搜索下载。R是一款基于R语言的编程软件,Rstudio是辅助R做输入输出的平台,本文里的所有操作都在Rstudio上,新手可以上网了解一下,网上有很多的入门介绍讲解,可以先看看。

总的来说,这个导入金融数据的操作并不是很难,平均需要几行代码就好了。可以把整个流程概括成,打开Rstudio软件,上面敲几行字母进去,一个Excel文件生成,里面包含你想要的金融数据。

01股票市场

获取上证指数数据:

先展示需要操作的代码,

←  轻触图片左右滑动浏览全图  →

install.packages("quantmod")

library(quantmod)

SZ "000001.SS",from = "2018-01-01",      to = "2019-03-01",auto.assign = FALSE,src = "yahoo")

install.packages("xlsx")

library(xlsx)

write.xlsx(SZ,"C:/Users/mh232/Desktop/data.xlsx")

在敲进去以上代码后,发现桌面新出现一个名为“data.xlsx”的Excel文件,打开它发现里面是想要的上证指数价格数据,截选如图:

对新手看起来会比较复杂,可能完全不知道代码中各个字母的意思,里面也有很多英文单词,对英文好的人来说会有优势,接下来详解各个步骤:

1. install.packages( )是一个方程,专门下载程序包的,首次操作需要下载程序包叫quantmod,要用它下载金融数据。等下载完成后,以后就不用输入此代码了。

2. library( )也是一个方程,刚下载的程序包需要加载,所以每次重新打开Rstudio的时候,都要输入这个来加载特定程序包,做金融数据导入时要加载quantmod程序包。

3. 接下来第三行代码有些复杂,主要思路是输入一个包含很多参数的方程getSymbols( ),这个方程做完后把数据转到一个命名为SZ缩写上证的变量里,SZ是随便起的名字,也可以是abc(但是输入数字123要加双引号),这无所谓。

-- 轮到getSymbols( )方程里的参数:

  • Symbols = “000001.SS”是雅虎财经里上证指数的代码,

  • from = “2018-01-01”是导入数据从2018年1月1号开始,

  • to = “2019-03-01”是到2019年3月1号结束,

  • auto.assign = FALSE这个意思是不用电脑来自己命名变量,因为SZ是要想命名的变量名称,

  • src = “yahoo”是数据源来自雅虎财经,之后介绍的其他财经数据来自不同网站,所以这块也会有变化。

4. install.packages("xlsx")也是一样,安装叫xlsx的程序包,这个程序包是专门做数据从Rstudio到Excel导出的。

5. library(xlsx)加载xlsx程序包。

6. write.xlsx( )导出数据到Excel的方程,里面的参数:

  • SZ是要导出的数据变量名,

  • "C:/Users/mh232/Desktop/data.xlsx"是导入的Excel放在哪个文件目录下,此目录是我导入到我电脑桌面下,方便查看。最后data.xlsx是自己命名data的Excel文件名称,这个可以自己随便起。

7. 之后打开桌面上的叫data的Excel文件,看到一共七列,第一列日期,第二列开盘价,第三列当天最高价,第四列当天最低价,第五列收盘价,第六列成交量(注意数据是千位值成交手数,不是成交金额),最后一列调整收盘价。之后查看数据是否准确,检查无误后就可以在Excel上操作数据了。

有几点需要注意的是,

1. Rstudio平台输入时,要换成英文输入法。

2. getSymbols和Symbols里的S要大写。

3. “000001.SS”的后缀SS要大写。

4. 注意输入日期格式顺序是年月日,双引号包含。

5. 还有很多地方要加双引号,没有双引号可能出不来结果。

总之,很多细节需要注意,一上来也要一段时间操作练习,等之后熟练后,理解了其中的格式,就可以将以上的代码换成简化形式,这样输入的字母更少,简化后如下:

library(quantmod)

SZ "000001.SS",from = "2018-01-01",                 auto.assign = FALSE)

library(xlsx)

write.xlsx(SZ,"C:/Users/mh232/Desktop/data.xlsx")

可以看到,代码去掉了很多,

1. install.packages( )删掉因为已经下载了程序包,不用下载了

2. 删掉Symbols =:程序默认第一个参数就是雅虎财经里的代码

3. 删掉to =:直接导入日期到最新

4. 删掉src =:因为程序默认从雅虎财经里抓取数据

此简单代码导出的结果跟最一开始的一样,不同在于数据到最新的日期因为取消了to =这块。综上,输入代码快的话大概七八秒,等待程序运行抓取数据大概一两秒,总体十秒左右可以完成。

获取上市公司贵州茅台数据:

股票市场里除了可以导出股指数据外,还可以导出某个上市公司的,比如以贵州茅台600519为例,操作如下(之前已加载程序包,不用再次输入library( ):

←  轻触图片左右滑动浏览全图  →

GZMT "600519.SS",from = "2018-01-01",        to = "2019-03-01",auto.assign = FALSE,        src = "yahoo")

write.xlsx(GZMT,"C:/Users/mh232/Desktop/data.xlsx")

导出到Excel的数据截选如图,检查数据后发现一个问题,2018年贵州茅台每日开盘价收盘价最高价最低价跟其他股票平台上的有一些差别,而最后一列调整收盘价比较接近,这是因为每个平台上计算基准不同(存在前后复权)导致的差异。经过检查后,整体涨跌幅是一致的,所以没有大的问题。除了贵州茅台以外,其他的所有上市公司只要雅虎财经上有的,根据相应的股票代码都可以导出数据来。

这时候有人也许会问,其实有一种快捷方法,可以直接登雅虎财经网站上搜相应股票,在历史数据那栏点击下载就行了,出来的也是Excel。确实,这种办法操作起来简单易行,比用Rstudio做个中介方便多了。但是如果想要沪深300支股票的数据呢,开300个页面可就很慢了。

02外汇、期货市场

获取美元兑人民币历史数据:

跟股票市场操作同理,也可以通过在雅虎财经抓取特定货币对的历史汇率数据,以美元兑人民币为例,雅虎财经上的代码为CNY=X,操作如下:

←  轻触图片左右滑动浏览全图  →

`USD/CNY` "CNY=X",from = "2018-01-01",             to = "2019-03-01",auto.assign = FALSE,             src = "yahoo")

write.xlsx(`USD/CNY`,"C:/Users/mh232/Desktop/data.er.xlsx")

需要注意的是,在输入USD/CNY时要加上``单引号,这是防止误导程序要做除法,因为有除号在里面,或者也可以自己命名其他变量。“data.er”是新建的Excel文件名,打开它,导入的部分截选如下图:

对比其他平台上的历史数据无误,但是仔细查看发现Excel第五列收盘价和最后一列调整收盘价,这两个跟开盘价接近一样。之后查看网页确实跟导出的一样,这可能是由于外汇市场全天24小时运转,网站上报的数据跟开盘价重合导致。以后做数据分析时,可以仅以开盘价为准,其他忽略即可。

获取原油期货历史数据:

同样,在雅虎财经网页查找,NYMEX纽约原油代码为CL=F,输入代码:

←  轻触图片左右滑动浏览全图  →

oil "CL=F",from = "2018-01-01",       to = "2019-03-01",auto.assign = FALSE,       src = "yahoo")

write.xlsx(oil,"C:/Users/mh232/Desktop/data.oil.xlsx")

导出到Excel发现历史数据只能追溯到半年前的,如果想要更长时间以前的,这个时候需要换网站抓取数据。quantmod程序包里另外一个主要搜索源是FRED,是美国圣路易斯联邦储备银行官方网站的缩写(Federal Reserves Bank of St. Louis),它上面包含了很多时间周期长的历史数据,还有很多重要的经济财经数据也包含其中,其中经济数据将在下部分展示。

经FRED网站查询后,WTI原油代码在它上面显示为DCOILWTICO,之后回到Rstudio上输入以下代码:

oil "DCOILWTICO",                  auto.assign = FALSE,                  src = "FRED")

write.xlsx(oil,"C:/Users/mh232/Desktop/data.oil.xlsx")

这次代码看起来更简单,quantmod在以FRED数据源搜索时,所有的数据都会被下载下来,所以不用输入from=,to=时间框架。另外,新产生名称为data.oil的Excel文件将替换之前雅虎财经输出的。新导出的Excel文件截选如图:

可以看到数据以日为单位。没有了每日最高价最低价等,数据最早从1986年1月2号至2019年3月4号,在此网站上的数据一般会有一周左右的延迟,所以一般最新数据会比当天时间晚一周左右。

03宏观经济

获取中国GDP年度历史数据:

←  轻触图片左右滑动浏览全图  →

GDP "MKTGDPCNA646NWDB",                  auto.assign = FALSE,                  src = "FRED")

write.xlsx(GDP,"C:/Users/mh232/Desktop/gdp.xlsx")

上图是部分截选,总体导出的数据从1960年到现在,以年为单位,并且以美元计价,网站上显示的数据来源来自世界银行。

获取美国月度失业率:

rate "UNRATE",                  auto.assign = FALSE,                  src = "FRED")

write.xlsx(rate,"C:/Users/mh232/Desktop/rate.xlsx")

数据记录从1948年到现在,按月为单位,上图是导出的部分截选。

获取美国非农就业人数:

←  轻触图片左右滑动浏览全图  →

nonfarm "PAYEMS",                  auto.assign = FALSE,                  src = "FRED")

write.xlsx(nonfarm,"C:/Users/mh232/Desktop/nonfarm.xlsx")

导出的是非农就业总人数(千位值),上下单元格的差就是平常媒体所报道的非农就业人数变化。数据记录从1939年到2019年二月,共计963条。

文末小结

总体来说,寻找数据的方法也就那几种,要么自己上网搜索,找下载链接或者复制粘贴,这也是最多人用的,此办法的优点是操作简单,不费脑,缺点就是如果要找的数据量很大,那么会很浪费时间。这时,借助编程的方法便应运而生了。其实相比R,还有一款比R更热门的编程语言Python,最近几年在量化金融领域的应用势不可挡,但为什么本文要用R呢?其一,R的代码比Python更简单;其二,R是专门用来做数据分析的,假如不导入到Excel,可以继续在R里做分析施展拳脚,这些该怎么做,就是以后文章的事了。

excel层级数据获取_量化获取股票市场及金融财经数据到Excel相关推荐

  1. EXCEL(Power BI)获取天天基金网每日历史净值数据,我去,这也太简单了吧!

    EXCEL(Power BI)获取天天基金网每日历史净值数据,我去,这也太简单了吧! 第一次在帮助别人的过程中学习了爬虫. 一万个开心~~~~~~~~~ 废话不多说,上干货. 找到天天基金显示数据的那 ...

  2. python excel模板 生成excel表格_python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图...

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 #coding=utf-8 from openpyxl importload_workbookfro ...

  3. R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称、将数据写入Excel文件新的表单(sheet)中、将文件保存为xls文件格式(而不是xlsx)

    R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称.将数据写入Excel文件新的表单(sheet)中.将文件保存为xls文件格式(而不是xlsx) 目录

  4. python向excel隔行写数据_【Python】将每日新增数据写入Excel

    一.背景: 因为自己从网上获取了一些金融数据,也没有配置数据库,所以目前暂时是将数据以增量的形式存储在自己的OneDrive上. 二.代码演绎:导入相关数据包 import pandas as pd ...

  5. excel取整函数_数据分析小白学习之路(三)——Excel多练熟能生巧

    谈到数据分析,我们可能第一时间想到python.SQL.Tableau.帆软.R等,但是这些软件.语言要入门掌握.系统学习起来耗时较长.这时候不得不提到excel这个"平平无奇数分小能手&q ...

  6. python如何修改excel数据库_python学习笔记-day7-2-【python从mysql数据库导数据到excel,读excel,修改excel】...

    这节说下如何用python把数据库里的数据导出到excel里,并如何读取excel, 修必excel等操作. 一.用python把数据库里的数据导出到excel里 1.导入如下的模块,没有的话需要安装 ...

  7. mfc创建excel如何另存为_mfc表格数据保存为excel文件-VC (MFC)如何从对话框写数据到Excel...

    我现在把Excel表格嵌入到MFC单文档界面,然后对嵌... 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中 ...

  8. python合并excel文件关键字_使用 Python 合并多个格式一致的 Excel 文件,Excel 表格...

    一 问题描述 最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 Excel 表格:每个表格的都只有一个 sheet,表格的前两行为表格标题及表头,表格的最后一行是相关人员签字.最终目标是将每个 ...

  9. excel切片器_给我1分钟,让你的Excel表格好看些,再好看些!

    一个很常见的客户联系表 下面给小编1分种,还你一个超好看又实用的Excel表格 1.修改原始表格 表格去边框,修改字体为微软雅黑,字体大小修改为10 2.套用模板 套用第1个模板 - 去掉筛选按钮;添 ...

最新文章

  1. phpshe b2c商城系统配置nginx支持pathinfo和rewrite的写法
  2. Linux网络:网络传输基本流程与协议初识
  3. binary search tree python_二叉查找树(binary search tree)——python实现
  4. git中如何合并某个指定文件?
  5. linux下面升级 Python版本并修改yum属性信息
  6. python re 正则表达式
  7. 计算机符号的英文名,【常见符号英文名称】英文名称
  8. GPS NMEA 0183 4.10协议/GPS Linux串口驱动
  9. Linux 命令详解(二)awk 命令
  10. #20071-[NOIP2020模拟赛B组Day6]礼物购买【二分】
  11. 数据可视化【十二】 颜色图例和尺寸图例
  12. 模板全特化和偏特化用法
  13. spring创建webservice项目
  14. Java案例:读取文本文件部分内容
  15. android代码重启设备,Android设备重启(reboot)---Android studio
  16. python画roc曲线需要什么数据,Python ROC曲线绘制
  17. Keras中文官方文档(离线版)
  18. matlab 安装时报错: dsp_doc_en_common 时检测到以下错误
  19. 周易六十四卦——火水未济卦
  20. 工具类|Java生成商城常用的核销码,长度12位~

热门文章

  1. 电脑光驱不读盘_维修电脑找电脑维修君
  2. python join函数用法-Python join()函数
  3. 掌握python编程语言tensorflow_手把手教你eclipse集成Python语言+Tensorflow环境
  4. word编辑论文技巧
  5. 启发式算法简谈(一)
  6. 最新android版本奥利奥,最新Android 8.1即将来临,你想吃奥利奥了吗?
  7. django邮箱验证模块
  8. C# 计算IP段之间的IP列表
  9. 装饰器,闭包,高阶函数,嵌套函数
  10. 第二章:2.6 使用 runserver 命令把项目运行起来