0

株式購入の取引一覧があります。私はそこから純資産を計算しようとしています。表は次のように定義されています。

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

しかし、それは私に購入が実際に行われた日の価値を与えるだけです。最終的な目標は、これを時間の経過に伴う成長(または減少)を示すグラフに入れることです。

私はあなたのためにもっと多くのコードを持っていますが、文字通り私はそれを行う方法について私の心を包むことができません。違いがあるわけではありませんが、私はWebサイトにcodeigniterフレームワークを使用しています

4

1 に答える 1

0

パズルのピースが欠けています。あなたが永久に買い、決して売らないのでない限り、あなたはあなたが合計する毎日の実際の保有を示すための何らかの方法を必要とするでしょう。つまり、購入と販売の両方のすべての変更を知ることを意味します。

2つの方法(すぐに頭に浮かぶ):

  1. 持ち株テーブルを更新して、株式が所有されている毎日のすべての所有権を反映します。次に、すべてを合計して合計値を取得できます
  2. どういうわけか売りを追跡します。次に、合計する期間がわかり、それぞれの日付デルタをループして合計することができます。

3番目のクエリにはタイトルが付けられTransactionsており、ある種のaction列が含まれているため、このデータはどこかにある必要があります。ここで、日付範囲を取得してから、それぞれの値を合計する必要があります。

于 2013-02-11T23:48:47.853 に答える