Modified Dietz method: Difference between revisions

Content deleted Content added
m Origin: + wikilink for IRR
 
(5 intermediate revisions by 3 users not shown)
Line 1:
{{Short description|Historical performance of an investment portfolio}}
The '''modified Dietz method'''<ref name="Dietz1966">{{cite book
|author=Peter O. Dietz
Line 183 ⟶ 184:
There are no flows, so the gain or loss is:
 
:{{nowrap begin}}{{link if exists|end value}} - {{link if exists|start value}} = 1,125,990 - 1,128,728 = -2−2,738 {{link if exists| HKD}}{{nowrap end}}
 
and the average capital equals the start value, so the modified Dietz return is:
 
:{{nowrap begin}}{{sfrac|{{link if exists|gain or loss}}|{{link if exists|average capital}}}} = {{sfrac|-2−2,738|1,128,728}} = -0−0.24 % 2 d.p.{{nowrap end}}
 
===Contributions - when not to adjust the holding period===
Line 219 ⟶ 220:
 
:{{nowrap begin}}{{link if exists|average capital}}{{nowrap end}}
::{{nowrap begin}}= {{link if exists|start value}} - {{link if exists|time weight}} &times; {{link if exists|outflow amount}}{{nowrap end}}
::{{nowrap begin}}= 10,000 - {{sfrac|1|4}} &times; $8,000{{nowrap end}}
::{{nowrap begin}}= 10,000 - $2,000{{nowrap end}}
::{{nowrap begin}}= $8,000{{nowrap end}}
 
The average capital of the shares over the last quarter requires no calculation, because there are no flows after the beginning of the last quarter. It is the $8,000 invested in the shares. However, the average capital in the shares over the whole year is something else. The start value of the shares at the beginning of the year was zero, and there was an inflow of $8,000 at the beginning of the last quarter, so:
:{{nowrap begin}}{{link if exists|average capital}}{{nowrap end}}
::{{nowrap begin}}= {{link if exists|start value}} - {{link if exists|time weight}} &times; {{link if exists|outflow amount}}{{nowrap end}}
::{{nowrap begin}}= 0 + {{sfrac|1|4}} &times; $8,000{{nowrap end}}
::{{nowrap begin}}= $2,000{{nowrap end}}
Line 300 ⟶ 301:
There are sometimes other difficulties when decomposing portfolio returns, if all transactions are treated as occurring at a single point during the day.
 
For example, consider a fund opening with just $100 of a single stock that is sold for $110 during the day. During the same day, another stock is purchased for $110, closing with a value of $120. The returns on each stock are 10% and 120/110 - 1 = 9.0909% (4 d.p.) and the portfolio return is 20%. The asset weights ''w<sub>i</sub>'' (as opposed to the time weights ''W<sub>i</sub>'') required to get the returns for these two assets to roll up to the portfolio return are 1200% for the first stock and a negative 1100% for the second:
 
:w*10/100 + (1-w)*10/110 = 20/100 → w = 12.
 
Such weights are absurd, because the second stock is not held short.
Line 322 ⟶ 323:
:At the end of Day 40, the remaining 20 shares are worth 12.50 dollars per share
 
The gain or loss is end value - start value + outflow:
 
:<math>20 \times 12.50 - 100 \times 10 + 80 \times 15</math>
Line 452 ⟶ 453:
==Java method for modified Dietz return==
<syntaxhighlight lang="java">
private static double modifiedDietz (double emv, double bmv, double cashFlow[], int numCD, int numD[]) {
 
/* emv: Ending Market Value
Line 467 ⟶ 468:
 
if (numCD <= 0) {
throw new ArithmeticException ("numCD <= 0");
}
 
for (int i = 0; i < cashFlow.length; i++) {
if (numD[i] < 0) {
throw new ArithmeticException ("numD[i]<0 , " + "i=" + i);
}
weight[i] = (double) (numCD - numD[i]) / numCD;
Line 478 ⟶ 479:
 
double ttwcf = 0; // total time weighted cash flows
for (int i = 0; i < cashFlow.length; i++) {
ttwcf += weight[i] * cashFlow[i];
}
 
double tncf = 0; // total net cash flows
for (int i = 0; i < cashFlow.length; i++) {
tncf += cashFlow[i];
}