We analyze 3,231 US common stocks and picked a 5-stock efficient portfolio. Guess what? The D-Wave Quantum Annealer picked the best portfolio.
We picked a 5-stock portfolio after running hours of analysis and data validation. Guess what, the D-Wave Quantum Annealer picked the best portfolio.
Jeffrey Cohen, President, US Advanced Computing Infrastructure, Inc.
Nov 12, 2020, 5:37pm CT
Updated Nov 25, 2020 with results and learnings
We analyzed 3,231 stocks by applying our Chicago Quantum Net Score and picked an efficient portfolio of 5 stocks. These stocks should have reduced volatility while maintaining their BETA exposure to the market. See the end of the article for the 5 US common stock tickers we picked.
Update (9.5 trading days): What we see is a selection of low BETA stocks, which have demonstrated (zig and zag) movement, but in a much tighter band. Three stocks moved in almost a horizontal line, one went up and one went down. Overall performance is ~ 1% below SPY.
We have broken up our logic to run the big sets of stocks in one code-set (yesterday and today we validated 3,231 US Common Stocks and ran them). Instead of a fast run, we ran it long and slow…deep analysis into the portfolios. We had 253 days of stock data, and a search space of 10 ^ 972, so I figured it was worth the extra processing time.
BETA range post validation (3.11 and 0.0119)
market return (1 year): 14.95%.
All in stocks:
- Chicago Quantum Ratio = 0.8468
- Sharpe Ratio = 6.69
- CQNS_Power from CQNS_True = 4.182982075474502
- Expected Return = 17.53%
- Variance = 0.00068608
- Standard Deviation = 2.62%
- CQNS score = 0* (actually -3.25 e-19)
63 stock best solution: CQNS Score: -0.001288, or 1.29 x 10–3
So, we picked 64 stocks for round two. The model picked 63, and two failed 2nd-level validation (we had new market data), so we were down to 61 stocks. We looked at competing models in our stable (bespoke simulated annealer and GA random seed), and found 3 stocks that were in both of those ‘2nd best’ portfolios, but not in the best one. So, now we have 64 stocks.
Here are the 64 stocks we ran:
Stocks = ACIA ACTG AKAM BGIO BJ CALM CBPO CCX CVR DISCB DUC EGF EQC EQS EVN FIZZ FMY GBAB GIS GIX HMG IGI ITP JMP LN LSXMB MASI MCA MGF MHF MIY MSN MTT NCB NID NMI NUM NXC NXQ PATI PFMT PLAG PSTL PZZA QGEN REGN RELL RMG RMI SBE SBI SEB SG SWBI THS TIF TRMD TRNE TVC VCIF VCRA VIRT VZ WPM
Interesting data about this 2nd set of stocks (the first set of ‘Allstars’) is that they have very low BETA values: (0.648 and 0.0135)
Update: Why did we pick low BETA stocks? Normally we pick higher-BETA stocks with reduced portfolio volatility. The answer is another CQNS formulation change, but only in our genetic algorithm and simulated annealer. When we moved back to our original QUBO-friendly CQNS formulation, we over-stated the expected returns in those solvers, which allowed the model a ‘flight to safety’ and lower BETA stocks. Although clever (at the time low BETA stocks went into rotation), it was an error and has since been corrected. We have since corrected this model, and no paying clients were impacted by the change.
Having a very high CQNS power (4.18) means the expected returns are less important (actually have a lower value) that typically, and therefore the volatility is relatively higher, and more important in the optimization. We used to run CQNS power at ~ 3.0, which should pick higher-BETA stocks.
The world looked a little brighter when we ran ‘round 2’ and market return was now 14.99%, up 4 basis points for the year. This is a challenge of running the model in two parts during the trading day.
Now for the good part. The D-Wave found a portfolio with the best CQNS score: -1.5 x 10–4. We ran the D-Wave about 10 times. Took about 15 minutes of elapsed time, including a short break for coffee.
The other solvers did ok, but not as well. Our best classical solutions came from either a simulated annealer or a genetic algorithm. Tonight we are going to beef up our genetic algorithm to find better answers. We need that one to really dig into the matrix and give us better answers (like it has in the past before we speeded it up).
Table of methods, scores, # stocks in best answer
D-Wave QA, -1.5 x 10–4, 5
D-Wave SA, -1.0 x 10–4, 1
Custom GA, -8.8x 10–5, 6
Custom SA, -7.7 x 10–5, 2
D-Wave TABU, -7.4 x 10–5, 30
Custom Bifurcator, -5.0 x 10–5, 38
All 64 Stocks, -4.9 x 10–5, 64
Would you like to know what five (5) stocks we picked? Here they are:
QA D-Wave -0.000150 [‘AKAM’, ‘CCX’, ‘FMY’, ‘PZZA’, ‘VZ’] 5
On the D-Wave 2000Q solver 6 (Chimera) we ran Chain Strength = 1, annealing time = 50 microseconds, and 500 runs for portfolios of size (2,8) and the best one was 5 stocks.
This is a pretty big map for the Chimera. In a recent run, 64 stocks uses 1,364 qubits as ‘target variable’ with a maximum chain length of 30 qubits (to hold one stock value). Also, each run took 146k microseconds, or 146 milliseconds of QPU access time, which includes programming time and sampling time.
Please feel free to ask me questions about the work or the D-Wave quantum annealer runs. We are all learning, researching, and growing. As an example, I am curious if the Pegasus (new D-Wave Advantage (TM) system) would give us a better answer for 5 stocks.
Here are some graphics from the D-Wave Inspector (TM) for the quantum annealing runs. There are very few chain breaks. You can see in one run the energy was very bad (very positive), with a few negative values which we wanted. This is still a probabilistic system, and our creativity is in getting it to find really good answers quickly and cheaply.
Update: Business Conclusion: The D-Wave quantum annealer did pick the best solution, although it was solving for a different CQNS formulation than two of our classical solvers. Therefore, we have updated and enhanced our genetic algorithm, our simulated annealer, deepened the search space of our TABU sampler, and tuned our simulated bifurcator to be relevant and useful (vs. just interesting science). Our solutions moving forward are better, deeper and more attractive for our clients.
Our latest paying client said he paid for his $750 cost in the first 3 minutes of trading in our portfolio.
Thank you for reading.
Please purchase a portfolio optimization run from Chicago Quantum by clicking here.
Please read our research on this topic.
You can email me at firstname.lastname@example.org.