动力支点和收盘价

时间:2018-09-04 22:58:11

标签: dax powerpivot stockquotes

我正在尝试使用Power Pivot在任何时间点分析股票投资组合。

数据模型为:

  • 交易表以及买卖交易
  • historical_prices 表以及每只股票的收盘价
  • security_lookup 表,其中带有符号和有关股票的其他信息(无论是共同基金,行业,大盘股等)。

一对多关系将security_lookup中的符号列链接到transactions和history_prices表。

我可以通过执行sumx(交易,数量*价格)来获得正常工作的成本基础。但是,我无法获得当前持有资产的价值。我有一个称为“当前价格”的量度,该量度是根据

Current Price :=
CALCULATE (
    LASTNONBLANK ( Historical_prices[close], min[close] ),
    FILTER (
        Historical_Prices,
        Historical_prices[date] = LASTDATE ( historical_prices[date] )
    )
)

但是,当我尝试使用

查找证券的当前值时
Current Value = sumx(transactions,transactions[quantity]*[Current Price])

总数不准确。我希望能找到有关当前头寸价值的建议。最好使用sumx或迭代器函数,以使小计准确。

1 个答案:

答案 0 :(得分:0)

Current Value度量的问题在于,您正在[Current Price]表的行上下文中评估transactions(因为SUMX是迭代器),因此仅查看与该行关联的日期,而不是最后日期。更确切地说,该行的日期 是度量过滤条件中的最后一个日期。

最简单的解决方案可能是使用变量在迭代器外部计算Current Price,然后将其传递给常量,这样就不必担心行和过滤器上下文。

Current Value =
    VAR CurrentPrice = [Current Price]
    RETURN SUMX(transactions, transactions[quantity] * CurrentPrice)