我想从FRED系列创建一个数据集,我使用这样的quantmod包:
library(quantmod)
getSymbols(c('FEDFUNDS', 'GDPPOT', 'DGS10'), src='FRED')
dat <- buildData(FEDFUNDS ~ DGS10 + GDPPOT, na.rm=FALSE)
Run Code Online (Sandbox Code Playgroud)
我需要的是一个xts对象,其中包含对最长时间序列中所有日期的观察,以及缺少值以填充较短的时间序列.在上面的例子中,我得到:
> head(dat, 2)
FEDFUNDS DGS10 GDPPOT
1962-10-01 2.90 3.93 3141.6
1963-01-01 2.92 NA 3173.9
> head(FEDFUNDS, 2)
FEDFUNDS
1954-07-01 0.80
1954-08-01 1.22
> head(DGS10, 2)
DGS10
1962-01-02 4.06
1962-01-03 4.03
> head(GDPPOT, 2)
GDPPOT
1949-01-01 1864.8
1949-04-01 1885.2
Run Code Online (Sandbox Code Playgroud)
截断FEDFUNDS系列以匹配DGS10系列的最小日期值.我喜欢这个buildData()功能的便利,并且很乐意将它用于这个任务,但我想知道如何保持缺失的观察.
非常感谢你的时间!
编辑:我不想使用合并的原因是一些数据系列具有不同的周期性,并buildData()自动处理.
我正在尝试创建在从雅虎获取符号后提供历史波动的函数.但是,当我将输出传递给波动率函数时,它不喜欢它; Get变量被赋予一个带引号的向量,例如"SPY",但波动率函数只需要没有引号(SPY没有"SPY").我尝试使用noquote()取消引号,现在出现以下错误:
log(x)中的错误:数学函数的非数字参数
我的代码
require(quantmod)
vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
Set <- noquote(Get)
volatility(Set, calc="close")
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.
我一直在使用quantmods getSymbols函数,并希望减少外部数据提供程序的负载,并减少因网络延迟而执行更长代码循环所需的时间.
理想的是一个获取符号列表(如getSymbols)的函数,从'setSymbolLookup'中配置的提供程序下载它们并将它们保存在MySQL数据库中,以便以后使用getSymbols.MySQL轻松检索.
如果另一个功能(或同一个功能)仅允许下载自上次更新以来的差异,则会产生重大的好处.
或者,如果在本地MySQL数据库/缓存中尚不存在符号,则下载符号的代理类型也是好的.
有没有人开发过这样的东西,或者遇到过关于如何做的任何文档?我一直在搜索,但我能得到的最接近的是关于如何使用MySQL作为输入源的一些问题.
提前致谢!
我试图从谷歌获取道琼斯指数的数据.我尝试了很多东西,但它们似乎没有用.
require(quantmod)
getSymbols(".DJI",src = "google")
getSymbols("^DJI",src = "google")
getSymbols("INDEXDJX:.DJI",src = "google")
Run Code Online (Sandbox Code Playgroud) 我试图在quantmod :: chart_Series()之上绘制一些支持/阻力线.问题是有趣的支持/阻力线在当前时间之外(低于或高于)系列数据范围(我还希望将图表向右扩展到超出数据的最后时间戳).
查看quantmod :: chart_Series()的源代码,我看不到指定ylim/xlim的方法,或者使用yrange来覆盖y-scale,使用quantmod :: chartSeries在"旧时代"中可能实现的.这里的评论https://r-forge.r-project.org/scm/viewvc.php?view=rev&root=quantmod&revision=520也在确认我的预感......
我的诊断是否正确,或者是否有一种方法可以在quantmod :: chart_Series中实现y-scale覆盖?任何想法如何做我想要的高度赞赏.
谢谢.
最好,萨摩
我想使用quantmod :: chart_Series()绘制SPX图表,并在下面绘制GDP的变化和GDP变化的12个月SMA.无论我如何尝试(我使用什么组合)发生错误或quantmod :: chart_Series()只显示部分图.
require(quantmod)
FRED.symbols <- c("GDPC96")
getSymbols(FRED.symbols, src="FRED")
SPX <- getSymbols("^GSPC", auto.assign=FALSE, from="1900-01-01")
subset="2000/"
chart_Series(SPX, subset=subset)
add_TA(GDPC96)
add_TA(ROC(GDPC96, type="discrete"))
add_TA(SMA(ROC(GDPC96, type="discrete"), n=4), on=3, col="blue")
Run Code Online (Sandbox Code Playgroud)
编辑:实际上,在我看来,这是使用季度数据时的quantmod :: chart_series()问题:
subset <- "2000/"
chart_Series(to.quarterly(SPX, drop.time=TRUE), subset=subset)
add_TA(SMA(Cl(to.quarterly(SPX, drop.time=TRUE))))
> subset <- "2000/"
> chart_Series(to.quarterly(SPX, drop.time=TRUE), subset=subset)
> add_TA(SMA(Cl(to.quarterly(SPX, drop.time=TRUE))))
Error in xy.coords(x, y) : 'x' and 'y' lengths differ
In addition: Warning messages:
1: In as_numeric(H) : NAs introduced by coercion
2: In as_numeric(H) : NAs introduced by coercion
3: …Run Code Online (Sandbox Code Playgroud) 我对R有些新意.我想我的错误对经验丰富的人来说是微不足道的.
我正在尝试编写一个R程序来计算一些股票的beta.读取股票代码Input.csv,并从雅虎下载数据.然后,代码循环遍历每个股票的beta计算,并输出总结回归的csv.
当所有时期都假设单一无风险利率时,我得到了代码,但我相信我可能需要在规范超额收益时使用每个月的实际无风险利率.我在这一步遇到了麻烦.从FRED(GS20)成功下载了xts,但是当从安全和市场回报中减去回报时,它产生的xts为零长度.这会杀死该计划.
我相信这可能是因为FRED和雅虎之间的日期格式不同.我注意到getSymbols命令忽略了from-to日期.任何帮助,将不胜感激.
require(PerformanceAnalytics)
require(quantmod)
require(car)
setwd("R Projects/Beta Test")
proxy <- read.csv("Input.csv",header=FALSE)[,1]
summary <- as.data.frame(matrix(0, ncol = 5, nrow = 0))
mar <- getSymbols("^GSPC", src = "yahoo", from = as.Date("2006-01-01"),
to = as.Date("2011-12-31"),auto.assign=FALSE)
riskFree <- getSymbols("GS20", src = "FRED", from = as.Date("2006-12-01"),
to = as.Date("2011-12-31"),auto.assign=FALSE)
for (n in proxy){
sec <- getSymbols(n, src = "yahoo", from = as.Date("2006-01-01"),
to = as.Date("2011-12-31"),auto.assign=FALSE)
#Monthly Returns
#ERROR PRODUCED HERE
sec.xsmonthly <- monthlyReturn(to.monthly(sec),type="log") - riskFree
mar.xsmonthly <- monthlyReturn(to.monthly(mar),type="log") - riskFree
sec.reg …Run Code Online (Sandbox Code Playgroud) 我有一个xts或者对象的环境NULL.我想NULL从环境中删除所有.有没有我可以使用的功能eapply来实现这一目标?
我一直试图通过实施滚动窗口回归并计算和记录过去每一天的估计值和最后一天之间的差异来回溯测试回归的可预测性(试图获得一步预测) ,在一个专栏中.
我尝试在滚动回归中应用Christoph_J的答案返回多个对象
代码中没有语法错误.但是,我不确定是否存在语义错误.是行的值i的"预言"一栏,该行的事前预测i的值OpCl列?
library(zoo)
library(dynlm)
library(quantmod)
sp <- getSymbols("^GSPC", auto.assign=FALSE)
sp$GSPC.Adjusted <- NULL
colnames(sp) <- gsub("^GSPC\\.","",colnames(sp))
sp$Number<-NA
sp$Number<-1:nrow(sp)
sp$OpCl <- OpCl(sp)
sp$ClHi <- HiCl(sp)
sp$LoCl <- LoCl(sp)
sp$LoHi <- LoHi(sp)
#### LAG
spLag <- lag(sp)
colnames(spLag) <- paste(colnames(sp),"lag",sep="")
sp <- na.omit(merge(sp, spLag))
### REGRESSION
f <- OpCl ~ Openlag + Highlag + OpCllag + ClHilag
OpClLM <- lm(f, data=sp)
#sp$OpClForecast <- NA
#sp$OpClForecast <- tail(fitted(OpClLM),1)
#####################################################
rolling.regression <- function(series) { …Run Code Online (Sandbox Code Playgroud) 我需要修改这个示例代码,以便将它与日常数据一起使用,我应该从这里和此处获取.据我所知,该示例中的代码适用于任何历史数据(或不是?),因此我的问题归结为以必要的格式(我的意思是每日或日内)加载初始数据的问题.
正如我也从这个问题的答案中理解的那样,不可能加载日内数据getSymbols().我试图将这些数据下载到我的硬盘驱动器中,然后使用一个read.csv()函数来获取它,但这种方法不能正常工作.最后,我在各种文章(例如这里)中找到了这个问题的解决方案,但是所有这些解决方案看起来都非常复杂和"人为".
所以,我的问题是如何从程序员的角度优雅而正确地将给定的日内数据加载到给定的代码中,而不重新发明轮子?
PS我对R和quantstrat中的时间序列分析很新,因此如果我的问题看起来很模糊,请告诉我你需要知道什么才能回答它.
quantmod ×10
r ×10
finance ×3
xts ×3
csv ×1
quantstrat ×1
quotes ×1
regression ×1
volatility ×1
zoo ×1