
When a recent contact forwarded “(Re-)Imag(in)ing Price Trends” to me this spring, I was greatly heartened. I knew my undertaking in developing VecViz’s Vector Model and V-Score – distilling predictive performance insights from price history charts, was ambitious. I believed that I had done so, but convincing others that it was even theoretically possible was often a challenge. But here, in this paper, was the account of established academics from esteemed institutions of their efforts to do the same. Even better, the abstract indicated they had some measure of success.
Thus, I am eager to discuss the model proposed in this paper and explore its similarities and differences with VecViz’s V-Score. We will start by describing both models, but first, please note:
(1) I have not discussed my interpretation of this paper nor any points of comparison of the model it proposes to VecViz with any of the paper’s authors. The opinions expressed in this blog are entirely my own.
(2) I recommend this paper to anyone reading this blog. It is both highly readable and thoroughly exhaustive in its discussion of the proposed model’s methodology, its performance, and explanations for its performance. The paper and its “Internet Appendix” also provide great background information on the topics of image recognition, neural networks, and technical analysis more broadly.
(3) My contact reviews his replication of the broad findings of this paper using similar methods in his own paper, “Ethereum’s Alphabet: Predictive Price Chart Patterns Discovered by a Neural Network”. It is also a good read, and I recommend it as well.
VecViz’s V-Score applies machine learning to VecViz “chart shape” and related metrics to rank investment opportunities
The V-Score utilizes a proprietary ensemble of widely used Python machine learning model libraries to generate 6 time horizon specific scores that sum to the “overall” V-Score. This ensemble of models is trained upon VecViz’s database of chart shape and related metrics for 30,000+ ticker-model dates spanning 100-150 tickers and 250 randomly selected model dates between June 2005 and January 2021. The only input to VecViz’s chart shape and related metrics for each ticker – model date is a window of up to 6,500 closing prices, to the extent available.
The chart shape and related V-Score criteria metrics are displayed in the spider chart depicted above. This chart is accessible on vecviz.com’s Dashboard page, where you can generate a pop up explanation of each metric by hovering your mouse over its label. The V-Score criteria metrics most concerned with “chart shape” are those between “10 o’clock” and 5 o’clock” on the spider chart, starting with “Top-Top Prox” and ending with “Avg Down Angle”. The other metrics relate primarily to price probability percentiles and option fair value estimates, which are derived, in part, from those chart shape metrics via a separate VecViz machine learning process (the Vector Model).
The paper “(Re-)Imag(in)ing Price Trends”, describes a methodology for ranking investments that is the closest analogue to VecViz’s V-Score that I have come across.
In “(Re-)Imag(in)ing Price Trends”, published in the December 2023 issue of the Journal of Finance, Jingwen Jiang of University of Chicago, Bryan Kelly of Yale, and Dacheng Xiu, also of University of Chicago (collectively “JKX”), report that they have generated “powerful and robust predictions of future returns” for stocks by applying a convolutional neural network (CNN) to standardized images of stock price charts. CNN’s are a form of machine learning particularly well suited to image files.
JKX trained their model on standardized images, such as the one displayed above, of the trailing 5, 20, and 60 days of O/H/L/C (open/high/low/close) prices, trading volume, and a moving average of closing prices for a randomly selected 70% of all NYSE, AMEX and NASDAQ stock market data from 1993-2000.
JKX attribute a large part of their model’s performance to “image scaling”
Here is how JKQ describe “image scaling” and its importance to their model’s results:
“A key component of image-based prediction is the implicit data scaling achieved by the image representation—images put all stocks’ past price data on the same scale so that their recent maximum high and minimum low prices span the height of the image, and all other prices (open, high, low, close, and moving average) are rescaled accordingly, likewise for volume. Following this data transformation, a logistic model can produce a reasonable approximation to the CNN“1
Later in their paper, JKX more explicitly acknowledge that images can be represented numerically:
“In other words, the key performance differentiator… is using an image representation. Once the data are represented as an image, either literally (as in our baseline case) or figuratively (using image scaling of time-series data), a deep learning model can use historical market data to produce powerful return forecasts.”
In the table below JKX display Sharpe Ratio performance metrics for their core image based CNN model, their application of logistic regression to image scaled data (labeled “Logistic (image scale)” in the table), and their application of a CNN to image scaled data along with non-image scaled data input variations. “Equal-Weight” and “Value-Weight” refer to the weightings of the tickers in the test results presented. Consistent with their observation that image scaling is the key performance differentiator, the logistic model utilizing image scaled data performs nearly as well as the image fed CNN for the 20 day horizon and it outperforms the image fed CNN at the 60 day horizon.

