DAX 累计 VAMI Return
DAX Cumulative VAMI Return
这是我的模型的简化版本:
我有几只基金和几只证券的每日 P/L(损益)数据。计算 % return 很容易 - 它是 P/L 除以期初 AUM(管理的资产)。但由于投资者的贡献,每个月的资产管理规模都会发生显着变化。因此,要获得 YTD return %,我需要计算累计 returns,其公式为(参见 here):
YtdReturn =
PRODUCTX ( MonthlyReturnTable, DIVIDE ( MonthlyReturn, OpeningAUM ) +1 ) -1
难的是我的P/L是日常水平。我成功创建了这个:
CompoundReturn:=
PRODUCTX (
ADDCOLUMNS (
VALUES ( tblDates[MonthYearNumber] ),
"PnL Total1", CALCULATE ( SUM ( PnL[TradingPnL] ) + SUM ( PnL[InterestDividendsPnL] ) ),
"Month_Opening_AUM1", CALCULATE ( VALUES ( Daily_AUM[MonthOpeningAUM] ) )
),
DIVIDE ( [PnL Total1], [Month_Opening_AUM1] ) + 1
)
- 1
效果很好:
但是,我想在 运行 YTD 的基础上执行此操作。我在将“内部”table 设置为 YTD 时遇到问题。我尝试用 CALCULATETABLE()
包围 VALUES()
以按 YTD 过滤,但没有用:
CompoundReturn :=
PRODUCTX (
ADDCOLUMNS (
CALCULATETABLE (
VALUES ( tblDates[MonthYearNumber] ),
DATESYTD ( tblDates[Date] )
),
"PnL Total1", CALCULATE ( SUM ( PnL[TradingPnL] ) + SUM ( PnL[InterestDividendsPnL] ) ),
"Month_Opening_AUM1", CALCULATE ( VALUES ( Daily_AUM[MonthOpeningAUM] ) )
),
DIVIDE ( [PnL Total1], [Month_Opening_AUM1] ) + 1
)
- 1
Excel中的结果不是运行return,而是个别的:
有什么想法吗?谢谢!
注:所有代码格式为daxformatter.com
在朋友的帮助下弄明白了。我需要将 CALCULATETABLE
放在 ADDCOLUMNS
之外:
CompoundReturn :=
PRODUCTX (
CALCULATETABLE (
ADDCOLUMNS (
VALUES ( tblDates[MonthYearNumber] ),
"PnL Total1", CALCULATE ( SUM ( PnL[TradingPnL] ) + SUM ( PnL[InterestDividendsPnL] ) ),
"Month_Opening_AUM1", CALCULATE ( VALUES ( Daily_AUM[MonthOpeningAUM] ) )
),
DATESYTD ( tblDates[Date] )
),
DIVIDE ( [PnL Total1], [Month_Opening_AUM1] ) + 1
)
- 1
这是我的模型的简化版本:
我有几只基金和几只证券的每日 P/L(损益)数据。计算 % return 很容易 - 它是 P/L 除以期初 AUM(管理的资产)。但由于投资者的贡献,每个月的资产管理规模都会发生显着变化。因此,要获得 YTD return %,我需要计算累计 returns,其公式为(参见 here):
YtdReturn =
PRODUCTX ( MonthlyReturnTable, DIVIDE ( MonthlyReturn, OpeningAUM ) +1 ) -1
难的是我的P/L是日常水平。我成功创建了这个:
CompoundReturn:=
PRODUCTX (
ADDCOLUMNS (
VALUES ( tblDates[MonthYearNumber] ),
"PnL Total1", CALCULATE ( SUM ( PnL[TradingPnL] ) + SUM ( PnL[InterestDividendsPnL] ) ),
"Month_Opening_AUM1", CALCULATE ( VALUES ( Daily_AUM[MonthOpeningAUM] ) )
),
DIVIDE ( [PnL Total1], [Month_Opening_AUM1] ) + 1
)
- 1
效果很好:
但是,我想在 运行 YTD 的基础上执行此操作。我在将“内部”table 设置为 YTD 时遇到问题。我尝试用 CALCULATETABLE()
包围 VALUES()
以按 YTD 过滤,但没有用:
CompoundReturn :=
PRODUCTX (
ADDCOLUMNS (
CALCULATETABLE (
VALUES ( tblDates[MonthYearNumber] ),
DATESYTD ( tblDates[Date] )
),
"PnL Total1", CALCULATE ( SUM ( PnL[TradingPnL] ) + SUM ( PnL[InterestDividendsPnL] ) ),
"Month_Opening_AUM1", CALCULATE ( VALUES ( Daily_AUM[MonthOpeningAUM] ) )
),
DIVIDE ( [PnL Total1], [Month_Opening_AUM1] ) + 1
)
- 1
Excel中的结果不是运行return,而是个别的:
有什么想法吗?谢谢!
注:所有代码格式为daxformatter.com
在朋友的帮助下弄明白了。我需要将 CALCULATETABLE
放在 ADDCOLUMNS
之外:
CompoundReturn :=
PRODUCTX (
CALCULATETABLE (
ADDCOLUMNS (
VALUES ( tblDates[MonthYearNumber] ),
"PnL Total1", CALCULATE ( SUM ( PnL[TradingPnL] ) + SUM ( PnL[InterestDividendsPnL] ) ),
"Month_Opening_AUM1", CALCULATE ( VALUES ( Daily_AUM[MonthOpeningAUM] ) )
),
DATESYTD ( tblDates[Date] )
),
DIVIDE ( [PnL Total1], [Month_Opening_AUM1] ) + 1
)
- 1