2016-08-07 11 views
0

私はRに比較的新しいです、そして、私が話題にできるほど多くを読みましたが、私が他の人に何を求めているのか分からないようです質問。1期間TSラグリターン(ROC)を模倣した株価変動率

TTRとROCを使用して12ヶ月間のデータを使用して変化率(運動量)を計算することを検討していますが、最近の月を無視したいと思います。言い換えれば、t-12までのt-2のROC(2016年1月を除く2016年1月12月の12月の勢い)を探しています。これはポートフォリオ構築文献の勢いを計算する際の基準です。

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

enter image description here

は、私が知っている、以下の私のコードは、しかし、私はいくつかのことを試してみましたし、彼らはエラーを与えている非常に簡単です。私は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") 

ご協力いただければ幸いです。

+0

な 'dput' http://stackoverflow.com/help/mcve –

+0

@ハック-Rなどの再生可能なフォーマットでデータを入力してください 申し訳ありませんあなたは何を求めているのか分かりません - 私は初心者ですので、あなたが望むと思うものを付けました。 'X < - Prices.df' 'のx $のDATE < - as.Date(Xの$日、形式= "%Y /%のM /%のD")' 'Y < - XTS(X [ (0、12、type = "discrete") ' –

答えて

0

lagrocとだけ使用してください。次のコードは、シミュレートされたデータ(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 
+0

ありがとうございます!ありがとうございました!それは明らかにたくさんの意味があります。私はばかげていました。どうもありがとう。 –

関連する問題