我正在尝试进行一些股票投资组合模拟。使用“quantmod”包,我下载了多种证券的价格数据。我想完成两件事。
1)我想创建 xts 对象的列表/数组,其中每个证券代码都对应于列表中的时间序列对象。
2)更重要的是,我想创建一个时间序列数据框架,其中包含每种证券每天调整后的股价。
我有以下代码,可下载所有价格数据。
library(quantmod)
tickers <- c("SNC.TO", "PHII", "HBC.TO", "GTE", "MOO",
"MND.TO", "STKL", "SXC","XIU.TO")
for(i in tickers) {
getSymbols(i, from = "2010-06-30", to = "2015-06-30")
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止尝试创建数据框列表的方法
pframe <- list()
for(i in tickers) {
pframe[[i]] <- assign(i)
}
Run Code Online (Sandbox Code Playgroud) 这是我正在运行的代码
library(quantmod)
library(tseries)
Stocks={}
companies=c("IOC.BO","BPCL.BO","ONGC.BO","HINDPETRO.BO","GAIL.BO")
for(i in companies){
Stocks[i]=getSymbols(i)
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取从中获取的数据帧列表getSymbols以存储在Stocks. 问题是getSymbols直接将数据帧保存到全局环境仅保存列表中Stocks的字符。companies
如何将全局环境中的数据框保存到列表中?
如有任何帮助,我们将不胜感激..提前致谢!
我正在尝试使用“quantmod”包从 R 程序导出股票价格数据。它以每天的频率为我提供数据,但我需要将其更改为 10 分钟或 30 分钟的频率。不幸的是,我没有成功做到这一点。我尝试了以下代码
`library(quantmod)
# symbol
symbol <- "GC=F"
# time range (last 100 days)
start_date <- Sys.Date() - 100
end_date <- Sys.Date()
getSymbols(symbol, from = start_date, to = end_date, interval = "10 mins")
gold_data <- Cl(get(symbol))
plot(gold_data)`
Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多R文档,但我找不到任何我认可的答案.我的额头因敲打桌子而感到酸痛.;)
这是具体的library(quantmod),因为这是我想要学习的东西,但我想这也是一个普遍的问题.
R 2.12.2 GUI 1.36 Leopard构建64位(5691)Mac OS X 10.6.6
我试图quantmod在http://www.quantmod.com/examples/intro/上复制一个例子的行为
从GUI,一切都很好 - 下面生成一个这样的图表http://www.quantmod.com/examples/intro/AAPL-full.png:
> require(TTR)
> getSymbols("AAPL")
[1] "AAPL"
> chartSeries(AAPL)
> addMACD()
> addBBands()
Run Code Online (Sandbox Code Playgroud)
但是当我source()从GUI获得一个.R文件时,我只得到了图表
> chartSeries(AAPL)
Run Code Online (Sandbox Code Playgroud)
也就是说,只有价格图表和它下面的交易量表.此外,如果我从命令行尝试以下操作,它可以按预期工作.
$ R --no-save `<`quantmod.R
Run Code Online (Sandbox Code Playgroud)
Rplots.pdf生成一个名为的文件,其中包含三个页面.第三页包含价格+成交量+ MACD +布林带.
如何quantmod让生活变得如此困难?或者我不明白这是多么明显,让生活变得如此困难?
我需要做些什么才能使源脚本能够使用图表中的函数addMACD()和addBBands()函数?
作为一个附带问题,数据生成addMACD()和addBBands()存储在哪里?
我正在使用quantmod R包.有没有办法让getSymbols返回一个通用的xts对象而不是我得到的符号.例如,如果我执行:
getSymbols("COKE", src='yahoo', index.class=c("POSIXt","POSIXct"), from='1990-01-01')
Run Code Online (Sandbox Code Playgroud)
它以符号COKE的名称创建xts对象.如上所述,有没有办法将xts数据对象返回到像x这样的通用变量.即
x <- getSymbol(...)
Run Code Online (Sandbox Code Playgroud)
我看起来很高和很低的解决方案,但没有答案.
谢谢
我想在R中处理比特币价格,但我无法从雅虎和谷歌下载时间系列.
来自雅虎的BTCUSD历史时间系列缺失,谷歌无法识别getSymbols符号为"CURRENCY:EURUSD"时形成的URL .我知道R期望":"成为一个列表,所以我应用了我在Stakeoverflow中找到的解决方法来转换CURRENCY:CURRENCY.EURUSD中的EURUSD,但Google仍然无法处理请求.
从Oanda下载的工作就像一个魅力,但要求不能超过500天.我尝试这种解决方法绕过限制,但它无法正确填充prices我有其他符号的对象:
tail(prices) (带有波纹管)
UUP FXB FXE FXF FXY SLV GLD BTC
2014-08-31 NA NA NA NA NA NA NA 506.809
2014-09-30 22.87 159.33 124.48 102.26 88.80 16.35 116.21 375.386
2014-10-31 23.09 157.20 123.49 101.45 86.65 15.50 112.66 341.852
2014-11-30 NA NA NA NA NA NA NA 378.690
2014-12-31 23.97 153.06 119.14 98.16 81.21 15.06 113.58 312.642
2015-01-24 NA NA NA NA NA NA NA 229.813
Run Code Online (Sandbox Code Playgroud)
提取物print(prices)(带有波纹管)
2013-06-28 …Run Code Online (Sandbox Code Playgroud) 我正在使用包裹在 lapply 语句中的 quantmod 从雅虎财经下载一些信息:
require(quantmod)
tickers <- c("AAPL", "MSFT", "MKQ", "TSLA")
quotes <- lapply(tickers,function(x) getSymbols(x, src="yahoo", from="2015-02-01", auto.assign=FALSE))
Run Code Online (Sandbox Code Playgroud)
股票代码 MKQ 是故意编造的。我希望循环打印错误,但仍然创建一个 xts 对象列表,其中包含其他 3 个代码的请求数据。
我曾尝试按如下方式使用 tryCatch 但未成功:
quotes <- tryCatch(lapply(tickers,function(x) getSymbols(x,
src="yahoo", from="2015-02-01", auto.assign=FALSE)) , error=function(e) NULL)
Run Code Online (Sandbox Code Playgroud)
关于如何做到这一点的任何建议?我阅读了有关 tryCatch 的文档,但无法理解它。
谢谢你。
我想知道如何更改日期格式.
我正在处理的代码如下:
library(quantmod)
getSymbols("AAPL")
price_AAPL <- AAPL[,6]
plot(price_AAPL, main = "The price of AAPL")
Run Code Online (Sandbox Code Playgroud)
结果
我想改变日期格式
"%m %d %Y"
Run Code Online (Sandbox Code Playgroud)
如图所示
"%b-%d-%Y"
Run Code Online (Sandbox Code Playgroud)
所以我在搜索了一些提示之后尝试了:
plot(price_AAPL, main = "The price of AAPL", xaxt="n")
axis.Date(1,
at=seq(head(index(price_AAPL),1),
tail(index(price_AAPL),1), length.out=5),
format="%b-%d-%Y", las=2)
Run Code Online (Sandbox Code Playgroud)
但这没有帮助,甚至在x轴上都没有显示任何标记.我想我可能会对"axis.Date()"做错.
有谁能够帮我?
我已经远远地看了解这个问题的解决方案,但我似乎无法弄明白.我在R中处理xts对象的经验不多.
我有40个xts对象(ETF数据),我想分别WeeklyReturn在每个对象上运行quantmod函数.
我试图通过使用ls()函数来引用它们:
lapply(ls(), weeklyReturn)
Run Code Online (Sandbox Code Playgroud)
我也试过这个object()功能
lapply(object(), weeklyReturn)
Run Code Online (Sandbox Code Playgroud)
我也尝试as.xts()在我的调用中强制使用ls()对象作为xts,但无济于事.
如何在环境中的每个xts对象上运行此函数?
谢谢,
考虑以下两个图,第一个使用通用图函数,第二个使用plot.xts:
一般情节
par(mfrow = c(2,1))
plot(1:5, type="l", main = "generic plot")
lines(5:1)
Run Code Online (Sandbox Code Playgroud)
如预期的那样,线条功能会添加到现有图形中,因此会生成单个图形
我将mfrow = c(2,1)设置为向您显示,只有一个图。现在使用xts数据:
par(mfrow = c(2,1))
plot(xts(x = 1:5, order.by = 1:5+as.Date("2017-01-01")), type="l", main = "plot.xts")
lines(xts(x = 5:1, order.by = 1:5+as.Date("2017-01-01")), main = "plot.xts")
Run Code Online (Sandbox Code Playgroud)
出乎意料的是,它会生成两个图。为什么?
我的情况特别复杂,但是我发现这段代码片断是重现我的问题的最简单方法。基本上,我想继续在一个绘图上添加xts数据。我能够使用通用的绘图和线条功能来实现。
平台信息:R版本3.4.3(2017-11-30)平台:x86_64-apple-darwin15.6.0(64位)在以下环境下运行:macOS High Sierra 10.13.2quantmod_0.4-12 xts_0.10-1