基于先进先出原则计算给定股票数据集的盈亏
基于先进先出(FIFO)原则计算股票盈亏
先进先出(FIFO)原则指先买入的股票优先被卖出,计算盈亏时需按此规则匹配买卖交易,核心步骤为:
- 按股票代码分组,单独计算每只股票的盈亏
- 对每只股票,按交易日期顺序整理买入记录,卖出时优先消耗最早的买入仓位
- 盈亏 = 总销售额 - 对应卖出仓位的总成本
示例交易数据集
| 日期 | 股票代码 | 数量 | 单价 | 交易类型 |
|---|---|---|---|---|
| 2022年7月7日 | REL2300PE | 200 | 50 | 买入 |
| 2022年7月7日 | IDBI2300PE | 200 | 50 | 卖出 |
| 2022年7月15日 | REL2300PE | 100 | 50 | 买入 |
| 2022年7月15日 | IDBI2300PE | 20 | 50 | 买入 |
| 2022年7月16日 | REL2300PE | 200 | 35 | 买入 |
| 2022年7月30日 | IDBI2300PE | 60 | 50 | 卖出 |
| 2022年7月30日 | REL2300PE | 450 | 45 | 卖出 |
| 2022年7月30日 | IDBI2300PE | 200 | 25 | 卖出 |
单只股票盈亏计算示例(REL2300PE)
- 计算总销售额:
450 × 45 = 20250美元 - 按FIFO规则匹配买入仓位计算总成本:
- 消耗第一笔买入:
200 × 50 = 10000美元 - 消耗第二笔买入:
100 × 50 = 5000美元 - 剩余需卖出数量:
450 - 200 - 100 = 150股,从第三笔买入中取对应数量:150 × 35 = 5250美元 - 总成本:
10000 + 5000 + 5250 = 20250美元
- 消耗第一笔买入:
- 盈亏计算:
20250 - 20250 = 0美元
IDBI2300PE盈亏计算
- 整理交易记录:
- 买入:2022年7月15日买入20股,单价50美元
- 卖出:2022年7月7日卖出200股;2022年7月30日卖出60股、200股
- 计算总销售额:
200×50 + 60×50 + 200×25 = 10000 + 3000 + 5000 = 18000美元
- 按FIFO规则计算对应成本:
- 仅有的买入仓位为20股,成本为
20×50 = 1000美元,其余卖出无对应买入仓位(注:7月7日的卖出属于无持仓空头交易,需按对应规则单独处理,此处仅基于现有买入数据计算)
- 仅有的买入仓位为20股,成本为
- 盈亏计算:
18000 - 1000 = 17000美元
内容的提问来源于stack exchange,提问作者Piyush Ranjan
相关产品推荐
相关产品推荐

