Here's a high returns, high drawdown tearsheet.
It exemplifies why there shouldn't be a cap on turnover. Although the drawdown is high the primary factor used here could be used to bring up returns in a hedged, multifactor, contest algo.
Here's a high returns, high drawdown tearsheet.
It exemplifies why there shouldn't be a cap on turnover. Although the drawdown is high the primary factor used here could be used to bring up returns in a hedged, multifactor, contest algo.
Thanks for the tear sheet to look at.
First, I'll note that my comments below are about algorithms that are seeking an allocation from Quantopian. There are many sound investment strategies, and Quantopian is focused on a very specific type of strategy. My comments aren't to say that the suggested strategy is "wrong;" my comments are "this strategy isn't a match."
There are several aspects of this strategy that would keep it from consideration:
All that said, I don't think it makes a case for a higher permissible turnover standard. It's not a viable algorithm on a number of fronts, not just turnover. Or is there another way that you think I should be looking at this?
Also, what slippage model did you use? To make the case for a viable higher turnover, it would be important to see the tear sheet of an algo using FixedSlippage
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.
Thanks for taking the time to look at this Dan. I never intended to promote it as an allocation worthy strategy, as noted the primary factor used here could be used to bring up returns in a hedged, multi-factor contest algo. When building contest/allocation worthy strategies I've noted that my turnover is too high, even though I'm just using the main concept used here as a factor. Is there a sound reason to put an upper cap on turnover? I would think you could weed out the losers by enforcing commission and slippage standards. Reading the comments elsewhere the only reason I saw is that Q simply doesn't think it is possible to profit with high turnover. I could be wrong though.
I'm still mostly using the default slippage model, I'll upgrade my scripts. I don't turn slippage off or use my own custom models.
Thanks again.
The driving reason to put an upper cap on the turnover is the risk model. The risk model does its evaluation based on your end-of-day holdings, and doesn't model intraday holdings. So if you have a high turnover, the risk exposures aren't well modeled. The low turnover requirement keeps your strategy in a mode that we can reasonably evaluate.
That said, we chose that risk model in part because high-turnover strategies are unlikely to be a match for an allocation. Again, it's not that it's impossible to be profitable with a high turnover algorithm, but that type of strategy isn't a match for us.
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.
@Warren, I would like to see the same backtest tear sheet with the round_trips option turned on. It would not reveal your code, but it would help answer some important questions. One of which would be feasibility.
Code: bt.create_full_tear_sheet(round_trips=True)
Meanwhile, bravo. Really impressive.
@Warren, sorry, to bring the bad news.
You have uncovered a serious bug in the tear sheet calculation. It makes the total profit of short trades 100 times larger than they should be.
In reality, the overall performance is more subdued. Something more like a 20.97% CAGR which is still interesting, but a far cry from the reported 666.9% CAGR.
Note that due to this error, your cumulative return charts are also way off.
Nonetheless, I found some qualities in your trading strategy that should be investigated further. So, do not throw it away, it still has value.
@Warren, if it is in the backtester too, then this becomes a very serious bug.
It would put in doubt every single backtest ever generated on Q since the implementation of that bug. It would put in jeopardy the result of any backtest performed using shorts. This could be millions of them. Talk about a monkey wrench...
I don't necessarily think that this is a bug. I've deliberately focused the algorithm's attention upon the most volatile stocks with very high position concentration. That approach is either going to lead to wildly erratic random walks, massive gains, or massive losses. So I'ld be surprised at a 20.97% CAGR, just random walks with this approach will lead to higher gains/losses than that.
As always there are drawbacks. In this case drawdown is very high. That can be reduced through lowering position concentration at the cost of returns, and other strategies. There are other problems as well such as the use of leveraged ETF's, etc.
I do think I may well have hit a paying factor that works with the most volatile stocks judging by the logarithmic chart in the tearsheet. The returns are more consistent than what you would expect from a random walk.
@Warren, look at Total Profits All Trades on your last tear sheet. The numbers are: 5,812 trades with an average net profit per trade of $4,457.68. Result:
Total profit: $ 25,908,042, and not as reported in the short's column: $ 2,597,959,431. You had a total of 3 longs that resulted in a loss, so they could be ignored in the face of 5,809 shorts.
The CAGR would be: ( 25,908,042.64 / 10,000,000)^(1/5) – 1 = 0.209725 or 20.97%.
Another measure would be: ( 35,908,042.64 / 10,000,000)^(1/5) – 1 = 0.29133 or 29.13% if we consider the end value of the portfolio (including initial capital).
Like I said, there are interesting properties in your strategy, but a 666.9% CAGR is not one of them.
There is definitely a bug in the tear sheet calculations. And if it also appears in the backtester, then that is not good.
I will wait for Quantopian to address the issue.
Your trading strategy is better than random walk with a 64% hit rate. It has the advantage of going all short on stocks that are doing miserably, often on their way to bankruptcy court or delisting. Yes, there is something there. Note, that you are doing this in a rising market, you would do even better in a declining one.