codeigniter 从交易数据计算净值

cbeh67ev  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(99)

我有股票交易清单。我正在计算净值。表格定义如下:

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框架的网站

4ngedf3f

4ngedf3f1#

你少了一块拼图。除非你永远都在买进,永远不卖出,否则你需要某种方式来表明你每天的实际持有量。这意味着知道所有的变化-无论是买和卖。
两种方式(立即想到):
1.更新持股表,以反映拥有股票的所有日所有权。然后你可以对所有的东西求和得到总值
1.以某种方式跟踪销售。然后您就知道要对哪些时段求和,您可以循环对each和sum的日期增量进行计算。
由于第三个查询的标题是Transactions,并且包含某种action列,因此您必须在某个地方拥有此数据。现在,您只需要获取日期范围,然后对每个日期范围的值求和。

相关问题