March 2, 2019
The trading strategy illustrated in my last article goes on a simple premise. If there is cash in the trading account, or, its equivalent, it stands ready to buy shares for its stock portfolio according to its CVXOPT optimizer recommendations. It would also do so if you increased available cash reserves by either selling some shares, adding extra funds, or using leverage.
When you look under the hood, you do not see why a trade is taken. All you see is that it was executed. The optimizer took care of it all. You had no control over the prices or the quantities to be traded either. What you knew however was that the optimizer had for function to optimize for the best outcome should it find actionable data.
The trading decision process was passed on to the optimizer which followed its own internal mathematical functions. In a sense, the program delegated all the trading activity to this black box. And therefore, for all intents and purposes, this black box was or is running the show.
The optimizer does not consult you or ask for your opinion or advice. It just executes, and based on its inputs, it will issue trades: longs, shorts or none at all. It is its choice, not yours. If the optimizer does not see anything actionable, it will not trade.
Notwithstanding, the optimizer has no notion of what you are doing, or of your intentions. It is just a mathematical contraption accepting some inputs and giving out its optimized solution that it be good or bad. You could feed it other time series than price series and it would provide some other output.
I transformed the original public strategy from its initial trading stance only to a form of hybrid: it trades and invests for the long term. Thereby profiting from its short-term trading activity and its longer-term holdings.
The whole operation is similar to my DEVX8 program. I view it as an evolutionary step in my program development. It is why I started calling this new program DEVX10 since it can go much farther than its sibling using the same concepts and trading philosophy.
This hybrid strategy, when it sees a profit, it might take it and return the cash to the account which will give it the ability to buy more shares later. What it will do over time is have this fluctuating inventory ratcheting upward all the while accumulating shares while the stock prices are going up. This feedback loop is enough to feed the strategy as if in a type of reinforcement process for its good behavior. The strategy buys more of the stocks that go up the most or are the most volatile. You can see this process explained in my book: Building Your Stock Portfolio.
A view of how this optimizer is used was also provided in another book of mine: Beyond the Efficient Frontier. In it, the same optimizer was fed randomly generated price series. In it was shown that even a small long-term upward drift was sufficient to extract profits. Adding some alpha to the mix would push performance levels even higher.
Simulations were done on thousands of portfolios containing hundreds of stocks each. Link to the original program was provided for anyone wishing to test the trade mechanics.
The tearsheets and charts presented are not illusions. They used the same tools as any other program executed on the Quantopian website. The architecture and structure of the program needs to be better understood before accepting such phenomenal performance levels.
There Is No Magic
This is not magic, there is no secret sauce, it is just a different way of looking at the portfolio management problem. Not uniquely as a trading program but as a hybrid able to trade and invest for the long term.
It is not by having the CVXOPT optimizer predicting where stocks are going that the strategy is making its money. It is mostly by holding tight and waiting. From the last tearsheet, the average holding time was about 6.16 years (1553 trading days) on its 14-year backtest.
The optimizer does not have that much of a forward vision. It is a short-term myopic predictor at best, and in this case, practically operating on quasi-random price fluctuations. A way of saying that trading decisions are made almost as if on market noise (based on parameter changes at the 8th decimal). This can be acceptable if the trading account is growing, meaning that the strategy is making money regardless.
In any strategy where you know you have a larger than 50/50 win rate, you could apply a Kelly or half-Kelly number to the process to enhance performance. Thereby, on average, making larger bets which on average should produce higher performance levels. The same kind of notion is applied here as well but without the use of the Kelly criterion.
The following chart shows the probability of making a profitable trading decision. And this even if it is understood that the strategy might be mostly playing on some market noise.
This trading strategy is a variation on a theme. It is part of those strategies that take core positions and trade over those same positions. There are a great number of those out there too. In fact, there are millions of methods out there, each having their own set of procedures and objectives. And there are still even more undiscovered or undisclosed methods that need to be explored.
Still, this one is different in its way of looking at things. It has a long-term perspective, it can be controlled from the outside just as the DEVX8 system can, and to top it off, you can make it really fly.
Created...March 2, 2019, © Guy R. Fleury. All rights reserved.