我是印度的日内交易者。我正在使用R进行研究。我想下载不同股票的收盘(EOD(股票价格。我正在使用Quandl和quantmod,但对它们不满意(它们适用于历史数据,但不适用于EOD报价(。经过大量研究,我发现NSE(印度国家证券交易所(的EOD可以在所谓的"bhav副本"中找到,该副本可以每天从其网站上下载。4 月 30 日的网址是:
https://www.nseindia.com/content/historical/EQUITIES/2018/APR/cm30APR2018bhav.csv.zip
我有两个问题:
1(如果我在谷歌浏览器的地址框中输入并执行,它会抛出一个弹出窗口,询问将csv文件存储在哪里。如何在 R 中自动执行此操作?如果我只是输入 URL 作为read.csv
的参数,就足够了吗?
2(bhav副本每天更新。我想用 R 编写一个函数,每天自动下载。但网址每天都在变化(上述网址仅适用于2018年4月30日(。该函数将当前日期作为参数。如何创建到该特定日期的日期和 URL 的一对一映射?换句话说,日期 dt 的 URL 是:
https://www.nseindia.com/content/historical/EQUITIES/2018/APR/cmdtAPR2018bhav.csv.zip
R 函数 f(dt( 应创建该特定日期的 URL 并下载 csv 文件。
非常感谢您的时间和精力...
download.file(url, destfile)
应该是从 R 中的 URL 下载数据所需的内容。然后你可以使用read.csv
.根据您提供的 URL 判断,您可能需要在处理之前使用unzip()
。
如果您愿意,可以使用data.table
库中的fread
直接传递 url,但如果它是一个 zip 文件,那么第一个选项可能更适合您。
至于 URL 和处理日期,lubridate
库将方便解析日期。
包nser
解决了你的问题。
要下载和阅读今天的bhavcopy,请使用bhavtoday
library(nser)
bhavtoday
下载并阅读股权部分的历史副本
bhav("30042018")
F&O部分的bhavcopy副本
fobhav("30042018")
您也可以使用RSelenium使用功能下载bhavcopy zip文件bhavs
。
包链接 https://cloud.r-project.org/web/packages/nser/index.html