2017-09-15 68 views
0

這裏是我的模型的簡化版本:DAX累計VAMI返回

我有P/L(損益)數據在日線級別的幾個基金和幾家證券。要計算回報率很容易 - 這是盈/虧除以初始資產管理(資產管理)。但是,由於投資者的貢獻,AUM每個月都會發生重大變化。因此,要獲得一個年累計回報率%,我需要計算的累積回報,爲此,公式(見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 returns

不過,我想這樣做,正在運行的YTD基礎上。我無法將「內部」表設置爲YTD。我想圍繞着VALUES()CALCULATETABLE()由年初至今的過濾,但沒有奏效:

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中的結果不是跑回報,但個別:

running compound returns

任何想法?謝謝!

注:daxformatter.com

+0

嘗試'TOTALYTD'公式。更多解釋在這裏:https://msdn.microsoft.com/en-us/library/ee634400.aspx –

回答

0

格式化所有代碼都想通了一個朋友的幫助。我需要將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