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