2

以下のコードを実行すると、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
4

1 に答える 1

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 に近い値を返します。これは妥当な結果です。

于 2015-03-25T21:16:28.873 に答える