Zmodyfikowana metoda Dietza - Modified Dietz method

Zmodyfikowana metoda Dietz jest miarą ex post (czyli historyczny) wykonywanie w portfelu inwestycyjnym w obecności przepływów zewnętrznych. (Przepływy zewnętrzne to zmiany wartości, takie jak transfery środków pieniężnych, papierów wartościowych lub innych instrumentów do lub z portfela, bez równych jednoczesnych ruchów wartości w przeciwnym kierunku i które nie są dochodami z inwestycji w portfelu, np. odsetki, kupony lub dywidendy).

Aby obliczyć zmodyfikowany zwrot Dietza, należy podzielić zysk lub utratę wartości, po odjęciu przepływów zewnętrznych, przez średni kapitał w okresie pomiaru. Średni kapitał waży poszczególne przepływy pieniężne długością czasu między tymi przepływami do końca okresu. Przepływy, które pojawiają się na początku okresu, mają większą wagę niż przepływy występujące pod koniec. Wynik obliczenia jest wyrażony jako procentowy zwrot w okresie utrzymywania.

GIPS

Ta metoda obliczania zwrotu jest stosowana w nowoczesnym zarządzaniu portfelem. Jest to jedna z metod obliczania stóp zwrotu zalecana przez Investment Performance Council (IPC) w ramach ich Globalnych Standardów Wydajności Inwestycji (GIPS). GIPS mają na celu zapewnienie spójności międzynarodowego sposobu obliczania zwrotów z portfela.

Pochodzenie

Metoda nosi imię Petera O. Dietza. Pierwotnym pomysłem stojącym za pracą Petera Dietza było znalezienie szybszego, mniej wymagającego komputera sposobu obliczania IRR, ponieważ podejście iteracyjne przy użyciu wówczas dość wolnych komputerów, które były dostępne, zajmowało znaczną ilość czasu; badania wykonano dla BAI, Instytutu Administracji Bankowej.

Formuła

Wzór na zmodyfikowaną metodę Dietza jest następujący:

gdzie

jest początkową wartością rynkową
to końcowa wartość rynkowa
oznacza wpływ zewnętrzny netto za dany okres (więc składki do portfela są traktowane jako dodatnie przepływy, a wypłaty są ujemnymi przepływami)

i

suma każdego przepływu pomnożona przez jego wagę

Waga jest proporcją okresu czasu między momentem, w którym występuje przepływ, a końcem okresu. Zakładając, że przepływ następuje pod koniec dnia, można obliczyć jako

gdzie

to liczba dni kalendarzowych w obliczanym okresie zwrotu, co równa się dacie końcowej minus data początkowa (plus 1, chyba że przyjmiemy konwencję, że data początkowa jest taka sama jak data zakończenia poprzedniego okresu)
to liczba dni od początku okresu zwrotu do dnia, w którym nastąpił przepływ .

Zakłada się, że przepływ następuje pod koniec dnia. Jeśli przepływ ma miejsce na początku dnia, przepływ jest w portfelu przez dodatkowy dzień, więc użyj następującego wzoru do obliczenia wagi:

Porównanie ze stopą zwrotu ważoną w czasie i wewnętrzną stopą zwrotu

Zmodyfikowana metoda Dietza ma praktyczną przewagę nad metodą rzeczywistej ważonej w czasie stopy zwrotu , ponieważ obliczenie zmodyfikowanej stopy zwrotu Dietza nie wymaga wyceny portfela w każdym momencie, w którym występuje przepływ zewnętrzny. Metoda wewnętrznej stopy zwrotu ma tę praktyczną zaletę, co zmodyfikowana metoda Dietza.