We believe VecViz’s “Chart Shape” metrics incorporate “Image Scaling” as JKX define it, and in analogous ways as well
We don’t know whether JKX would agree, but at least a couple of VecViz’s “Chart Shape” metrics that are inputs to both the Vector Model of Price Probability and the V-Score seem to us to clearly fit their definition of “image scaling”, which we repeat here:
“images put all stocks’ past price data on the same scale so that their recent maximum high and minimum low prices span the height of the image,“
I interpret this statement to mean that, for JKX, image scaling involves scaling the prices in a chart between 0 and 1 based on where they lie in the historic range presented (assuming by recent they are including all observations pictured, because their longest data window is only 60 days).
VecViz’s Top-Top Prox metric is a close but not perfect match for this definition. It scales the current price as a percentage of the highest prior “top” identified in the chart. It is floored at 0 (for equities -not commodities as we saw with oil in 2020), but it can technically exceed 1.0 if the current price is in an uptrend that has exceeded the prior highest top but not yet crested to form a top itself., as is the case in the illustration below. VecViz’s Bot-Bot Prox metric works analogously, but inversely, with regard to the lowest bottom.

Other VecViz chart shape metrics that are image scaling-esque in nature with regard to the x-axis include “Last Top Age”, “Last Bot Age” , “Age Top/Age Bot”. Those that capture the sharpness of the major historical moves up and down in a standardized way include “Avg Up Angle”, and “Avg Down Angle”. Explanations for all these metrics can all be viewed in the Spider Chart dashboard (the 2nd dashboard from the top).
However, the inputs to JKX’s model and the V-Score differ fairly substantially
As mentioned above, VecViz analytics, including the V-Score, are based entirely on closing prices and it considers a much longer term trailing window of price history than JKX’s model. In contrast, JKX includes OHLC prices, a moving average for closing prices, and volume in the images their model processes. Thus, JKX’s model uses much more primary source content to scale for each date than the V-Score does, but the V-Score uses many more dates.
Another notable difference is that VecViz’s V-Score uses a number of metrics from the Vector Strength Histogram chart and metrics derived therefrom, such as price probability percentile and option fair value estimates. Neither these metrics nor anything like them are contemplated by JKX’s model.
How does V-Score performance compare to JKX’s model performance?
We have not replicated the methodology of JKX’s model. Therefore, we cannot do an apples-to-apples comparison of its performance to the V-Score, using the same training and test data, performance metrics, etc.
That said, there are out of sample test results available for both models, which we can examine. We present these results in the sections that follow, but caution against comparing the models to each other on the basis of them. The results for the V-Score and and JKX’s model cover disparate time frames and ticker sets, and neither model’s results reflect optimal training data breadth or recalibration over time.
Finally, we urge you to be mindful of the myriad ways such test results can differ from results obtainable from actual real investments.
Reported performance of JKX’s model:
Let me first note that JKX advise that their reported model results should be considered perhaps the floor of what is possible with image scaling techniques. I think their contention is fair given the limited amount of training data (1993-2000) relative to the out of sample test period (2001-2019). Both the training and test period utilize all CRSP data for all stocks on the NYSE, AMEX and NASDAQ unless otherwise noted.
JKX present a wide array of performance testing results for their model in their paper. Results reported include many of the possible permutations of forward time horizon (1 week forward, 1 month forward and 1 quarter forward horizons), the number of days depicted in the image windows (5 day, 20 day and 60 day), ticker universe (all NYSE/AMEX/Nasdaq tickers as well as only the 500 largest companies), and the weighting of the tickers in the universe (equal and market weighted).
Some summary comments on the results: (1) results typically improve by decile of expected performance, (2) results tend to decline with time horizon, with 1 week forward results the strongest, (3) results for the top decile exceed the bottom decile by an exceptionally strong ~80bps for the broad overall NYSE/AMEX/Nasdaq universe for the 5d period (4) when the trading universe is restricted to the 500 largest stocks (a universe that more closely aligns with the tickers for which VecViz has V-Score performance data), results are less spectacular, but a still strong 9-12bps per week. See the table below for details.2

