Monday, November 19, 2012

Drawdown Determined Position Size

This caught my eye as I searched for some more academic research on my favorite risk measure drawdown.

Yang, Z. George and Zhong, Liang,
Optimal Portfolio Strategy to Control Maximum Drawdown -
The Case of Risk Based Dynamic Asset Allocation
(February 25, 2012).
Available at SSRN:
http://ssrn.com/abstract=2053854 or
http://dx.doi.org/10.2139/ssrn.2053854 

The paper seeks to do what I have tried to do without any real success—use drawdown to help determine position size.  I felt motivated to replicate in R their measure Rolling Economic Drawdown-Controlled Optimal Portfolio Strategy (REDD-COPS).  Since drawdown suffers from a significant lag, the authors suggest a rolling drawdown to offset some of the embedded lag:

"Intuitively, a drawdown look-back period H [length of rolling period] somewhat shorter than or similar to the market decline cycle is the key to achieve optimality. Substituting EDD with a lower REDD in equation (1), we have higher risky asset allocation to improve portfolio return
during a market rebound phase. In the examples followed, we'll use H = 1 year throughout."

The authors calibrate REDD-COPS on the S&P 500 as a single asset, and then use REDD-COPS in a portfolio context with three assets (S&P 500 – SPY, US 20+ Year Treasury – TLT, and DJ UBS Commodity Index).  I’ll show the results from my attempt to replicate the single asset test.  Sorry for the Thanksgiving but ugly colors, but I just could not resist.

From TimelyPortfolio

Their results are interesting, but I’m not entirely convinced of the robustness of a system using REDD-COPS to determine position size especially since their use of entire period Sharpe requires hindsight.  However despite the ultimate result, the byproduct discovery discussed in my post Cash–Opportunity Lost or Opportunity Gained was well worth the effort.  Stay tuned for my attempt to do the multi-asset REDD-COPS system.

R code in GIST:

9 comments:

  1. If you're interested in draw down as a risk measure, you might be interested in Ryan Jones' Fixed Ratio position sizing algorithm, which is predicated on draw down measurements. There's a nice intro to this at

    http://www.breakoutfutures.com/Newsletters/Newsletter0703.htm

    ReplyDelete
    Replies
    1. read that a very long time ago. thank so much for reminding me about this article. I'll try to incorporate and possibly assimilate.

      Delete
  2. Which are the reasons why you're not entirely convinced of the robustness of a system using REDD-COPS ?

    ReplyDelete
    Replies
    1. Just have not done enough testing to get confident. I think with multiple asset portfolio it will definitely get more interesting and potentially useful. With a single asset, I think other methods might work better.

      Delete
  3. Thanks for the post and R code. Thought you might find following performance chart interesting... http://www.screencast.com/t/1sXPzmP46REU

    The extra performance curve in the chart is basically an equity curve based MM (10 MA filter) applied to an account with (40,60) allocation to (SP500, 1Yr Treasury). Similar curve for equal weighting as well except for 2008 drawdown.

    Regards

    ReplyDelete
    Replies
    1. thanks so much for that supplement. certainly good to put in perspective with other systems.

      Delete
  4. Forgot to mention...unless one has crystal ball not sure how one can figure in 1960 under/equal weighting of stocks for next few decades would be better. I suspect same applies to the paper as well.

    ReplyDelete
  5. Have you seen this paper: http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2078861 ?
    It goes into the same direction and is very straightforward. It is well worth attention and in my opinion replication in R.

    It is even an investable strategy now (in Germany only at the moment): http://www.wikifolio.com/de/MINIMAX-MINIMAX-Verlustminimierung-konservativ-

    What do you think?

    ReplyDelete
  6. I think there is an error in calculating the position size, the GSPC.sharpe/drawdown.limit is probably GSPC.sharpe/GSPC.vol. Please let me know if Im missing something.

    ReplyDelete