0

私はRに比較的慣れておらず、トピックについてできる限り読んでいますが、他の質問で探しているものを見つけることができないようです.

毎月のデータを使用して、TTR と ROC を使用して 12 期間の変化率 (モメンタム) を計算しようとしていますが、最新の月は無視したいと思います。言い換えれば、t-2 から t-12 までの ROC を探しています (2016 年 1 月 2016 年 1 月を除く株式の 12 か月の勢い)。これは、ポートフォリオ構築に関する文献でモメンタムを計算する際の標準です。

私のデータは、南アフリカ証券取引所 (JSE) に上場されているすべての株式です。日付ヘッダーは 1 列目 (つまり、日付は行の変数) で、在庫は後続の列に表示されます。

ここに画像の説明を入力

以下のコードは非常に簡単ですが、いくつか試してみたところ、エラーが発生しました。20 年間で約 250 の株式 (列) があるため、観測ごとに新しいラグ変数を作成することはお勧めできません。

x <- Prices.df 
x$DATE <- as.Date(x$DATE, format = "%Y/%m/%d") 
y <- xts(x[,-1], order.by = x$DATE) library(TTR) 
roc <- ROC(y, n = 12, type = "discrete")

どんな助けでも大歓迎です。

4

1 に答える 1

0

を使用するだけlagですroc。次のコードは、シミュレートされたデータ (18 期間と 2 つの資産) で機能します。

set.seed(123) # to reproduze the same results
x <- data.frame(matrix(rnorm(18*2,100,2),ncol=2)) 
x$DATE <- seq.Date(as.Date("2000/01/01"),length.out = 18,by="1 month") 
x <- x[,c(3,1,2)]
library(TTR) 
library(xts)
y <- xts(x[,-1], order.by = x$DATE) 

roc <- ROC(y, n = 12, type = "discrete")

cbind(y,lag(roc))

                  X1        X2         X1.1         X2.1
1999-12-31  98.87905 101.40271           NA           NA
2000-01-31  99.53965  99.05442           NA           NA
2000-02-29 103.11742  97.86435           NA           NA
2000-03-31 100.14102  99.56405           NA           NA
2000-04-30 100.25858  97.94799           NA           NA
2000-05-31 103.43013  98.54222           NA           NA
2000-06-30 100.92183  98.74992           NA           NA
2000-07-31  97.46988  96.62661           NA           NA
2000-08-31  98.62629 101.67557           NA           NA
2000-09-30  99.10868 100.30675           NA           NA
2000-10-31 102.44816  97.72373           NA           NA
2000-11-30 100.71963 102.50763           NA           NA
2000-12-31 100.80154 100.85293           NA           NA
2001-01-31 100.22137  99.40986  0.019442887 -0.005421782
2001-02-28  98.88832 101.79025  0.006848733  0.003588329
2001-03-31 103.57383 101.75627 -0.041012460  0.040115718
2001-04-30 100.99570 101.64316  0.034279755  0.022018156
2001-05-31  96.06677 101.37728  0.007352244  0.037725848
于 2016-08-07T20:25:34.017 に答える