标签: quantmod

改进功能以从R中获取谷歌的股票新闻数据

我已经编写了一个函数来抓取并解析谷歌针对给定股票代码的新闻数据,但我确信有一些方法可以改进.对于初学者,我的函数返回GMT时区中的一个对象,而不是用户的当前时区,如果传递的数字大于299,则会失败(可能是因为google每个库存只返回300个故事).这有点回应我自己关于堆栈溢出的问题,并且在很大程度上依赖于这篇博文.

tl;博士:我怎样才能改进这个功能?

 getNews <- function(symbol, number){

    # Warn about length
    if (number>300) {
        warning("May only get 300 stories from google")
    }

    # load libraries
    require(XML); require(plyr); require(stringr); require(lubridate);
    require(xts); require(RDSTK)

    # construct url to news feed rss and encode it correctly
    url.b1 = 'http://www.google.com/finance/company_news?q='
    url    = paste(url.b1, symbol, '&output=rss', "&start=", 1,
               "&num=", number, sep = '')
    url    = URLencode(url)

    # parse xml tree, get item nodes, extract data and return data frame
    doc   = …
Run Code Online (Sandbox Code Playgroud)

timezone r google-finance xts quantmod

6
推荐指数
1
解决办法
2755
查看次数

quantmod add_TA和chart_Series的问题 - 调用下一个add_TA后,行和文本消失

我正在使用新的chart_Series,add_TA非常多.它对我很有效,我发现它非常有用.

我想在图表上添加一些东西(水平线和一些文字).这里出现了问题.正确绘制水平线和文本后,如果我调用后续文件,它们就会消失add_TA...请参阅下面的示例代码,它会重现问题:

library(quantmod)

getSymbols("SPY")

dev.new()
chart_Series(SPY)
add_TA(ADX(HLC(SPY))$ADX)
abline(h=15, col="red")
abline(h=35, col="green")
text(10, 7, "Text and horizontal lines disappear after next add_TA is called",
  col="blue", cex=0.8, adj = c(0,0))
# run the code up to this point (including text(...
# see how horizontal lines drawn with abline and text is displayed correctly
# now run the last line by adding additional TA and you will see that lines
# and text disappears
add_TA(DVI(Cl(SPY))$dvi)
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?

编辑:如何使这项工作(根据下面的约书亚评论:正在重绘绘图对象(chob)时重绘行和文本)?

finance r quantmod

6
推荐指数
1
解决办法
1530
查看次数

quantmod barChart(或chartSeries)格式化选项

我刚开始玩quantmod包.然而,文档非常稀疏(也许可以理解,因为它是OSS).

我目前正在使用barChart()这是一个很好的包装图表系列()并完成我想要的大部分,但它产生的默认图表并不是我想要的.具体来说,我想调整barChart()生成的图表以满足我的需求 - 但是,由于我是新手,我不知道我的"调整"是否可以作为包装barChart()的选项提供,或者如果我需要使用特定参数直接调用chartSeries().

我一直在试图做以下事情:

  1. 将barChart()生成的图表右上角的可怕{开始日期}/{结束日期}文本替换为我自己选择的文本

  2. 指定要在X轴上使用的格式(例如,仅显示世纪的最后两位数字.即'98,'99,'00,'01等)

  3. "强制"顶部图表和底部图表使其Y值打印在图表的左侧

  4. 在底部图表中添加一个aditional系列

  5. 底部图表使用不同的上/下颜色(默认情况下,使用相同的上/下颜色作为顶部和底部图表)

  6. 仅绘制顶部图表(无底部图表)

  7. 为顶部图表指定X轴,Y轴网格线间距,底部图表

  8. 将图像写入替代输出(例如png图像或pdf文档)而不是图形设备

任何人都可以帮助上述任何(或全部)吗?

r quantmod

6
推荐指数
1
解决办法
2133
查看次数

ggplot2:突出显示图表区域

我正在使用一些时间序列数据,并希望在某些条件成立时突出显示图表区域.例如:

require(ggplot2)
require(quantmod)
initDate <- "1993-01-31"
endDate <- "2012-08-10"
symbols <- c("SPY")
getSymbols(symbols, from=initDate, to=endDate, index.class=c("POSIXt","POSIXct"))
spy<-SPY$SPY.Adjusted
spy$sma<-SMA(spy$SPY.Adjusted,200)
spy<-spy[-(1:199),] 
spy<-as.data.frame(spy)
ggplot(spy,aes(x=index(spy),y=spy$SPY.Adjusted))+geom_line()+geom_line(aes(x=index(spy),y=spy$sma))
Run Code Online (Sandbox Code Playgroud)

上面的代码绘制了数据,但是如何在高于sma的情况下突出显示该部分?这个问题类似于如何突出情节的时间范围?,但那是手动的.ggplot2中是否有一个用于条件绘图的函数?

r ggplot2 xts quantmod

6
推荐指数
1
解决办法
3242
查看次数

另一种Quantmod ZigZag叠加

我目前正在使用quantmodZigZag叠加层,我注意到它的计算方式与原始叠加层略有不同.我已经在使用ZigZag(5%)和使用不同程序的RDWR 的以下图片中展示了差异quantmod.正如你所看到的那样,quantmod它缺少重要的峰值和高点.使用StockCharts时,您也可以非常清楚地看到差异.

我认为这是因为quantmod趋势顺畅.该算法应使用高值和低值,而不仅仅是平均价格或其他回归.我想知道是否quantmod或者可能TTR提供一个替代的ZigZag覆盖层,它将产生所需的输出(如图的上半部分所示).

谢谢.

用于显示quantmod图片中输出的代码是

s<-get(getSymbols('rdwr'))["2012-07::"]
chart_Series(s)
add_TA(ZigZag(s,5),on=1)
Run Code Online (Sandbox Code Playgroud)

r quantmod

6
推荐指数
1
解决办法
1395
查看次数

如何处理Quantmod中雅虎财务代码中的连字符

执行以下命令时,自动收报机HM-B.ST中的连字符被解释为减号.我试图将xts对象重命名为其他东西,但没有成功.有人知道解决方案吗?

>library(quantmod)
>getSymbols("HM-B.ST")
>chartSeries(HM-B.ST)
Error in inherits(x, "xts") : object 'HM' not found
Run Code Online (Sandbox Code Playgroud)

r quantmod

6
推荐指数
1
解决办法
786
查看次数

如何将热图添加到quantmod :: chart_Series?

我想在quantmod :: chart_Series()下面绘制热图.如何将以下热图添加到chart_Series(或xts :: plot.xts):

library(quantmod)

# Get data fro symbol from Google Finance
symbol <- "SPY"
src <- "google"
from <- "2017-01-01"
symbolData <- getSymbols(symbol, src=src, from=from, auto.assign=FALSE)

# Calculate simple returns
symbolData.ret <- ROC(Cl(symbolData), type="discrete")

# Calculate lagged autocorrelations (Pearson correlation for each value of lag)
nLags <- 100
averageLength <- 3
symbolData.laggedAutocorr <- matrix(0, nLags, NROW(symbolData.ret))
for (lag in 2: nLags) {
    # Set the average length as M
    if (averageLength == 0) M <- lag
    else …
Run Code Online (Sandbox Code Playgroud)

r xts quantmod

6
推荐指数
1
解决办法
225
查看次数

使用MySQL作为quantmod getSymbols的缓存

我一直在使用quantmods getSymbols函数,并希望减少外部数据提供程序的负载,并减少因网络延迟而执行更长代码循环所需的时间.

理想的是一个获取符号列表(如getSymbols)的函数,从'setSymbolLookup'中配置的提供程序下载它们并将它们保存在MySQL数据库中,以便以后使用getSymbols.MySQL轻松检索.

如果另一个功能(或同一个功能)仅允许下载自上次更新以来的差异,则会产生重大的好处.

或者,如果在本地MySQL数据库/缓存中尚不存在符号,则下载符号的代理类型也是好的.

有没有人开发过这样的东西,或者遇到过关于如何做的任何文档?我一直在搜索,但我能得到的最接近的是关于如何使用MySQL作为输入源的一些问题.

提前致谢!

r quantmod

5
推荐指数
0
解决办法
646
查看次数

quantmod :: chart_Series()bug?

我想使用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)

finance r xts quantmod

5
推荐指数
1
解决办法
1262
查看次数

将日内数据加载到R中以使用quantmod处理它

我需要修改这个示例代码,以便将它与日常数据一起使用,我应该从这里此处获取.据我所知,该示例中的代码适用于任何历史数据(或不是?),因此我的问题归结为以必要的格式(我的意思是每日或日内)加载初始数据的问题.

正如我也从这个问题的答案中理解的那样,不可能加载日内数据getSymbols().我试图将这些数据下载到我的硬盘驱动器中,然后使用一个read.csv()函数来获取它,但这种方法不能正常工作.最后,我在各种文章(例如这里)中找到了这个问题的解决方案,但是所有这些解决方案看起来都非常复杂和"人为".

所以,我的问题是如何从程序员的角度优雅而正确地将给定的日内数据加载到给定的代码中,而不重新发明轮子?

PS我对R和quantstrat中的时间序列分析很新,因此如果我的问题看起来很模糊,请告诉我你需要知道什么才能回答它.

csv r quantmod yahoo-finance quantstrat

5
推荐指数
1
解决办法
2268
查看次数

标签 统计

quantmod ×10

r ×10

xts ×4

finance ×2

csv ×1

ggplot2 ×1

google-finance ×1

quantstrat ×1

timezone ×1

yahoo-finance ×1