【发布时间】:2016-04-15 20:00:24
【问题描述】:
这就是我的 data.frame 的样子。最右边的列(性能)是我想要的列。
library(data.table)
dt <- fread('
Name FundName SharePrice TotalShares PurchaseDate Performance
John A 10 500 2016-01-01 0%
John A 20 1000 2016-02-01 20%
John A 10 1500 2016-03-01 -25%%
John B 30 500 2016-04-01 -18.18%
John B 60 1000 2016-05-01 4.16%
Tom A 10 500 2016-01-01 0%
Tom A 20 1000 2016-02-01 20%
Tom A 10 1500 2016-03-01 -25%%
Tom B 30 500 2016-04-01 -18.18%
Tom B 60 1000 2016-05-01 4.16%
')
- 对于第一行,John 以 10 美元的价格购买了 500 股。所以他花了5000块钱,他当天就可以卖掉他的头寸5000块钱。所以第一行的性能是 0%。
- 对于第二行,John 总共花费了 (10*500)+(20*1000)=25000,他可以以 (20 * 1500 股) 或 30000 美元的价格卖出他的头寸。所以他的累计表现是(30000-25000)/25000或20%。
- 第三排他总共花了(10*500+20*1000+10*1500)=40000块钱,可以卖到(10*3000股)或30000块钱,因此业绩为-25%。
- 现在第 4 行有两个基金(A&B);他仍然可以以 30000 的价格出售他的 A 头寸,因为我假设 A 的价格仍然是每股 10 美元,他以 (30*500)=15000 的价格买入了他的新 B 头寸。因此,他可以以 (30000+15000)=45000 的价格卖出 A 和 B 的头寸,但到目前为止他花费了 (40000+15000) 或 55000。所以他在第 4 排的累积表现是 (55000-45000)/55000 或 -18.18%。
我希望这是有道理的。在尝试计算累积表现时,我正在努力跟踪这两种基金的价格。感谢您的帮助。
【问题讨论】:
标签: r data.table dplyr zoo