Wraz z postępem technologii większość systemów może obliczyć zwrot ważony czasowo, obliczając zwrot dzienny i łącząc geometrię w celu uzyskania miesięcznego, kwartalnego, rocznego lub dowolnego innego okresu zwrotu. Jednak zmodyfikowana metoda Dietza pozostaje przydatna do atrybucji wydajności, ponieważ nadal ma tę zaletę, że pozwala na łączenie zmodyfikowanych zwrotów z aktywów Dietza z wagami w portfelu, obliczonymi na podstawie średniego zainwestowanego kapitału, a średnia ważona daje zmodyfikowany zwrot Dietza w portfolio. Zwroty ważone w czasie nie pozwalają na to.

Zmodyfikowana metoda Dietza ma również praktyczną przewagę nad metodą wewnętrznej stopy zwrotu (IRR), że nie wymaga powtarzania prób i błędów, aby uzyskać wynik.

Zmodyfikowana metoda Dietza opiera się na prostej zasadzie stopy procentowej. Przybliża metodę wewnętrznej stopy zwrotu , w której stosuje się zasadę skumulowania, ale jeśli przepływy i stopy zwrotu są wystarczająco duże, wyniki metody zmodyfikowanego Dietza będą znacznie odbiegać od wewnętrznej stopy zwrotu.

Zmodyfikowany zwrot Dietza jest rozwiązaniem równania:

gdzie

jest wartością początkową
jest wartością końcową
to całkowita długość okresu

i

to czas między początkiem okresu a przepływem

Porównaj to z (niezannualizowaną) wewnętrzną stopą zwrotu (IRR). IRR (lub ściślej mówiąc, niezannualizowana wersja IRR zwrotu z okresu utrzymywania) jest rozwiązaniem równania:

Przykład

Załóżmy, że wartość portfela wynosi 100 USD na początku pierwszego roku i 300 USD na końcu drugiego, a pod koniec pierwszego / na początku drugiego roku napływa 50 USD. (Załóżmy ponadto, że żaden rok nie jest rokiem przestępnym, więc te dwa lata mają taką samą długość).

Aby obliczyć zysk lub stratę w okresie dwóch lat,

Aby obliczyć średni kapitał w okresie dwóch lat,

więc zmodyfikowany zwrot Dietza to:

(Bezannualizowana) wewnętrzna stopa zwrotu w tym przykładzie wynosi 125%:

tak więc w tym przypadku zmodyfikowany zwrot Dietza jest zauważalnie mniejszy niż niezannualizowany IRR. Ta rozbieżność między zmodyfikowanym zwrotem Dietza a niezannualizowaną wewnętrzną stopą zwrotu jest spowodowana znacznym przepływem w okresie oraz faktem, że zwroty są duże.

Prosta metoda Dietza

Zmodyfikowana metoda Dietza różni się od prostej metody Dietza , w której przepływy pieniężne są ważone jednakowo niezależnie od tego, kiedy wystąpiły w okresie pomiarowym. Prosty sposób Dietz jest szczególnym przypadkiem zmodyfikowanej metody Dietz, w którym przepływa zewnętrzne zakłada się pojawić się w połowie okresu, albo równoważnie, równomiernie w całym okresie, podczas gdy nie zakłada się, przy użyciu zmodyfikowanej metody Dietz , a terminy wszelkich przepływów zewnętrznych są brane pod uwagę. Zauważ, że w powyższym przykładzie przepływ następuje w połowie całego okresu, co jest zgodne z założeniem leżącym u podstaw prostej metody Dietza. Oznacza to, że prosty zwrot Dietza i zmodyfikowany zwrot Dietz są takie same w tym konkretnym przykładzie.

Korekty

Jeśli wartość początkowa lub końcowa wynosi zero, lub obie, daty rozpoczęcia i / lub zakończenia należy dostosować, aby obejmowały okres, w którym portfel zawiera zawartość.

Przykład

Załóżmy, że obliczamy zwrot z roku kalendarzowego 2016 i że portfel jest pusty do momentu wpłaty 1 mln EUR gotówki na nieoprocentowany rachunek w piątek 30 grudnia. Do końca dnia w sobotę 31 grudnia 2016 r. Kurs wymiany między euro a dolarem hongkońskim zmienił się z 8,1 HKD za EUR do 8,181, co stanowi 1-procentowy wzrost wartości, mierzony w dolarach hongkońskich, więc prawo odpowiedź na pytanie, jaki jest zwrot w dolarach hongkońskich, intuicyjnie wynosi 1 proc.

