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框架你错过了一块拼图。除非你一直在买进而从不卖出,否则你需要某种方式来表明你每天的实际持有量。这意味着要知道所有的变化——包括买卖 两种方法(立即浮现在脑海中):
由于您的第三个查询标题为
事务
,并且包含某种类型的操作
列,因此您必须在某个地方有此数据。现在,您只需要获取日期范围,然后对每个范围的值求和。您可以发布更多具有所需结果的示例数据吗?我很困惑-您只提到了trnaActions表。。。这只会为您提供购买股票当天的数据。似乎你还需要一个定价表,上面有每天持有的每一股股票的收盘价数据。我迷路了。你的问题是什么?行动?那是什么?我们通灵了吗?是的,我的交易表上有每一个买入/卖出/分割。。。在他们的网站上,但目前我没有跟踪收盘价。所以我想我要做的是开始跟踪收盘价?我的意思是我可以在飞行中从YahooFinance API中提取它,这是我到目前为止一直在做的计算增益的工作。。。存储所有这些数据的最佳方式是什么?包含日期、符号和价格的SQL表?我已经可以看到这个表有很多接近15000的条目。这是一个问题吗?只要硬件保持不变,大小就不会成为问题。不过,15K算不了什么——假设您的索引正确。要么每天跟踪所有持有量,要么跟踪买卖,然后按日计算持有量。不过,无论哪种方式,你都需要知道结算成本。