【问题标题】:How to automate the collecting of stock info via quantmod如何通过 quantmod 自动收集股票信息
【发布时间】:2020-07-10 09:22:53
【问题描述】:

虽然我可以手动使用 quantmod 逐个股票地收集波动率,例如:

library(quantmod)
library(TTR)
getSymbols("SPY",from="2010-01-02", to="2020-01-02")
vol=volatility(SPY,n=252,N=252,calc="close"),

这需要我手动将符号(在上面的例子中为SPY)复制到波动率函数。

我一直在尝试为符号向量生成波动率,但如果不手动将每个符号输入到波动率函数中,则无法使其工作。

如何将 xts zoo 输出从 getsymbols 传递到波动函数?

【问题讨论】:

    标签: xts zoo quantmod volatility


    【解决方案1】:

    创建一个将保存下载的股票数据的新环境。循环遍历该环境中的对象,然后在每个对象上运行 volatility 函数。将结果保存在列表中,以免覆盖值。然后取消列出。

    stockEnv <- new.env()
    
    stocks <- c("AAPL", "AMZN", "FB", "GOOG", "JNJ")
    
    getSymbols(stocks, src='yahoo', env=stockEnv)
    
    vol <- vector("list", length = length(stocks))
    names(vol) <- stocks
    
    for (stock in ls(stockEnv)){
      x <- get(stock, envir = stockEnv)
      if(is.xts(x)) vol[[stock]] <- volatility(x,n=252,N=252,calc="close")     
    }
    
    vol <- do.call(cbind, vol)
    
    tail(vol)
                    AAPL      AMZN        FB      GOOG       JNJ
    2020-04-02 0.3942074 0.2847975 0.3764976 0.3471883 0.2944110
    2020-04-03 0.3944644 0.2847008 0.3773450 0.3477343 0.2944769
    2020-04-06 0.4028379 0.2884106 0.3840943 0.3564780 0.2973116
    2020-04-07 0.4030194 0.2883778 0.3843052 0.3564362 0.2977434
    2020-04-08 0.4037249 0.2887164 0.3856355 0.3569687 0.3005816
    2020-04-09 0.4036574 0.2887087 0.3856682 0.3569642 0.3009180
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多