From 92de3ded1bd3aa90febf5a257a141256bd2fbc83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lautenschl=C3=A4ger?= <33692555+thlautenschlaeger@users.noreply.github.com> Date: Wed, 22 Sep 2021 20:49:26 -0500 Subject: [PATCH 1/3] added index for valley in drawdown --- pyfolio/timeseries.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pyfolio/timeseries.py b/pyfolio/timeseries.py index 2b34d3b79..9012db629 100644 --- a/pyfolio/timeseries.py +++ b/pyfolio/timeseries.py @@ -898,6 +898,7 @@ def get_max_drawdown_underwater(underwater): recovery = underwater[valley:][underwater[valley:] == 0].index[0] except IndexError: recovery = np.nan # drawdown not recovered + valley = underwater.index[valley] return peak, valley, recovery From 11cf948b2fe451929acc88e020c64e06ec3ff5d3 Mon Sep 17 00:00:00 2001 From: thlautenschlaeger Date: Sun, 26 Sep 2021 19:01:15 -0600 Subject: [PATCH 2/3] added fix --- pyfolio/timeseries.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyfolio/timeseries.py b/pyfolio/timeseries.py index 9012db629..7e3e3fc70 100644 --- a/pyfolio/timeseries.py +++ b/pyfolio/timeseries.py @@ -898,7 +898,9 @@ def get_max_drawdown_underwater(underwater): recovery = underwater[valley:][underwater[valley:] == 0].index[0] except IndexError: recovery = np.nan # drawdown not recovered - valley = underwater.index[valley] + if not isinstance(valley, datetime): + valley = underwater.index[valley] + return peak, valley, recovery From cbe9a795c4db3dc92b744fd927aa3dca9c520235 Mon Sep 17 00:00:00 2001 From: thlautenschlaeger Date: Sun, 26 Sep 2021 19:06:17 -0600 Subject: [PATCH 3/3] missing imports --- pyfolio/timeseries.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pyfolio/timeseries.py b/pyfolio/timeseries.py index 7e3e3fc70..2b529b3f8 100644 --- a/pyfolio/timeseries.py +++ b/pyfolio/timeseries.py @@ -16,6 +16,7 @@ from collections import OrderedDict from functools import partial +from datetime import datetime import empyrical as ep import numpy as np