Jednak przy ślepym zastosowaniu zmodyfikowanej formuły Dietza, przy założeniu o terminach transakcji na koniec dnia, ważenie dnia dla napływu 8,1 mln HKD w dniu 30 grudnia, jeden dzień przed końcem roku, wynosi 1/366, oraz średni kapitał oblicza się jako:

Wartość początkowa + napływ x waga = 0 + 8.1m HKD x 1/366 = 22,131.15 HKD

a zysk to:

wartość końcowa - wartość początkowa - wpływ netto = 8181000 - 0 - 8100000 = 81000 HKD

więc zmodyfikowany zwrot Dietza jest obliczany jako:

zysk lub strata / średni kapitał = 81 000 / 22,131,15 = 366%

Więc jaki jest prawidłowy zwrot, 1 procent czy 366 procent?

Skorygowany przedział czasu

Jedyną rozsądną odpowiedzią na powyższy przykład jest to, że zwrot z okresu utrzymywania wynosi jednoznacznie 1 procent. Oznacza to, że datę rozpoczęcia należy dostosować do daty początkowego przepływu zewnętrznego. Podobnie, jeśli portfel jest pusty na koniec okresu, datę końcową należy dostosować do ostatecznego przepływu zewnętrznego. Wartość końcowa to w rzeczywistości końcowy przepływ zewnętrzny, a nie zero.

Zwrot w ujęciu rocznym za pomocą prostej metody pomnożenia 1 procenta dziennie przez liczbę dni w roku da odpowiedź 366 proc., Ale zwrot z okresu utrzymywania nadal wynosi 1 proc.

Przykład poprawiony

Powyższy przykład zostanie poprawiony, jeśli data rozpoczęcia zostanie dostosowana do końca dnia 30 grudnia, a wartość początkowa wynosi teraz 8,1 mln HKD. Po tym nie ma żadnych zewnętrznych przepływów.

Skorygowany zysk lub strata jest taki sam jak poprzednio:

wartość końcowa - wartość początkowa = 8181000 - 8100000 = 81000 HKD

ale skorygowany średni kapitał wynosi teraz:

wartość początkowa + ważone wpływy netto = 8,1 mln HKD

więc poprawiony zmodyfikowany zwrot Dietza to teraz:

zysk lub strata / średni kapitał = 81 000 / 8,1 m = 1%

Drugi przykład

Załóżmy, że obligacja jest kupowana za 1 128 728 HKD, w tym narosłe odsetki i prowizja w dniu transakcji 14 listopada, i ponownie sprzedawana trzy dni później w dniu transakcji 17 listopada za 1 125 990 HKD (ponownie bez naliczonych odsetek i prowizji). Zakładając, że transakcje mają miejsce na początku dnia, jaki jest zmodyfikowany zwrot z okresu utrzymywania Dietza w HKD dla tej obligacji posiadanej od początku roku do końca dnia 17 listopada?

Odpowiedź

Odpowiedź brzmi, że po pierwsze, odniesienie do okresu utrzymywania od początku roku do końca dnia 17 listopada obejmuje zarówno kupno, jak i sprzedaż. Oznacza to, że efektywny skorygowany okres utrzymywania trwa w rzeczywistości od zakupu na początku dnia 14 listopada do sprzedaży trzy dni później, 17 listopada. Skorygowana wartość początkowa to kwota netto zakupu, wartość końcowa to kwota netto sprzedaży i nie ma innych przepływów zewnętrznych.

wartość początkowa = 1128728 HKD
wartość końcowa = 1125,990 HKD

Nie ma przepływów, więc zysk lub strata to:

