问题描述
我想要一个 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 (将#修改为@)