Seeking Alpha

Marc Cohn's  Instablog

Marc Cohn
Send Message
I am a patent litigator with a background in physics and electronics. I enjoy studying quantitative, rules-based investment methods through rigorous backtesting and numerical analysis. I believe that patterns exist in the market that benefit trading -- the challenge is finding them!
  • Equity Curves, A New Sharpe* Ratio, And 20-Year Testing Of The Modified GMR 21 comments
    Feb 11, 2014 5:09 PM | about stocks: SSO, MDY, EEM, ILF, EPP, FEZ, EDV, SHY, TLT

    EQUITY CURVES

    I have posted several articles recently about my modified version of Grossman's Global Rotation Strategy.

    I have used the standard metrics to evaluate the system, including CAGR, standard deviation, maximum drawdown, and Sharpe rato. (Sorry, but Sortino gives me a headache.)

    I also calculated a value that is similar to standard deviation but which measures the deviation of growth from a monotonic exponential curve. Very simply, I take the LN of returns and fit a straight regression line. Then I calculate the difference between each month's returns from the regression line at that month. I take the root mean square of these differences to arrive at what I call the "linearity" value.

    You can see below that the linearity of the modified GMR system over the last 10 years is quite good:

    (click to enlarge)

    On an arithmetic scale, the returns look like this:

    (click to enlarge)

    Again, we see quite monotonic growth.

    The use of the linearity value was helpful now in optimizing the system some more. Or, actually, de-optimizing it, depending on your point of view.

    As discussed in my previous blog post, the maximum returns were provided when the performance and volatility coefficients were 0.75 and 0.25, respectively, and the cash stop threshold was set at 0.75. The linearity value was 14.2% with these parameters.

    I found, however, that the "linearity" value could be lowered with other parameters for the weights and cash stop threshold. But these lower values affected performance negatively. I needed to find a way to see the combination of these effects.

    The New Sharpe* Ratio

    To account for all this, I calculated a new ratio that I call the Sharpe* which is simply the CAGR of returns divided by the linearity value.

    The best value for Sharpe* was achieved when the weights were 1.0 and 0.0 for performance and volatility, respectively. In other words, volatility increased the volatility, which makes sense when you consider that higher volatility increased the ranking. Any use of volatility at all in the system reduced the Sharpe* value. While the rate of return fell, the linearity increased by a greater proportion, thereby increasing the Sharpe* ratio.

    I found that lowering the stop also improved the Sharpe* value. The optimal value of Sharpe* was achieved with the cash stop threshold at 0.5 (with the weights at 1.0 and 0.0 as above).

    With these parameters, the Sharpe* value was a whopping 3.62 with a linearity of 11.1%. (By contrast, the S&P's Sharpe* value is 0.254 with a linearity of 28.9%.) The log of the equity curve and the fit line of my system is shown below:

    (click to enlarge)

    The 11% linearity is truly remarkable over a 10 year period.

    Testing The Modified GMR Back 20 Years

    One of the commenters on Grossman's original GMR article had professed to backtesting the system using similar Vanguard mutual funds for which price data was available into the early 1990s. He identified FDVLX (US), FIEUX (Europe), FEMKX (Emerging), FLATX (Latin), FPBFX (Pacific), and VUSTX (Long Bonds).

    I found price data for these funds on Yahoo! Finance back to December 1993 and applied the system to this price data. For cash, I used SHY from inception in 2003 and a fixed dollar amount before then.

    The system still beat the market handily but did not provide nearly the same returns as the version with modern ETFs. I suspect this may be due at least in part to the fact that the volatilities of the funds had a much larger variation than the ETF volatilities. For instance, the bond fund's volatility was less than half of the other funds, so I doubled the log of monthly performance for that fund only. This improved the performance of the system when applied the funds.

    With no cash stop (threshold = 1) and only performance used for ranking (weights = 1.0 and 0.0), the system returned the following since Jan 31, 1994:

    Total38.34
    drawdown17.10%
    stdev16.54%
    CAGR20.00%
    Sharp1.21

    Although not as good as the recent ETF system, this is fantastic over 20 years, and I believe it confirms the economic hypothesis of the system.

    The equity curve for the fund-based system is below:

    (click to enlarge)

    The use of volatility impairs performance significantly. When I use 0.75/0.25 for the performance and volatility weighs, results suffer:

    Total22.56
    drawdown18.60%
    stdev17.37%
    CAGR16.86%
    Sharp0.97

    You can see the increased choppiness in returns:

    (click to enlarge)

    Again, still good for 20 years.

    At the 1.0/0.0 weights, the linearity was 12.5% with a Sharpe* ratio of 1.65. At the 0.75/0.25 weights, the linearity was 16% with a Sharpe* ratio of 1.05.

    Using the cash stop improved the Fidelity system as well, albeit marginally. With the 1.0/0.0 weights, the results with a cash stop threshold at 0.75 were:

    Total20.55
    drawdown17.30%
    stdev15.56%
    CAGR16.32%
    Sharp1.05

    Although returns were lower than with no cash stop, linearity was a mere 9.7% and the Sharpe* was maximal at 1.67.

    From here, though, lowering the cash-stop threshold further gave worse results in a way that was not seen in the ETF system. For instance, if the stop was set to 0.5 (the optimal value for the ETF system) the results were worse:

    Total14.21
    drawdown17.10%
    stdev14.68%
    CAGR14.19%
    Sharp0.97

    Linearity was 15.5% and Sharpe* was 0.91.

    I have no explanantion for why the cash stop operates at a different threshold for the mutual funds than for the ETFs. (But there are so many differences in these, that it should perhaps be more of a surprise that the system works on them at all.)

    The year-over-year returns for the fund-based system with 0.75 cash stop is shown below compared to FDVLX. I have bolded the years in which the system beat the market.

        
     Delta v FDVLXSYSTEMFDVLX
        
        
        
    1994   
    1995-17%10.41%27.15%
    1996-18%-1.79%16.70%
    19971%22.38%21.24%
    199817%17.46%0.37%
    19992%10.39%8.67%
    2000-14%-6.33%8.12%
    2001-2%10.31%12.26%
    200213%3.44%-9.20%
    2003-15%18.98%34.43%
    20049%29.94%21.24%
    200519%33.67%14.26%
    2006-9%5.84%15.07%
    200720%22.15%2.22%
    200844%-2.13%-46.50%
    2009-11%33.59%44.10%
    20109%31.45%22.27%
    201143%36.12%-6.71%
    2012-21%0.90%21.91%
    2013-21%16.08%37.08%

    Conclusions

    Given these findings, I have decided to abandon volatility in the system. As Occam suggested, simpler is better. The performance-only system appears to provide the best results and the most robustness.

    Further, given how poorly the 20-year system performed with the cash stop set at 0.5, I have determined that the optimal value of the cash stop for the ETF system should be 0.75, even though we saw a higher Sharpe* ratio with cash stop at 0.5. The difference is only very small as shown below and in fact the 0.75 system gives better returns:

    Cash stop on ETF system at 0.75:

    Total33.33
    CAGR42.00%
    Stdev23.56%
    Drawdown19.88%
    Sharpe v SPY1.47
    Sharpe v SHY1.69

    Linearity of 12.8% and Sharpe* of 3.26

    Cash stop on ETF system at 0.5:

    Total30.08
    CAGR40.55%
    Stdev22.58%
    Drawdown19.88%
    Sharpe v SPY1.47
    Sharpe v SHY1.70

    Linearity of 11.1% and Sharpe* of 3.62.

    The modified GMR system appears to be incredibly rebust over a long period of time. The 20-year test confirms the economic principle behind the system. One can only cross our fingers for the future.

    With the current settings, the year-over-year results of the ETF system since 2004 were:

     deltaSYSTEMSPY
    200423.68%34.37%10.70%
    200551.19%56.02%4.83%
    200613.76%29.61%15.84%
    200722.47%27.61%5.15%
    200875.54%38.74%-36.80%
    200952.94%79.30%26.35%
    20107.06%22.12%15.06%
    201168.14%70.04%1.90%
    20123.90%19.88%15.99%
    201320.23%52.54%32.31%

    P.S. As I finish typing this, I realized that the figures for my ETF system above and throughout the article do include commissions of 0.04% per trade (i.e. $20 on $50,000). I am not going to go back and replace everything. Obviously, the system performs slightly better than what is shown if you can avoid commissions.

    Disclosure: I am long SSO.

Back To Marc Cohn's Instablog HomePage »

Instablogs are blogs which are instantly set up and networked within the Seeking Alpha community. Instablog posts are not selected, edited or screened by Seeking Alpha editors, in contrast to contributors' articles.

Comments (21)
Track new comments
  • Kowksi06
    , contributor
    Comments (23) | Send Message
     
    Do you have any plans on sharing your spreadsheet with the excel illiterate?
    11 Feb, 09:34 PM Reply Like
  • TrendXplorer
    , contributor
    Comments (36) | Send Message
     
    Very, very nice!

     

    For some reason unknown to me, especially the combination of SSO with EDV makes a true "olympic" achievement.
    http://bit.ly/MpPxvn

     

    Thanks for sharing.
    16 Feb, 01:31 PM Reply Like
  • Marc Cohn
    , contributor
    Comments (85) | Send Message
     
    Author’s reply » Thanks, TX. It's nice to see the results confirmed independently.
    16 Feb, 09:25 PM Reply Like
  • packraider
    , contributor
    Comment (1) | Send Message
     
    Great stuff. I'm running data through Amibroker and also seeing benefits from using the log of the performance as you suggested.

     

    You mentioned a cash stop on Dec 31. I can't seem to get a positive correlation between EDV and SSO for the 4 month period ending Dec 31. I must not be looking at the right values.

     

    It may be over-optimizing, but adding a profit target appears to increase returns.
    18 Feb, 01:59 AM Reply Like
  • Marc Cohn
    , contributor
    Comments (85) | Send Message
     
    Author’s reply » I found that adding a profit target did not increase returns, but my testing was done only on the monthly data, which is not accurate to use for a stop. What was the target? Did it work for various values of the target or just a narrow range?

     

    I used the Excel Correl function to correlate and used the LN of monthly performance, not the performance itself.
    18 Feb, 07:30 AM Reply Like
  • ekreyzig
    , contributor
    Comments (4) | Send Message
     
    Thanks for the clarification - I too had the same question.
    A follow up question: When using the Excel Corel function how many months of previous data of monthly performance do you use?
    27 Feb, 02:45 PM Reply Like
  • Market Map
    , contributor
    Comments (209) | Send Message
     
    Refreshing work !... We appreciate articles that actually present research vs. 1000+ word missives using words such as "taper, QE, sentiment, emerging markets, top(ping)" in them.
    18 Feb, 09:48 AM Reply Like
  • jimdjohnson99
    , contributor
    Comment (1) | Send Message
     
    Marc,
    I'm semi-retired after 38 years in Human Resources specializing in Compensation Plan Design for high-technology companies. I have a relatively good understanding of Excel as a result of my profession. I'm concerned about the risk of losing a big chunk of my already inadequate retirement account and recently subscribed to the SeekingAlpha newsletter. I would like very much to get a copy of an Excel spreadsheet containing your system so I can look at the possibility of using it to protect & grow my IRA. Regards, Jim Johnson
    23 Feb, 09:17 PM Reply Like
  • User 21942501
    , contributor
    Comments (3) | Send Message
     
    Nice article Marc,
    Would you mind explaining the idea behind having a "Cash stop on ETF system at 0,5 or 0,75? What is your cash stop based on? I remember reading in one of your previous articles that it is a correlation between SSO and EDV.
    Thanks for sharing.
    24 Feb, 08:08 PM Reply Like
  • User 10738981
    , contributor
    Comments (2) | Send Message
     
    Re volatility factor, in the original model the higher volatility actually decreased(!) the ranking, not increased. So that might be the reason for the diff. Better check that version as well.
    28 Feb, 06:43 PM Reply Like
  • Marc Cohn
    , contributor
    Comments (85) | Send Message
     
    Author’s reply » I found negative volatility almost uniformly denigrated the system performance.
    28 Feb, 07:15 PM Reply Like
  • User 10738981
    , contributor
    Comments (2) | Send Message
     
    Marc,
    Just a hint, to step forward from excel you could try R.
    It is a great tool adn FREE.
    You will find many samples through which you can familiarize with it even if you are not a programmer.
    See> http://bit.ly/1gSbWKO
    5 Mar, 04:02 PM Reply Like
  • herbey11
    , contributor
    Comments (3) | Send Message
     
    Marc/anyone-I have looked through your article but can't see how you calculate your cash stop threshold.You say its the the correlation between edv and sso. Do you mean if the correlation is .75 between these two etf's then the model moves into cash?
    thanks
    2 Mar, 09:15 PM Reply Like
  • TrickPony
    , contributor
    Comments (13) | Send Message
     
    I would think that the correlation of EDV & SSO would be mostly negative. 0.75 correlation would be that EDV/SSO are locked stepped together 75% of the time?
    3 Mar, 11:06 AM Reply Like
  • Marc Cohn
    , contributor
    Comments (85) | Send Message
     
    Author’s reply » That is right. When they are lock step together, go to cash.
    3 Mar, 11:52 AM Reply Like
  • IndyDoc1
    , contributor
    Comments (111) | Send Message
     
    What is the time frame that you calculate the correlation of SSO and EDV from?
    3 Mar, 12:07 PM Reply Like
  • herbey11
    , contributor
    Comments (3) | Send Message
     
    Just to ask are you still using the volatility compensation factor still in this version?thanks
    11 Mar, 03:16 PM Reply Like
  • herbey11
    , contributor
    Comments (3) | Send Message
     
    Just to double check did you also abandon the volatility compensation factor in this version also?thanks
    11 Mar, 03:16 PM Reply Like
  • rmpalpha
    , contributor
    Comments (50) | Send Message
     
    While I think I understand the concept of the Cash Stop (i.e -- when SSO and EDV are correlated greater than 75%, go to Cash), I am having a problem calculating the ratio. When I use (SSO*0.75)/(EDV*0.25) I get a cash signal every month, so my formula obviously is incorrect. What is the formula to calculate the ratio?

     

    PBrowse
    2 Jun, 11:36 AM Reply Like
  • tmdoherty
    , contributor
    Comments (62) | Send Message
     
    I don't understand the SSO/EDV correlation stop either. Can you please be specific as to how you calculated this?

     

    Is this the correlation between closing prices? Average prices? Daily or monthly performance? Something else? How many sessions is the look-back period?

     

    Using Excel, I calculated correlation coefficients between SSO and EDV closing prices for the time period 12/3/12 thru 06/16/14. I tried 3 different look-back periods: 20 sessions, 40 sessions, and 4 months.

     

    Only the 20 session correlation coefficient exceeded 0.75 during this time period. And that only happened a few times, and it did NOT happen in December 2013 or January 2014 (you mentioned that the stop kicked in and prevented what would have been a bad month in Jan 2014 because the system picked SSO, which did very poorly that month). The correlation coefficients were all negative during December 2013 and January 2014.
    16 Jun, 10:43 PM Reply Like
  • AlexanderHorn
    , contributor
    Comments (7) | Send Message
     
    GMR correlation trigger works like this:

     

    - get monthly (daily) close prices
    - calculate log returns of both
    - calculate correlation between them over (P_Cor) periods.
    - If correlation > C_tresh go SHY, else stick to ticker choosen by system.

     

    For me works best:
    Monthly prices: P_Cor = 4, C_tresh = 0.75
    Daily prices: P_Cor = 84, C_tresh = 0.00

     

    here code in system I use, hope it helps

     

    synEDV = getseries("synEDV", close);
    synEDV = log(synEDV/ref(synEDV,...
    synSSO = getseries("synSSO", close);
    synSSO = log(synSSO/ref(synSSO,...
    corr1 = correl(synEDV, synSSO, P_Cor);
    Correlationtrigger = iff(corr1 > C_tresh, stringequal(name(),"sh... !stringequal(name(), "shy"));

     

    note that I extend SSO with MDY and EDV with TLT prior to ETF inception.
    4 Jul, 09:35 AM Reply Like
Full index of posts »
Latest Followers

StockTalks

More »

Latest Comments


Posts by Themes
Instablogs are Seeking Alpha's free blogging platform customized for finance, with instant set up and exposure to millions of readers interested in the financial markets. Publish your own instablog in minutes.