wartość końcowa - wartość początkowa = 1125,990 - 1128728 = -2,738 HKD

a średni kapitał jest równy wartości początkowej, więc zmodyfikowany zwrot Dietza to:

zysk lub strata / średni kapitał = -2,738 / 1,128,728 = -0,24% 2 dp

Składki - kiedy nie korygować okresu utrzymywania

Ta metoda ograniczenia obliczania do faktycznego okresu utrzymywania poprzez zastosowanie skorygowanej daty rozpoczęcia lub zakończenia ma zastosowanie, gdy zwrot jest obliczany oddzielnie dla inwestycji. Gdy inwestycja należy do portfela i wymagana jest waga inwestycji w portfelu oraz udział tego zwrotu w portfelu jako całości, konieczne jest porównanie z podobnymi pod względem wspólnego udziału Kropka.

Przykład

Załóżmy, że na początku roku portfel zawiera gotówkę o wartości 10 000 USD na koncie, które jest oprocentowane bez żadnych opłat. Na początku czwartego kwartału 8 000 USD z tej gotówki jest inwestowane w niektóre akcje dolarowe (w spółce X). Inwestor stosuje strategię kup i trzymaj i przez pozostałą część roku nie ma dalszych transakcji. Pod koniec roku wartość akcji wzrosła o 10% do 8800 USD, a 100 USD odsetek jest kapitalizowanych na rachunku pieniężnym.

Jaki jest zwrot z portfela w ciągu roku? Jakie są wpłaty z rachunku pieniężnego i udziałów? Co więcej, jaki jest zwrot na koncie gotówkowym?

Odpowiedź

Końcowa wartość portfela wynosi 2100 USD w gotówce plus akcje o wartości 8800 USD, co daje łącznie 10 900 USD. Od początku roku nastąpił 9-procentowy wzrost wartości. W ciągu roku nie ma zewnętrznych przepływów do portfela ani z niego.

ważone przepływy = 0

więc

średni kapitał = wartość początkowa = 10000 USD

więc zwrot to:

zysk lub strata / średni kapitał = 900 / 10 000 = 9%

Ten 9% zwrot z portfela rozkłada się na 8% wkładu z 800 USD zarobionych na akcjach i 1% wkładu z 100 USD odsetek na rachunku gotówkowym, ale jak ogólnie możemy obliczyć składki?

Pierwszym krokiem jest obliczenie średniego kapitału na każdym z rachunków pieniężnych i udziałów w całym okresie roku. Powinny one stanowić średni kapitał 10 000 USD całego portfela. Ze średniego kapitału każdego z dwóch składników portfela możemy obliczyć wagi. Waga rachunku pieniężnego to średni kapitał rachunku pieniężnego podzielony przez średni kapitał (10 000 USD) portfela, a waga akcji to średni kapitał akcji w całym roku podzielony przez średni kapitał portfela.

Dla wygody przyjmiemy, że waga czasowa wypływu 8 000 USD w gotówce na opłacenie udziałów wynosi dokładnie 1/4. Oznacza to, że cztery kwartały roku są traktowane jako jednakowe.

Średni kapitał na rachunku pieniężnym wynosi:

średni kapitał
= wartość początkowa - waga czasu × wielkość wypływu
= 10 000 - 1 / 4 × 8000 USD
= 10 000 - 2 000 USD
= 8 000 USD

Średni kapitał akcji w ostatnim kwartale nie wymaga obliczeń, ponieważ po rozpoczęciu ostatniego kwartału nie ma przepływów. Jest to 8 000 $ zainwestowane w akcje. Jednak średni kapitał w akcjach w ciągu całego roku to coś innego. Wartość początkowa akcji na początku roku wynosiła zero, a na początku ostatniego kwartału nastąpił napływ 8000 USD, więc:

średni kapitał
= wartość początkowa - waga czasu × wielkość wypływu
= 0 + 1 / 4 × 8000 USD
= 2000 USD

