Jeffrey Cohen, President US Advanced Computing Infrastructure, Inc. Chicago Quantum (SM)
Dec 7, 2020 1pm CT
A few updates to share on our run over this past weekend.
We include more shares in our analysis: (from ~3,250 to 4,529 US common shares on Dec 6, 2020). We analyze 4,529 stocks, perform data validation to remove missing or incomplete adjusted close prices, and BETA values (1-year vs. SPY ETF) outside 'extreme' ranges, and analyze 4,163 US common stocks (up from 3,171 in our most recent publication). We made improvements and adjustments. We now include both NASDAQ Q and G stocks in our largest analyses. We improve our FTP download and validation of tickers to enable more 'tricky tickers' to be included. For example, we now include stocks with tickers that include '-' or '.' or ' ' when they are US common stocks. Before, we pull data from NASDAQ or a static spreadsheet from NYSE. Now, we pull all tickers via FTP from both NASDAQ and NYSE.
The second change is that we automate the downloading and validation processes. We eliminated a source of human error (and time consumption). This process still takes a very long time depending on the hardware we use, and begins to show the speed advantage of our HP Z420 server (multi-core, 3.6GHz processor with 48GB ECC RAM) over our iMAC 2013 with 16GB non-ECC RAM).
We also varied our CQNS_power setting across two parallel runs (same data, different systems). The CQNS_power (one ran at 6.5, and the other at 4.3), did not provide significant difference in the analysis we run. Therefore, we remove the CQNS_power adjustment parameterization from our roadmap.
negative or near-zero BETA values.
Just had a minor epiphany. Our model enables swing trading. We help find portfolios of stocks that have shown 'destructive behavior of individual stock volatility' so one can keep the BETA exposure and reduce the portfolio volatility below that of the individual stocks.
Our Chicago Quantum Net Score model, which analyzes stocks to determine a portfolio to hold for up to 25 trading days, enables swing trading.
So, we Tweeted on it, and added the phrase 'swing trading' to our website in a few places.
We enable swing trading. We do not suggest stocks that will do well on any one day, but over a period of up to 25 trading days (and we have seen the effects last up to 35 trading days - or 7 weeks).
When I look at how I use the model, I started by swing trading for a few days. Going to hold the current position (and any additional stocks identified to add to those portfolios) for a few weeks...let the winners run a bit and balance between offsetting positions.
We bought four evenly weighted stock positions this week, in two pairs of positions:
On Dec 7, we bought into one new stock (will disclose later), and added to two of our positions.
If you would like to learn more about our quantum algorithm or platform, or to buy a stock analysis, please click our portfolio tab.
Link to Research Gate (this and other articles): https://bit.ly/3171Stocks
In this podcast we discussed consulting on quantum computing in financial services, and the challenges of a quantum computing consulting start-up.
Good morning quantum computing and portfolio optimization researchers,
So, a few days ago our models went haywire. They started picking low BETA stocks to reduce portfolio risk (without us telling it to do that). Who would have thought? We are in the middle of a sector rotation from COVID 19 stocks to mainstreet stocks (small businesses = $IWM = Russell 2000) and low BETA stocks (those that provide a bit of safety when markets fall).
But, it also started to fall behind the power curve in picking deep enough minima. It could be that picking low BETA stocks is easier than finding high BETA stocks that offset each other's risk.
We ran our problem on the D-Wave 2000Q solver 6 last night and received good results, but no longer better than our classical models. A few updates: we modified our chain strengths (0.75, 1.5) and our chain lengths varied (28, 38). We failed to embed once out of 7 times (max clique of 64 fully connected vertices). The system was fast and responsive. We shifted our matrix to the negative at first, and received good answers, then shifted our matrix positive, and also received good answers (albeit, different ones). Our best answers classically, and on the D-Wave, were between 7 and 9 stocks in a portfolio, and very low BETA securities (~0.4 or less).
Why did our classical do better? Thanks to Davood Rashmanifard, who as a Masters student in Iran wrote a thesis* on how to optimize a portfolio with a genetic algorithm, we found an optimization step in our Genetic Algorithm that was missing, and it caused a team discussion that uncovered a few more improvements we could make. We increased the mutant:child ratio in our breeding (more noise), and updated how we determine the fitness (CQNS score) of each chromosome (stock portfolio). We also updated our mutations to be more reasonable (flip only 1 or 2 stocks) in some cases. We also blast out our initial population 100x before starting to breed. Our Genetic Algorithm performs better now.
We also modified our custom simulated annealer. We created two versions of it, and customized them further for the task at hand. One annealer jumps very often, even to less attractive portfolios, runs very hot to start (100 degrees), and finds a solution from a random seed. We made this one start hotter. It jumps to different neighborhoods easily and often, seeking out the best global minima before settling into a local minima.
Our second annealer starts with our best portfolio found (at that moment), and starts cooler, but runs more cold. It may start at 0.001 degree and run to 1e-13 degrees. We also suppressed its ability to jump to a less attractive portfolio...so it runs deeper in looking for local minima in the neighborhood. In other words, it is nearsighted, and that is good for making that portfolio area the best it can be.
Finally, we continue to find ways to optimize our code in the Jupyter Notebooks to run faster and find deeper solutions. We have found a number of promising research papers to keep learning new tricks and methods for deepening all of our methods.
Now that we have improved our stock picking algorithm and solvers, we plan to run another 3,200+ stock run and see if we start picking higher BETA stocks (like we did in October).
Here are a few pictures of what a successful run looks like on the D-Wave. This uses the D-Wave Problem Inspector application. Thank you D-Wave!
Finally, our research on Kurtosis and Skewness in portfolios has slowed down as we continue to improve our stock picking model. Our next step, is to try and run our stock picker on the D-Wave Pegasus with only 64 stocks, and see if we get better answers. We will also port our desktop stock picking code to our HPe deskside server to see if we can find deeper and better portfolios.
Written by: Jeffrey Cohen, Chicago Quantum
Contact me at +1.312.515.7333 (cell) and email@example.com (email).
Client inquiries welcome.
To learn about and try our stock analysis service, please click the button below. Your purchase funds our research.
Strategic IT Management Consultant with a strong interest in Quantum Computing. Consulting for 29 years and this looks as interesting as cloud computing was in 2010.