先进先出股票交易 - 计算累积盈亏

问题描述

我想要一个 sql-server 查询来计算股票交易的累积盈亏(基于 FIFO 的计算)。

输入表:

EXECTIME share_name 数量 价格 买入/卖出
2013-01-01 12:25 abc 100 100 B
2013-01-01 12:26 abc 10 102 S
2013-01-01 12:27 abc 10 102 S
2013-01-01 12:28 abc 10 95 S
2013-01-01 12:29 abc 10 99 S
2013-01-01 12:30 abc 10 105 S
2013-01-01 12:31 abc 100 102 B
2013-01-01 12:32 abc 150 101 S

输出

EXECTIME 累计盈亏 连胜 连续亏损
2013-01-01 12:26 20 1 0
2013-01-01 12:27 40 1 0
2013-01-01 12:28 -10 0 1
2013-01-01 12:29 -20 0 2
2013-01-01 12:30 30 1 0
2013-01-01 12:32 -20 0 1

说明:

第一行 - 10 股以 102 卖出,以 100 买入。所以利润 = (102-100) * 10 = 20

第 6 行 - 150 股以 101 的价格出售, 50 个在 100 - 第一排购买(上面已经卖了 50 个,还剩 50 个) 在第 102 - 7 行购买了 100 个

150 * 101 - [(50 * 100)+(100 * 102)] = -50 累积 p/l = 30 + (-50) = -20

连胜 - 1 为阳性

连续亏损 - 1,2,... 连续亏损。获利后再重置

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)