Od razu widzimy, że waga rachunku gotówkowego w portfelu w ciągu roku wynosiła:

średni kapitał na rachunku pieniężnym / średni kapitał w portfelu
= 8,000 / 10 000
= 80%

a waga akcji wynosiła:

średni kapitał w akcjach / średni kapitał w portfelu
= 2000 / 10 000
= 20%

co daje 100 proc.

Możemy obliczyć zwrot na rachunku pieniężnym, który był:

zysk lub strata / średni kapitał = 100 / 8,000 = 1,25%

Wkład w zwrot z portfela wynosi:

waga × zwrot = 80% × 1,25% = 1%

A co z wkładem w zwrot z akcji?

Skorygowany zwrot z akcji w okresie utrzymywania wynosi 10 procent. Jeśli pomnożymy to przez 20-procentową wagę udziałów w portfelu, otrzymamy tylko 2 procent, ale prawidłowy wkład to 8 procent.

Odpowiedzią jest wykorzystanie zwrotu z akcji za nieskorygowany całoroczny okres do obliczenia wkładu:

Nieskorygowany zwrot okresu
= zysk lub strata / nieskorygowany średni kapitał okresu
= 800 / 2000
= 40%

Wówczas wkład z akcji do zwrotu portfela wynosi:

waga × nieskorygowany okres zwrotu
= 20% × 40% = 8%

Nie oznacza to, że prawidłowy zwrot z akcji w okresie utrzymywania wynosi 40 procent, ale do obliczenia składki należy zastosować nieskorygowany zwrot z okresu, który jest wartością 40 procent, a nie faktyczny zwrot z okresu posiadania wynoszący 10 procent.

Opłaty

Aby zmierzyć zwroty bez opłat, należy pozwolić na zmniejszenie wartości portfela o kwotę opłat. Aby obliczyć zwroty bez opłat, zrekompensuj je, traktując je jako przepływ zewnętrzny, i wyłącz naliczone opłaty z wycen.

Roczna stopa zwrotu

Zwróć uwagę, że zmodyfikowany zwrot Dietza to zwrot z okresu utrzymywania, a nie roczna stopa zwrotu, chyba że okres ten wynosi jeden rok. Roczność, czyli zamiana zwrotu z okresu utrzymywania na roczną stopę zwrotu, jest oddzielnym procesem.

Zwrot ważony pieniędzmi

Zmodyfikowana metoda Dietza jest przykładem metody ważonej pieniądzem (lub dolarem) (w przeciwieństwie do ważonej czasowo ). W szczególności, jeśli zmodyfikowany zwrot Dietza z dwóch portfeli jest i mierzony we wspólnym dopasowywanym przedziale czasowym, wówczas zmodyfikowany zwrot Dietza z dwóch portfeli zestawionych razem w tym samym przedziale czasowym jest średnią ważoną z dwóch zwrotów:

gdzie wagi portfeli zależą od średniego kapitału w przedziale czasowym:

Powiązany zwrot a prawdziwy zwrot ważony w czasie

Alternatywą dla zmodyfikowanej metody Dietza jest geometryczne powiązanie zmodyfikowanych zwrotów Dietza przez krótsze okresy. Połączona zmodyfikowana metoda Dietza jest klasyfikowana jako metoda ważona w czasie, ale nie daje takich samych wyników jak metoda ważona w czasie rzeczywistym , która wymaga wyceny w momencie każdego przepływu środków pieniężnych.

Zagadnienia

Problemy z założeniami czasowymi

Czasami występują trudności przy obliczaniu lub dekompozycji zwrotów z portfela, jeśli wszystkie transakcje są traktowane jako występujące o tej samej porze dnia, jak koniec lub początek dnia. Niezależnie od zastosowanej metody obliczania zwrotów, założenie, że wszystkie transakcje odbywają się jednocześnie w jednym punkcie każdego dnia, może prowadzić do błędów.

