1

関数 Return.calculate と Maxdrawdown 関数を使用して最大ドローダウンを計算するために、次のデータをzoo/xts/tseries オブジェクトに変換する方法は?

こんにちは友人私は、単一の csv で約 400 の株式の株式 (例: CENTURYTEX、AAPL、RIL など) 固有の EOD 価格を持っています。

最大ドローダウンを計算したい。リターンを計算するために私はしようとしています

ret=by[ddr3csv[,4],ddr3csv[,2],
                   function(x)Return.calculate(x,method="simple")]

「閉鎖」はサブセット化できません」というエラーが発生しています。

リターンが得られたら、最大ドローダウンを見つけるのは簡単です.エラーを探していますが、あまりわかりません.

rownum     name     code       date    price    readings

86916 CENTURYTEX 500040 11/04/2011 364.60     2994

86917 CENTURYTEX 500040 13/04/2011 376.70     2994

86918 CENTURYTEX 500040 15/04/2011 370.90     2994

86919 CENTURYTEX 500040 18/04/2011 365.85     2994
4

1 に答える 1

2

まず、( で変更する必要があるため[(

ret=by[ddr3csv[,4],ddr3csv[,2],
                   function(x)Return.calculate(x,method="simple")]

library(PerformanceAnalytics)
ret=by(ddr3csv[,4],ddr3csv[,2],FUN=
                   function(x)Return.calculate(x,method="simple"))

データがなければ、うまくできません。価格を長い形式で入力し、csv の列 2 を使用して異なる株式を分離していると思います。

編集

必要がある :

  • データをコードで分割する
  • グループごとに xts オブジェクトを作成する
  • drawdows コンポーネントを計算します。

    ## I read the data 
    ddr3csv <- read.table(text = 'rownum     name     code       date    price    readings
                                  86916 CENTURYTEX 500040 11/04/2011 364.60     2994
                                  86917 CENTURYTEX 500040 13/04/2011 376.70     2994
                                  86918 CENTURYTEX 500040 15/04/2011 370.90     2994
                                  86919 CENTURYTEX 500040 18/04/2011 365.85     2994',head=T)
    ## I coerce to Date , because xts needs numeric values as index
    ddr3csv$date<- as.Date(dat$date,format='%d/%m/%Y')
    ## I keep only computational columns (avoid naming/memory problems)
    dat <- ddr3csv[,c('code','date','price')]
    library(plyr)
    ddply(dat,.(code), function(x){
              x.xts <- xts(x$price,x$date)
             unlist(findDrawdowns (Return.calculate(x.xts,method="simple")))
    })
    

ここに私の結果

    code return from trough to length peaktotrough recovery
    1 500040      0    1      1  4      4            1        3
于 2013-02-27T05:05:41.647 に答える