|
1, 先把交易日期按降序排,从最近的交易开始计算
2, 判断交易行为是卖出的(卖出的行为有七八种,比如下面的“对手最优价格卖”也是卖出,这里只有两种,就是“卖出”和“对手最优价格卖”)
3, 如果是卖出这两种交易行为,向下查找最近的第一笔相同证券代码交易,
4, 找到相同证券代码的交易后,判断交易行为是买入的(同样,买入的行为也有七八种,这张表“红股派息”和“买入”)
5, 找到相同证券代码,并且交易行为也是买入的,判断成交数量要大于等于卖出数量(例如:卖出1000股,找到的如果是大于等于1000,就取成交金额,然后用卖出的成交金额减),得到盈亏
6, 如果判断成交数量出现小于卖出数,说明这次卖出的股票不是一次买入的,(比如卖出2000股,如果找到的第一笔只有1000,那就是还要向以前日期查找)就继续向下查找,查到后,把第一次找到的成交数量,加起来,再判断成交数量是否大于等于卖出数,如果大于等于卖出数,就计算盈亏(找到的几次买入成交金额加起来,然后和卖出的成交金额相减)还是小于,第三次查找,一直把找到的几笔加起来满足大于等于卖出数,否则循环向下查找,如果最终到最后一行,找不到,就得出盈亏是零(肯定有找不到的情况,)
7,计算过的买入,要从列表中标示或扣除,否则下次可能又会重复使用,例如:
日期 证券代码 交易行为 成交数量 成交价 金额
5月30 600000 卖出 1000 13 13000
5月29 600000 卖出 1000 14 13000
5月20 600000 买入 1000 10 13000
5月10 600000 买入 1000 15 13000
5月30日卖出的找到的最近一次买入是5月20日买入的,应该是正确的。但5月29日向下查找最近一次买入还是5月20日买入就不正确了,应该扣掉计算过的,查找到5月10日买入才正确
交易的笔数是不定的,可能有几千笔,也可能有几万笔,随着时间增加,
如果这个列表不是一个人的,有很多人的交易,那就多一列,如姓名,那还要先判断(现在这张表是一个人的)
[ 本帖最后由 hufangbao 于 2011-6-2 08:14 编辑 ] |
|