Na przykład rozważmy scenariusz, w którym portfel jest pusty na początku dnia, więc wartość początkowa A wynosi zero. W ciągu tego dnia następuje wówczas zewnętrzny napływ F = 100 USD. Pod koniec dnia ceny rynkowe uległy zmianie, a końcowa wartość wynosi 99 USD.

Jeśli wszystkie transakcje są traktowane jako występujące na koniec dnia, wówczas istnieje zerowa wartość początkowa A i zerowa wartość dla średniego kapitału, ponieważ waga dnia napływu wynosi zero, więc nie można obliczyć zmodyfikowanego zwrotu Dietza.

Niektóre z takich problemów zostaną rozwiązane, jeśli zmodyfikowana metoda Dietza zostanie dalej dostosowana, tak aby zakupy były otwierane, a sprzedaż zamykane, ale bardziej wyrafinowana obsługa wyjątków daje lepsze wyniki.

Czasami pojawiają się inne trudności przy dekompozycji zwrotów z portfela, jeśli wszystkie transakcje są traktowane jako występujące w jednym momencie dnia.

Weźmy na przykład pod uwagę otwarcie funduszu z zaledwie 100 USD jednej akcji, która jest sprzedawana za 110 USD w ciągu dnia. W tym samym dniu kupowane są kolejne akcje za 110 USD, zamykane o wartości 120 USD. Zwroty z każdej akcji wynoszą 10% i 120/110 - 1 = 9,0909% (4 dp), a zwrot z portfela wynosi 20%. Wagi aktywów w i (w przeciwieństwie do wag czasu W i ) wymagane do uzyskania zwrotów z tych dwóch aktywów w celu uzyskania zwrotu z portfela wynoszą 1200% dla pierwszej akcji i ujemne 1100% dla drugiej:

w * 10/100 + (1-w) * 10/110 = 20/100 → w = 12.

Takie ciężary są absurdalne, ponieważ drugi zapas nie jest krótki.

Problem pojawia się tylko dlatego, że dzień jest traktowany jako pojedynczy, dyskretny przedział czasu.

Ujemny lub zerowy średni kapitał

W normalnych okolicznościach średni kapitał jest dodatni. Kiedy odpływ w ciągu okresu jest duży i dostatecznie wczesny, średni kapitał może być ujemny lub zerowy. Ujemny średni kapitał powoduje, że zwrot Zmodyfikowanego Dietza jest ujemny w przypadku zysku i dodatni w przypadku straty. Przypomina to zachowanie zobowiązania lub pozycji krótkiej, nawet jeśli inwestycja w rzeczywistości nie jest zobowiązaniem ani pozycją krótką. W przypadkach, gdy średni kapitał wynosi zero, nie można obliczyć zwrotu zmodyfikowanego Dietza. Jeśli średni kapitał jest bliski zeru, zwrot Zmodyfikowanego Dietza będzie duży (duży i dodatni lub duży i ujemny).

Jedno częściowe rozwiązanie obejścia polega na pierwszym kroku wychwytywania wyjątku, wykrywaniu na przykład, kiedy wartość początkowa (lub pierwszy wpływ) jest dodatnia, a średni kapitał jest ujemny. Następnie w takim przypadku użyj prostej metody zwrotu, dostosowując wartość końcową dla wypływów. Odpowiada to sumie składek składowych, gdzie składki są oparte na prostych zwrotach i wagach zależnych od wartości początkowych.

Przykład

Na przykład w scenariuszu, w którym tylko część udziałów jest sprzedawana za znacznie więcej niż całkowita wartość początkowa, stosunkowo wcześnie w okresie:

Na początku pierwszego dnia liczba akcji wynosi 100
Na początku pierwszego dnia cena akcji wynosi 10 dolarów
Wartość początkowa = 1000 dolarów
Pod koniec dnia 5 80 akcji jest sprzedawanych po 15 dolarów za akcję
Pod koniec 40. Dnia pozostałych 20 akcji jest wartych 12,50 dolara za akcję

