如何计算加密货币钱包剩余持仓币种的正确平均买入价格
加密货币持仓平均买入价计算方法
你需要采用**先进先出(FIFO)**规则计算持仓成本,不能直接对历史所有买入记录求平均,核心逻辑是卖出操作优先抵消最早买入的份额,仅未被卖出的剩余买入持仓参与当前的成本计算。
直接全量平均的错误原因:已经被卖出的买入份额不再属于当前持仓,不应纳入当前持仓的成本计算。
具体计算步骤
- 步骤1:筛选出你要计算的指定币种的全部交易,按交易时间正序排序(最早的交易排在最前)
- 步骤2:计算当前净持仓量:
sum(所有买入数量) - sum(所有卖出数量),对应示例中的0.74915977 - 步骤3:从最晚的买入记录开始倒序累加买入数量,直到累加总和刚好等于当前净持仓量,截取这些对应的买入记录
- 步骤4:平均买入价 =
sum(截取的买入记录的(买入数量 * 买入单价)) / 当前净持仓量
示例验证
你给出的案例中,最早的多笔买入份额已经被后续的卖出操作全部抵消,当前剩余持仓全部来自最后一批单价为133.15 EUR的买入记录,因此最终计算得到的平均持仓价就是133.15 EUR,而非全量买入记录的平均价116.93 EUR。
Google Sheet 实现参考
如果你的交易表表头为:A列交易时间、B列币种、C列操作类型(buy/sell)、D列交易数量、E列交易单价,要计算币种BTC的平均持仓价,可按以下思路实现:
- 计算净持仓:
=SUMIFS(D:D,B:B,"BTC",C:C,"buy") - SUMIFS(D:D,B:B,"BTC",C:C,"sell") - 新增辅助列逐笔记录买入份额的剩余持仓量,抵扣完所有卖出量后,将剩余有持仓的买入记录按上述公式计算平均价即可,复杂场景可配合自定义函数批量处理。
内容的提问来源于stack exchange,提问作者DarkLite1
相关产品推荐
相关产品推荐

