Turnkey Analyst Learning Series: Maximum Drawdowns

/Turnkey Analyst Learning Series: Maximum Drawdowns

Turnkey Analyst Learning Series: Maximum Drawdowns

By | 2017-08-18T16:54:15+00:00 March 6th, 2013|Video Learning Series|0 Comments
Print Friendly, PDF & Email
(Last Updated On: August 18, 2017)

TKA readers,

I’ve been thinking a lot about drawdowns recently. In fact, I was thinking so hard about them I wrote a paper with Jack Vogel on the subject!

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2226689

We propose the use of maximum drawdown, the maximum peak to trough loss across a time series of compounded returns, as a simple method to capture an element of risk unnoticed by linear factor models: tail risk. Unlike other tail-risk metrics, maximum drawdown is intuitive and easy-to-calculate. We look at maximum drawdowns to assess tail risks associated with market neutral strategies identified in the academic literature. Our evidence suggests that academic anomalies are not anomalous: all strategies endure large drawdowns at some point in the time series. Many of these losses would trigger margin calls and investor withdrawals, forcing an investor to liquidate.

We put together a video describing maximum drawdowns, their importance in risk analysis, and how to calculate maximum drawdowns in excel via a VBA module we are sharing with the world.

[youtube url=”http://www.youtube.com/watch?v=CHNZxs6S9so&feature=youtu.be”]

Here is a link to the excel spreadsheet:

Maximum Drawdown Sheet

 

Here is the source code for the MaxDD function:

Function drawdown(port_series As Range)
Application.EnableCancelKey = xlDisabled
‘ Find the biggest cumulative drawdown for a performance series
‘ dates = dates typically alongside the returns
‘ port_series = port_series returns in % * 100 format

Dim counter As Integer
Dim cume As Double
Dim max As Double

counter = 1
cume = 1
max = 1
For counter = 1 To port_series.Count
If port_series(counter).Value <> “–” Then
cume = (cume * (port_series(counter).Value + 1))
End If

If cume >= 1 Then
cume = 1
End If

If cume < max Then
max = cume
End If

Next counter

‘If there never was a drawdown
If max = 1 Then
drawdown = “N/A”
Else
drawdown = (max – 1)
End If

End Function

 

 


  • The views and opinions expressed herein are those of the author and do not necessarily reflect the views of Alpha Architect, its affiliates or its employees. Our full disclosures are available here. Definitions of common statistics used in our analysis are available here (towards the bottom).
  • Join thousands of other readers and subscribe to our blog.
  • This site provides NO information on our value ETFs or our momentum ETFs. Please refer to this site.

About the Author:

After serving as a Captain in the United States Marine Corps, Dr. Gray earned a PhD, and worked as a finance professor at Drexel University. Dr. Gray’s interest in bridging the research gap between academia and industry led him to found Alpha Architect, an asset management that delivers affordable active exposures for tax-sensitive investors. Dr. Gray has published four books and a number of academic articles. Wes is a regular contributor to multiple industry outlets, to include the following: Wall Street Journal, Forbes, ETF.com, and the CFA Institute. Dr. Gray earned an MBA and a PhD in finance from the University of Chicago and graduated magna cum laude with a BS from The Wharton School of the University of Pennsylvania.