Zysk lub strata to wartość końcowa - wartość początkowa + wypływ:

Jest zysk, a pozycja jest długa, więc intuicyjnie oczekiwalibyśmy pozytywnego zwrotu.

Średni kapitał w tym przypadku to:

Zmodyfikowany zwrot Dietza w tym przypadku idzie nie tak, ponieważ średni kapitał jest ujemny, mimo że jest to pozycja długa. Zwrot zmodyfikowanego Dietza w tym przypadku to:

Zamiast tego zauważamy, że wartość początkowa jest dodatnia, ale średni kapitał jest ujemny. Ponadto nie ma krótkiej sprzedaży. Innymi słowy, zawsze liczba posiadanych akcji jest dodatnia.

Następnie mierzymy prosty zwrot ze sprzedanych akcji:

oraz z akcji nadal posiadanych na koniec:

i połącz te zwroty z wagami tych dwóch części udziałów w pozycji wyjściowej, którymi są:

i odpowiednio.

Daje to udział w ogólnym zwrocie, który jest następujący:

i odpowiednio.

Suma tych wkładów to zwrot:

Odpowiada to prostemu zwrotowi, dostosowującemu wartość końcową wypływów:

Ograniczenia

To obejście ma ograniczenia. Jest to możliwe tylko wtedy, gdy gospodarstwa można podzielić w ten sposób.

Nie jest idealna z dwóch dalszych powodów, mianowicie, że nie obejmuje wszystkich przypadków i jest niezgodna z metodą zmodyfikowanego Dietza. W połączeniu ze składkami zmodyfikowanego Dietza na inne aktywa, suma składek składowych nie będzie sumować się do całkowitego zwrotu.

Inną sytuacją, w której średni kapitał może być ujemny, jest krótka sprzedaż. Zamiast inwestować poprzez kupowanie akcji, akcje są pożyczane, a następnie sprzedawane. Spadek ceny akcji oznacza zysk zamiast straty. Pozycja jest zobowiązaniem, a nie aktywem. Jeśli zysk jest dodatni, a średni kapitał jest ujemny, zmodyfikowana stopa zwrotu Dietza jest ujemna, co wskazuje, że chociaż liczba akcji nie uległa zmianie, wartość bezwzględna zobowiązania zmniejszyła się.

W przypadku zakupu, po którym następuje sprzedaż większej liczby akcji niż kupiono, co skutkuje krótką pozycją (ujemną liczbą akcji), również średni kapitał może być ujemny. To, co było aktywem w momencie zakupu, po sprzedaży stało się zobowiązaniem. Interpretacja zwrotu zmodyfikowanego Dietza różni się w zależności od sytuacji.

Visual Basic

Function georet_MD(myDates, myReturns, FlowMap, scaler)
' This function calculates the modified Dietz return of a time series
'
' Inputs.
'   myDates. Tx1 vector of dates
'   myReturns. Tx1 vector of financial returns
'   FlowMap. Nx2 matrix of Dates (left column) and flows (right column)
'   scaler. Scales the returns to the appropriate frequency
'
' Outputs.
'   Modified Dietz Returns.
'
' Note that all the dates of the flows need to exist in the date vector that is provided.
' when a flow is entered, it only starts accumulating after 1 period.
'
Dim i, j, T, N As Long
Dim matchFlows(), Tflows(), cumFlows() As Double
Dim np As Long
Dim AvFlows, TotFlows As Double

' Get dimensions
If StrComp(TypeName(myDates), "Range") = 0 Then
    T = myDates.Rows.Count
Else
    T = UBound(myDates, 1)
End If
If StrComp(TypeName(FlowMap), "Range") = 0 Then
    N = FlowMap.Rows.Count
Else
    N = UBound(FlowMap, 1)
End If

' Redim arrays
ReDim cumFlows(1 To T, 1 To 1)
ReDim matchFlows(1 To T, 1 To 1)
ReDim Tflows(1 To T, 1 To 1)