Finally, JKX also report having successfully applied the same version of their model trained on US Stock prices to international stock prices.
V-Score Model Performance
We have been conducting an out of sample test of the V-Score from January 2022 onward, measuring its performance at 6 different forward time horizons spanning 1 day forward to 1 year forward. You can find an interactive filter of a sampling of the test results on vecviz’s dashboard page (“History of V-Score Forward Price Performance”, the second dashboard from the bottom).
Note that in order to keep dashboard load times at a tolerable level we present only a sampling of the overall performance test results in the dashboards. Specifically, the dates available in the filter are an equally spaced 21 dates from the most recently available Model Date back to 1/20/22. We intend to update the results daily, which will cause the dates presented to change gradually over time.
We included a screenshot for the 21, trading day horizons across all ~150 tickers VecViz covers or has covered, for all model dates in the sample for which there are 21 trading days of forward price data available given the horizon selected. As of 8/29/24 the sample for the 21 day horizon showed positive V-Scores outperformed negative V-Scores by 0.41% (+0.03% for positives minus -0.38% for negatives). The performance for the 1d, 10d, 63d, 126d and 252d horizons as of this date, calculated similarly, were -0.14%, -0.02%, +1.38%, +3.68%, +5.84%. In summary, V-Scores > 0 solidly outperformed those <0 for time horizons 21 days or longer, but underperformed them for the 10d and 1d time horizon.

Intended Use Cases and Future Development May Be the Greatest Difference Between JKX’s model and VecViz’s V-Score
JKX recognize that investors like to use charts and they hope to see their chart image reading approach morph over time to become a “model of investor perception”. They state their “ideal research agenda” to be to “develop a model that can translate visual data into an optimal portfolio in a way that mimics human perceptions and decision processes.”“.
In contrast, VecViz’s primary aim in developing and publishing the V-Score is to drive engagement with VecViz’s Vector Strength Histogram (VSH) dashboard (third from the top). While VecViz expects that the V-Score can provide incremental signaling information to most investors about the presence of risk or opportunity, VecViz believes that using the VSH can help improve their cognition of investment risk and opportunity.
Conclusion
I finished JKX’s paper even more heartened than I was when I first came across it. Though I do not know whether its author’s would agree, I believe that there is enough similarity between the modelling techniques they describe and those of VecViz for their paper to add some credibility to VecViz’s methodology, at least at the theoretical level. However, there is also enough of a difference between the techniques for VecViz’s methods to remain largely proprietary (regardless of whether VecViz’s pending patent application is ultimately approved).
- The “logistic model” they refer to is essentially a linear regression model tweaked to produce only 1 or 0 as output, representing the probability of positive return. Logistic models use numbers as input, not images. The “CNN” they refer to is a convolutional neural network, a form of machine learning especially suitable for image recognition. ↩︎
- JKX use notation of Ix/Ry which can be read a x day trailing interval used to forecast returns y days forward. So, for example, I60/R5 would mean they used images of a 60 day trailing window to generate forecasts of returns for the 5 day forward period. The panels for “MOM”, “STR”, “WSTR” and “TREND” represent other price chart based strategies related to momentum, one month short term reversals, weekly short term reversals, and a trend strategy combining short, intermediate and long term trend signals, respectively. ↩︎