【问题标题】:Error with CAPM.beta.bear and TimingRatio in PerformanceAnalyticsPerformanceAnalytics 中的 CAPM.beta.bear 和 TimingRatio 错误
【发布时间】:2015-05-29 10:25:46
【问题描述】:

当我运行下面的代码时,我的 CAPM.beta.bull 函数正常工作,但 CAPM.beta.bear 和 TimingRatio 都返回错误

library(PerformanceAnalytics)
library(quantmod)

getSymbols("AAPL", from="2012-01-01", to="2015-01-01")
getSymbols("SPY", from="2012-01-01", to="2015-01-01")


stockbull = function(call){
CAPM.beta.bull(Ad(call), Ad(SPY) , Rf=0)
}

stockbear = function(call){
CAPM.beta.bear(Ad(call), Ad(SPY), Rf=0)
}

stocktiming = function(call){
TimingRatio(Ad(call), Ad(SPY) , Rf=0)
}

我正在运行 R 3.1.3,这是我产生的错误,非常感谢任何帮助。

> stockbull(AAPL)
[1] 0.3041228
> stockbear(AAPL)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
  0 (non-NA) cases
> stocktiming(AAPL)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
  0 (non-NA) cases

【问题讨论】:

    标签: r performanceanalytics


    【解决方案1】:

    大多数 PerformanceAnalytics 函数都使用股票收益,而不是价格,因此您需要先计算收益,然后将其传递给这些函数。例如,您的 stockbull 函数可能变为

    stockbull = function(call){
      Ra <- Return.calculate(Ad(call))
      Rb <- Return.calculate(Ad(SPY))
      CAPM.beta.bull(Ra, Rb , Rf=0)
    }
    

    其他功能的变化非常相似。通过这些修改,CAPM.beta 函数返回的值接近 1。这是合理的结果。

    【讨论】:

      猜你喜欢
      • 2012-11-20
      • 2018-02-20
      • 2014-05-08
      • 2020-02-11
      • 2017-11-28
      • 2012-10-20
      • 2015-11-17
      • 2012-07-12
      • 2017-12-20
      相关资源
      最近更新 更多