' Create a vector of Flows
For i = 1 To N
    j = Application.WorksheetFunction.Match(FlowMap(i, 1), myDates, True)
    matchFlows(j, 1) = FlowMap(i, 2)
    Tflows(j, 1) = 1 - (FlowMap(i, 1) - FlowMap(1, 1)) / (myDates(T, 1) - FlowMap(1, 1))
    If i = 1 Then np = T - j
Next i

' Cumulated Flows
For i = 1 To T
    If i = 1 Then
        cumFlows(i, 1) = matchFlows(i, 1)
    Else
        cumFlows(i, 1) = cumFlows(i - 1, 1) * (1 + myReturns(i, 1)) + matchFlows(i, 1)
    End If
Next i

AvFlows = Application.WorksheetFunction.SumProduct(matchFlows, Tflows)
TotFlows = Application.WorksheetFunction.Sum(matchFlows)

georet_MD = (1 + (cumFlows(T, 1) - TotFlows) / AvFlows) ^ (scaler / np) - 1

End Function

Metoda Java dla zmodyfikowanego zwrotu Dietza

private static double modifiedDietz (double emv, double bmv, double cashFlow[], int numCD, int numD[]) {

    /* emv:        Ending Market Value
     * bmv:        Beginning Market Value
     * cashFlow[]: Cash Flow
     * numCD:      actual number of days in the period
     * numD[]:     number of days between beginning of the period and date of cashFlow[]
     */

    double md = -99999; // initialize modified dietz with a debugging number

    try {
        double[] weight = new double[cashFlow.length];

        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;
        }

        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];
        }

        md = (emv - bmv - tncf) / (bmv + ttwcf);
    }
    catch (ArrayIndexOutOfBoundsException e) {
    	e.printStackTrace();
    }
    catch (ArithmeticException e) {
    	e.printStackTrace();
    }
    catch (Exception e) {
    	e.printStackTrace();
    }

    return md;
}

Funkcja Excel VBA dla zmodyfikowanego zwrotu Dietza

Public Function MDIETZ(dStartValue As Double, dEndValue As Double, iPeriod As Integer, rCash As Range, rDays As Range) As Double

    'Jelle-Jeroen Lamkamp 10 Jan 2008
    Dim i As Integer: Dim Cash() As Double: Dim Days() As Integer
    Dim Cell As Range: Dim SumCash As Double: Dim TempSum As Double

    'Some error trapping
    If rCash.Cells.Count <> rDays.Cells.Count Then MDIETZ = CVErr(xlErrValue): Exit Function
    If Application.WorksheetFunction.Max(rDays) > iPeriod Then MDIETZ = CVErr(xlErrValue): Exit Function

    ReDim Cash(rCash.Cells.Count - 1)
    ReDim Days(rDays.Cells.Count - 1)

    i = 0
    For Each Cell In rCash
        Cash(i) = Cell.Value: i = i + 1
    Next Cell

    i = 0
    For Each Cell In rDays
        Days(i) = Cell.Value: i = i + 1
    Next Cell

    SumCash = Application.WorksheetFunction.Sum(rCash)

    TempSum = 0
    For i = 0 To (rCash.Cells.Count - 1)
            TempSum = TempSum + (((iPeriod - Days(i)) / iPeriod) * Cash(i))
    Next i

    MDIETZ = (dEndValue - dStartValue - SumCash) / (dStartValue + TempSum)

End Function

Zobacz też

Bibliografia

Dalsza lektura

  • Carl Bacon. Praktyczny pomiar wydajności portfela i atrybucja. West Sussex: Wiley, 2003. ISBN   0-470-85679-3
  • Bruce J. Feibel. Pomiar wyników inwestycji. Nowy Jork: Wiley, 2003. ISBN   0-471-26849-6
  • Christopherson, Jon A. i in. Pomiar wydajności portfela i testy porównawcze. McGraw-Hill, 2009. ISBN   9780071496650