从交易数据计算净值

时间:2013-02-11 22:06:05

标签: 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年至今。 所以计算值但我乘以份额* close = value。但那只适用于那一天。我有另一个脚本,可以在任何一天给我收盘价。

$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);

但这只能让我了解实际购买的日子。 最终目标是将其放在显示随时间增长(或下降)的图表中

我有更多的代码给你,但实际上我无法理解如何做到这一点。 并非它有所作为,但我正在使用网站的codeigniter框架

1 个答案:

答案 0 :(得分:0)

你错过了一块拼图。除非你永远购买并且从不出售,否则你需要某种方式来表明每天总和的实际持有量。这意味着了解所有变化 - 包括购买和销售。

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

  
      
  1. 更新馆藏表以反映每日所有权的所有权。然后你可以总结一切以获得总价值
  2.   
  3. 以某种方式跟踪销售情况。然后你就会知道要总结的是什么时期,你可以在每个和和之上循环日期 - 增量。
  4.   

由于您的第三个查询标题为Transactions并且包含某种action列,因此您必须在某处获得此数据。现在,您只需要获取日期范围,然后将每个值的总和相加。