Power BI中的计算时间加权收益

时间:2019-03-18 11:04:55

标签: group-by powerbi multiplication

我正在尝试计算股票投资组合的时间加权收益。公式是:

 Time weigthed return

我有以下数据:

Data for two stocks

Im计算Power Bi中的TWR(时间加权返回)为:

TWR = productx(tabel1; TWR denom / yield + 1)

灰色和蓝色标记/选择的字段是单独的单个股票。在这里,您可以看到灰色股票的TWR = 0,030561631和蓝色股票的TWR = 0,012208719,这对于从09.03.19到13.03.19的时间段是正确的。

我的问题是,当我尝试计算两支股票的投资组合的总折旧时,每行都要取乘积。在橙色字段中,我已经计算出Excel中的正确结果。但是在Power BI中,它采用了灰色和蓝色库存TWR的乘积:(0,0305661631 * 0,012208719)= 0,03143468,这是不正确的。

我想每个日期对两只股票的总和(两只股票的收益)/总和(两只股票的TWRD终结器),这样我就不会以两行结尾(每只股票一个),而是每个日期都有一个共同的数字为投资组合。

我已经按以下方式计算了列TWR单位/产量-1:    twr denom / yield-1 = CALCULATE(1 + sumx(tabel1; tabel1(yield)/ sumx(tabel1; tabel1 [TwrDenominator])))

Results from my Power Bi

如何解决此问题?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

这是您问题的一种解决方案,但它假定数据采用以下格式:

[Date] | [Stock] | [TWR] | [Yield]
-----------------------------------
[d1]   | X       | 12355 | 236
[d1]   | y       | 23541 | 36
[d2] ... etc.

即date不是表中的唯一值,尽管date-stock名称将是。

然后,您可以使用以下代码创建新的计算表:

Portfolio_101 = 
CalculateTable(
    Summarize(
        DataTable;
        DataTable[Date];
        "Yield_over_TWR"; Sum(DataTable[Yield])/Sum(DataTable[TWR_den])+1
    );
    Datatable[Stock] in {"Stock_Name_1"; "Stock_Name_2"}
)

然后在新的Portfolio_101中创建一个度量:

Return_101 = 
Productx(
    Portfolio_101;
    Portfolio_101[Yield_over_TWR]
)-1

如果将您的数据与下表结合起来,我已经创建了三个计算表,每个库存一个,另一个合并了第三个(Portfolio_103)。另外,我有一个日历表,该表在所有投资组合表之间具有1:1的关系。

Calculated TWR

希望这会有所帮助,否则让我知道我误解了您的地方。

干杯

奥斯卡