Voici une version simplifiée de mon modèle:DAX cumulatif VAMI Retour
J'ai données P/L (résultat) au niveau quotidien de plusieurs fonds et plusieurs titres. Pour calculer le% de retour est facile - c'est le P/L divisé par l'AUM d'ouverture (actifs sous gestion). Mais chaque mois l'AUM change de manière significative en raison des contributions des investisseurs. Donc, pour obtenir un retour de YTD%, je dois calculer les rendements cumulatifs, dont la formule est (voir here):
YtdReturn =
PRODUCTX (MonthlyReturnTable, DIVIDE (MonthlyReturn, OpeningAUM) +1) -1
La difficulté est que mon P/L est au niveau quotidien. J'ai créé avec succès ceci:
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
Cela fonctionne bien:
Cependant, je veux le faire sur une base de cumul annuel de fonctionnement. J'ai du mal à régler la table "interne" à YTD. J'ai essayé autour de la VALUES()
avec un CALCULATETABLE()
pour filtrer par YTD, mais n'a pas fonctionné:
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
Le résultat dans Excel est pas un retour de la course, mais individuelle:
Toutes les idées ? Merci!
Note: Tout le code formaté avec daxformatter.com
Essayez 'TOTALYTD' Formula. plus d'explication ici: https://msdn.microsoft.com/en-us/library/ee634400.aspx –