本文介绍一种快速获取金融市场数据的免费量化方法,适合广大投资者。 整个过程需要一台能上网的电脑和Excel软件。 然而,它需要中级或高级的计算机操作水平。 如果你不熟悉写Word文章和制作Excel列表,那么这个方法还是有些困难的。
首先,你需要去网上下载两个软件,分别叫R和Rstudio。 它们都是免费的,您可以在百度上搜索并下载。 R是一款基于R语言的编程软件。 Rstudio是一个辅助R输入输出的平台。 本文所有操作均在Rstudio上进行。 新手可以上网了解一下。 网上有很多介绍性的介绍,可以先看一下。
总的来说,导入财务数据的操作并不困难,平均只需要几行代码。 整个过程可以概括如下:打开Rstudio软件,输入几行字母,就会生成一个Excel文件,其中包含你想要的财务数据。
0 1股市
获取上证指数数据:
首先展示需要操作的代码,
← 触摸图片左右滑动查看全图→
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.txt”的新 Excel 文件。
对于新手来说,这可能看起来很复杂,他们可能不知道代码中每个字母的含义。 代码中也有很多英文单词,这对于英语好的人来说会是一个优势。 接下来对每个步骤进行详细说明:
1. install.packages()是一个方程,专门用于下载程序包。 第一个操作需要下载一个名为quantmod的程序包,该程序包用于下载金融数据。 下载完成后,您以后将不需要输入此代码。
2.library()也是一个方程。 需要加载新下载的程序包,所以每次重新打开Rstudio时都必须输入这个来加载特定的包。 导入财务数据时,必须加载quantmod包。
3.接下来的第三行代码有点复杂。 主要思想是输入一个包含许多参数的方程 getSymbols()。 等式完成后,数据被转移到名为SZ(上海证券交易所的缩写)的变量中。 SZ 是一个随机名称。 ,也可以是abc(但是输入数字123时需要加双引号),都没有关系。
-- 这是 getSymbols() 方程中的参数:
4. install.packages("xlsx")也是如此,它安装一个名为xlsx的包。 该软件包旨在将数据从 Rstudio 导出到 Excel。
5.library(xlsx)加载xlsx包。
6. write.xlsx()导出数据到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.删除符号=:程序默认第一个参数是雅虎财经中的代码
3.删除=:直接导入日期到最新
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,它是圣路易斯联邦储备银行官方网站的缩写。 它包含了大量时间较长的历史数据,以及许多重要的经济数据。 财务数据也包括在内,经济数据将在下一节中介绍。
查看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年2月,共有963条记录。
总结在文章最后
一般来说,查找数据的方法只有几种。 您可以在线搜索、查找下载链接或复制粘贴。 这也是最流行的方法。 这种方法的优点是操作简单,不需要动脑筋。 缺点是如果要查找的数据量很大的话,会浪费时间。 这时,编程的方法就应运而生了。 事实上,还有另一种编程语言Python比R更受欢迎,近年来它在量化金融领域的应用势不可挡。 但为什么本文使用 R? 首先,R的代码比Python的代码简单; 第二,R专门用于数据分析。 如果不将其导入Excel,则可以继续在R中进行分析。如何执行此操作将是以后文章的主题。 。
本站对作者上传的所有内容将尽可能审核来源及出处,但对内容不作任何保证或承诺。请读者仅作参考并自行核实其真实性及合法性。如您发现图文视频内容来源标注有误或侵犯了您的权益请告知,本站将及时予以修改或删除。 |