You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于股票交易表中Realised Profit or Loss、Unrealised P&L及股票盈亏贡献measure的创建问询

关于股票交易表中Realised Profit or Loss、Unrealised P&L及股票盈亏贡献Measure的创建问询

Hey there! Great to hear you've picked up a lot with Sam's help—let's tackle these P&L calculations step by step, all using measures (no calculated columns needed, just like you asked!).

1. 已实现盈亏(Realised P&L)度量值

已实现盈亏只针对完成买卖配对的股票,也就是你卖出份额对应的盈亏。我们用DAX做先进先出(FIFO)匹配买卖交易,不用额外计算列:

Realised P&L = 
VAR SellTransactions = FILTER(Tradebook, Tradebook[Trade Type] = "sell")
VAR BuyTransactions = FILTER(Tradebook, Tradebook[Trade Type] = "buy")
RETURN
SUMX(
    SellTransactions,
    // 计算卖出收入
    SellTransactions[Quantity] * SellTransactions[Price]
    // 匹配同一只股票、早于卖出日期的买入成本(FIFO逻辑)
    - SUMX(
        FILTER(
            BuyTransactions,
            BuyTransactions[Symbol] = SellTransactions[Symbol]
            && BuyTransactions[Trade Date] <= SellTransactions[Trade Date]
        ),
        BuyTransactions[Quantity] * BuyTransactions[Price]
    )
)

注:这个逻辑优先扣减最早买入的份额成本,和大多数交易平台的计算规则一致,如果你需要其他匹配规则(比如后进先出),可以调整过滤条件。

2. 未实现盈亏(Unrealised P&L)度量值

未实现盈亏针对仍持有的股票,我们先计算剩余持仓量,再用对应股票的最晚交易价作为当前价核算:

Unrealised P&L = 
VAR CurrentPrices = 
    SUMMARIZE(
        Tradebook,
        Tradebook[Symbol],
        "Latest Price", MAXX(FILTER(Tradebook, Tradebook[Symbol] = EARLIER(Tradebook[Symbol])), Tradebook[Price])
    )
VAR TotalBuyQty = SUMX(FILTER(Tradebook, Tradebook[Trade Type] = "buy"), Tradebook[Quantity])
VAR TotalSellQty = SUMX(FILTER(Tradebook, Tradebook[Trade Type] = "sell"), Tradebook[Quantity])
VAR HeldQty = TotalBuyQty - TotalSellQty
RETURN
IF(
    HeldQty > 0,
    // 持仓市值减去总买入成本
    HeldQty * LOOKUPVALUE(CurrentPrices[Latest Price], CurrentPrices[Symbol], SELECTEDVALUE(Tradebook[Symbol]))
    - SUMX(FILTER(Tradebook, Tradebook[Trade Type] = "buy"), Tradebook[Quantity] * Tradebook[Price]),
    0 // 无持仓时未实现盈亏为0
)

如果你有单独的实时价格表,把CurrentPrices部分替换成引用该表的价格即可,结果会更准确。

3. 股票盈亏贡献度量值(用于Treemap)

要做Treemap展示每个股票的总盈亏贡献,直接把已实现和未实现盈亏加总即可,这个度量值会自动聚合单只股票的整体盈亏:

Total P&L Contribution = [Realised P&L] + [Unrealised P&L]

把这个度量值拖到Treemap的「值」区域,再将Symbol拖到「类别」区域,就能直观看到每只股票对总盈亏的贡献占比——不管是盈利还是亏损的股票都会展示,完全满足你的需求。

备注:内容来源于stack exchange,提问作者Joker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 13:09:51