Maximaler aktiver Drawdown in Python

9

Ich habe kürzlich eine Frage zu zur Berechnung des maximalen Drawdown gestellt , wo Alexander eine sehr prägnante und effiziente Methode zur Berechnung mit den DataFrame-Methoden in Pandas gab.

Ich wollte nachfragen, wie andere maximale aktive Drawdown berechnen?

Dies berechnet Max Drawdown. NICHT! Maximaler aktiver Drawdown

Dies ist, was ich für den maximalen Drawdown implementiert habe, basierend auf Alexanders Antwort auf die oben stehende Frage:

%Vor%

Er nimmt eine Return-Serie und gibt das max_drawndown zusammen mit den Indizes zurück, für die der Drawdown aufgetreten ist.

Wir beginnen damit, eine Reihe von kumulativen Returns zu generieren, die als Return-Index fungieren.

%Vor%

Zu jedem Zeitpunkt wird der aktuelle Drawdown berechnet, indem der aktuelle Level des Return-Index mit dem maximalen Return-Index für alle vorherigen Perioden verglichen wird.

%Vor%

Der maximale Drawdown ist dann nur das Minimum aller berechneten Drawdowns.

Meine Frage:

  

Ich wollte nachfragen, wie andere maximal berechnen    aktiv Drawdown ?

Geht davon aus, dass sich die Lösung auf die obige Lösung erstreckt.

    
piRSquared 25.04.2016, 18:57
quelle

2 Antworten

8

Beginnend mit einer Reihe von Portfolio-Renditen und Benchmark-Renditen, erstellen wir kumulative Renditen für beide. Für die folgenden Variablen wird angenommen, dass sie sich bereits im kumulativen Rückgabebereich befinden.

Die aktive Rückgabe von Periode j nach Periode i ist:

Lösung

So können wir die absolute Lösung erweitern:

%Vor%

Erklärung

Ähnlich wie im absoluten Fall möchten wir zu jedem Zeitpunkt wissen, wie hoch die maximale kumulative aktive Rendite war. Wir erhalten diese Reihe kumulativer aktiver Renditen mit p - b . Der Unterschied ist, dass wir verfolgen wollen, was das p und b zu dieser Zeit war und nicht der Unterschied selbst.

Wir generieren also eine Reihe von when , die in cam ( c umulativ a ) erfasst wurden rg m ax) und nachfolgende Reihen von Portfolio- und Benchmark-Werten bei diesen wtens .

%Vor%

Die Drawdown-Berechnung kann nun analog mit der obigen Formel durchgeführt werden:

%Vor%

Demonstration

%Vor%

    
piRSquared 25.04.2016, 18:57
quelle
2

Sie haben vielleicht bemerkt, dass Ihre einzelnen Komponenten nicht additiv oder geometrisch gleich sind:

%Vor%

Dies ist immer eine beunruhigende Situation, da es anzeigt, dass in Ihrem Modell eine Art Leckage auftreten könnte.

Die Zuordnung einzelner Perioden und mehrerer Perioden ist immer eine Herausforderung. Ein Teil des Problems liegt im Ziel der Analyse, d. H. Was versuchen Sie zu erklären.

Wenn Sie, wie oben beschrieben, kumulative Renditen betrachten, können Sie Ihre Analyse auf folgende Weise durchführen:

  1. Stellen Sie sicher, dass das Portfolio zurückkehrt und die Benchmark-Renditen beide Überschussrenditen sind, d. h. die entsprechende Barrendite für den jeweiligen Zeitraum (z. B. täglich, monatlich usw.) subtrahieren.

  2. Angenommen, Sie haben einen reichen Onkel, der Ihnen 100 Millionen Dollar leiht, um Ihren Fonds zu starten. Jetzt können Sie sich Ihr Portfolio als drei Transaktionen, eine Bar- und zwei Derivattransaktionen vorstellen:     a) Investieren Sie Ihre $ 100 Millionen in ein Cash-Konto und verdienen Sie bequem die Angebotsrate.     b) Treten Sie für 100 Mio. USD fiktiv in einen Aktientausch ein     c) Treten Sie in eine Swap-Transaktion mit einem Null-Beta-Hedge-Fonds ein, wiederum für 100 Mio. USD fiktiv.

Wir gehen davon aus, dass beide Swap-Transaktionen durch das Cash-Konto besichert sind und dass keine Transaktionskosten anfallen (wenn nur ...!).

Am ersten Tag ist der Aktienindex etwas über 1% gestiegen (eine Überrendite von genau 1,00% nach Abzug der Barausgaben für den Tag). Der unkorrelierte Hedgefonds lieferte jedoch eine Überrendite von -5%. Unser Fonds liegt jetzt bei $ 96 Mio.

Tag zwei, wie können wir ausgleichen? Ihre Berechnungen implizieren, dass wir es nie tun. Jeder ist ein separates Portfolio, das für immer driftet ... Für die Zwecke der Attribution glaube ich, dass es total sinnvoll ist, täglich, d. H. 100% zu jeder der beiden Strategien, neu zu gewichten.

Da es sich nur um fiktive Kredite mit ausreichenden Barsicherheiten handelt, können wir die Beträge einfach anpassen. Statt 101 Millionen US-Dollar am Aktienindex des zweiten Tages und 95 Millionen US-Dollar an Hedge-Fonds zu investieren, werden wir stattdessen (zu Null-Kosten) eine Neugewichtung vornehmen, sodass wir jeweils 96 Millionen US-Dollar haben.

Wie funktioniert das bei Pandas? Sie haben bereits cum['Portfolio'] berechnet, was der kumulative Überschussfaktor für das Portfolio ist (d. H. Nach Abzug der Cash Returns). Wenn wir den Überhang-Benchmark und die aktiven Renditen des aktuellen Tages auf den Portfolio-Wachstumsfaktor des Vortages anwenden, berechnen wir die täglichen umgerechneten Erträge.

%Vor%

Nun sehen wir, dass die aktive Rendite zuzüglich der Benchmarkrendite plus der anfänglichen Liquidität dem aktuellen Wert des Portfolios entspricht.

%Vor%

Nach Konstruktion, df_cum['Portfolio'] = 1 + df_cum['Benchmark'] + df_cum['Active'] . Da diese Methode schwer zu berechnen ist (ohne Pandas!) Und versteht (die meisten Menschen werden die fiktiven Forderungen nicht erhalten), definiert die Praxis in der Branche im Allgemeinen die aktive Rendite als die kumulative Renditedifferenz über einen bestimmten Zeitraum. Wenn beispielsweise ein Fonds in einem Monat um 5,0% gestiegen ist und der Markt um 1,0% gefallen ist, wird die Überschussrendite für diesen Monat im Allgemeinen als + 6,0% definiert. Das Problem bei diesem vereinfachten Ansatz besteht jedoch darin, dass Ihre Ergebnisse im Laufe der Zeit auseinanderdriften werden, da Probleme auftreten, die nicht richtig in die Berechnungen einfließen.

In unserer Spalte df_cum.Active könnten wir den Drawdown als:

definieren %Vor%

Sie können dann die Anfangs- und Endpunkte des Drawdowns wie zuvor festlegen.

Wenn Sie meinen kumulativen Active-Return-Beitrag mit den von Ihnen berechneten Beträgen vergleichen, werden Sie feststellen, dass sie zunächst ähnlich sind und dann im Laufe der Zeit auseinanderdriften (meine Rendite ist grün):

    
Alexander 26.04.2016 00:47
quelle