Back to Community
Custom Factor - Persistent Net Accruals Growth

Here is an interesting approach to a long only strategy using a custom factor. I provide a little more detail (yet still brief) on the strategy in the beginning of the algorithm code. Thought I would share this one with the community. Open to any suggestions, comments, criticisms.

Clone Algorithm
42
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 57ba3ba62437c80fffb45ade
There was a runtime error.
5 responses

Attached is the tear sheet.

Loading notebook preview...
Notebook previews are currently unavailable.

What amazed me about the superior risk adjusted returns of this strategy is that the draw down was actually less than the S&P500 during the 08-09 recession...52% v 54% (S&P500 strategy below). I would have thought that buying companies with persistent net accruals growth would have exposed the portfolio to significantly more counter party risk heading into the recession, forcing large write offs. I guess the combination of diversification and persistence outweighs the incremental credit risk.

Open to any ideas that critique this factor?

Clone Algorithm
2
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 57bce5bf6e73150fffb9aef6
There was a runtime error.

I had a few thoughts:

  • The best benchmark to use will be your universe (market cap + volume filters). Since you have no trading costs, I would expect this to perform better than SPY. I would suspect the volume filter also might effect the performance slightly.

  • It would be good to run this long short, to remove the beta. You could rank and use top 10% and bottom 10% to choose your longs and shorts, rather than comparing to the fixed Quality factor score of zero. You could also beta hedge. I have some code for this if you like.

  • AlphaLens would tell you how predictive your ranking is for future returns.

Burrito Dan,

This shows why it is good to share with the community. 99% of the time that I run a back test on a factor model, I do it with Q default slippage and commission. Somehow I must have popped zero trade costs into this algo, and then forgot about it. I'm going run a back test with transaction costs, but I am not going to expect much....

Thanks again for pointing this out.

Burrito Dan,

Here are the results with default slippage/commission. Looks like this dog can still hunt.

Moving on to your other thoughts:

"It would be good to run this long short, to remove the beta. You could rank and use top 10% and bottom 10% to choose your longs and shorts, rather than comparing to the fixed Quality factor score of zero. You could also beta hedge. I have some code for this if you like."

  • I am not sure that I would want to short any of the stocks in this portfolio because the purpose was to seek stocks that will outperform using the factor. Also do not want to reduce the quantity in the portfolio for fear of losing the diversification. Maybe it would be a better idea to create an independent short factor to make this a long/short?
Clone Algorithm
42
Loading...
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
Returns 1 Month 3 Month 6 Month 12 Month
Alpha 1 Month 3 Month 6 Month 12 Month
Beta 1 Month 3 Month 6 Month 12 Month
Sharpe 1 Month 3 Month 6 Month 12 Month
Sortino 1 Month 3 Month 6 Month 12 Month
Volatility 1 Month 3 Month 6 Month 12 Month
Max Drawdown 1 Month 3 Month 6 Month 12 Month
# Backtest ID: 57c0910f922c241010e64f02
There was a runtime error.