我有股票交易清单。我正在计算净值。表格定义如下:
ID | DATE | SYMBOL | SHARES | PRICE | CLOSE
-------------------------------------------------
1 | 2010-06-01 | T | 100 | 24.35 | 24.15
2 | 2010-07-01 | RSO | 10 | 6.25 | 6.40
......
从2010年到今天。所以要计算价值,但我乘以股份 * 接近=价值。但这只适用于那天。我有另一个脚本,给我收盘价在任何一天。
$history = getClose($symbol, $daterange)
返回一个多维数组,其中符号包含如下所示的日期
$history['symbol']['20100601'] = $price
$history['symbol']['20100701'] = $price
我知道这必须很简单,我有拼图的所有部分,我只是想不出如何把它放在一起。我也有一个SQL语句,它给出了我在某一天的所有持股。
SELECT symbol, sum(shares) AS shares, sum(shares * close) AS value
FROM Transactions
WHERE (action<> 5) AND date <='2010-06-01'
GROUP BY symbol
HAVING (sum(shares) > 0);
但这只给了我实际购买日期的价值。最终的目标是将其放入图表中,显示随时间的增长(或下降)
我有更多的代码给你,但字面上我不能 Package 我的头脑周围如何做。并不是说它有什么不同,但我正在使用codeigniter框架的网站
1条答案
按热度按时间4ngedf3f1#
你少了一块拼图。除非你永远都在买进,永远不卖出,否则你需要某种方式来表明你每天的实际持有量。这意味着知道所有的变化-无论是买和卖。
两种方式(立即想到):
1.更新持股表,以反映拥有股票的所有日所有权。然后你可以对所有的东西求和得到总值
1.以某种方式跟踪销售。然后您就知道要对哪些时段求和,您可以循环对each和sum的日期增量进行计算。
由于第三个查询的标题是
Transactions
,并且包含某种action
列,因此您必须在某个地方拥有此数据。现在,您只需要获取日期范围,然后对每个日期范围的值求和。