Php 根据交易数据计算净值

Php 根据交易数据计算净值,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有购买股票的交易清单。我正试图从中计算净值。 表定义如下: 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年开始。 为

我有购买股票的交易清单。我正试图从中计算净值。 表定义如下:

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);
选择符号,求和(共享)作为共享,求和(共享*关闭)作为值
来自交易
其中(行动5)和日期0);
但这只给了我实际购买日期的价值。 最终的目标是将其放在一张图表中,显示随时间的增长(或下降)

我有更多的代码给你,但从字面上说,我不能围绕如何做我的心。
这并不是说它有什么不同,但我在网站上使用codeigniter框架

你错过了一块拼图。除非你一直在买进而从不卖出,否则你需要某种方式来表明你每天的实际持有量。这意味着要知道所有的变化——包括买卖

两种方法(立即浮现在脑海中):

  • 更新holdings表,以反映每天持有股票的所有所有权。然后你可以把所有的东西加起来,得到总价值
  • 以某种方式跟踪销售情况。然后,您将知道要求和的时段,并且可以循环每个和和的日期增量

  • 由于您的第三个查询标题为
    事务
    ,并且包含某种类型的
    操作
    列,因此您必须在某个地方有此数据。现在,您只需要获取日期范围,然后对每个范围的值求和。

    您可以发布更多具有所需结果的示例数据吗?我很困惑-您只提到了trnaActions表。。。这只会为您提供购买股票当天的数据。似乎你还需要一个定价表,上面有每天持有的每一股股票的收盘价数据。我迷路了。你的问题是什么?行动?那是什么?我们通灵了吗?是的,我的交易表上有每一个买入/卖出/分割。。。在他们的网站上,但目前我没有跟踪收盘价。所以我想我要做的是开始跟踪收盘价?我的意思是我可以在飞行中从YahooFinance API中提取它,这是我到目前为止一直在做的计算增益的工作。。。存储所有这些数据的最佳方式是什么?包含日期、符号和价格的SQL表?我已经可以看到这个表有很多接近15000的条目。这是一个问题吗?只要硬件保持不变,大小就不会成为问题。不过,15K算不了什么——假设您的索引正确。要么每天跟踪所有持有量,要么跟踪买卖,然后按日计算持有量。不过,无论哪种方式,你都需要知道结算成本。