我試圖獲得在特定時間內持有特定資產的時間系列回報。計算一段時間內的回報
我的數據框看起來是這樣的:
Date Price
1998-01-01 20
1998-01-02 22
1998-01-03 21
1998-01-04 25
...
1998-01-20 25
1998-01-21 19
1998-01-21 20
....
1998-02-01 30
1998-02-02 28
1998-02-03 25
1998-02-04 26
etc.
我有1個觀察每一天,我的時間序列從1998 - 1999年去。
我現在想要做的是計算20天內持有我的資產的回報(即在第一天買入並在第20天賣出),並且每天都這樣做。所以我想這個計算:
1.day:返回(20天)=日誌(價格(T = 20)/價格(T = 0)),
2.day:返回(20天) = LOG(價格(T = 21)/價格(T = 1)),
3.day:返回(20天)=日誌(價格(T = 22)/價格(T = 2))
等,即在我的樣本中每天都這樣做。
所以,我得到的數據幀應該是這樣的:
Date Return
1998-01-01 0.2
1998-01-02 0.4
1998-01-03 0.6
1998-01-04 0.1
...
1998-01-20 0.1
1998-01-21 0.2
1998-01-21 0.5
....
1998-02-01 0.1
1998-02-02 0.2
1998-02-03 0.5
1998-02-04 0.01
etc.
是否有R A的方式來表達:取前20點的觀測,計算回報率。觀察2-21,計算回報。觀察3-22,計算回報等?
我完全卡住了,希望得到一些幫助。謝謝! Dani
我想你想''k'作爲''lag'用於'diff'函數,而不是'log'函數的'base'。簡單的括號轉換將做到這一點。 – shabbychef 2011-08-27 22:53:34
謝謝,現在修復 – 2011-08-29 00:05:18