The idea behind projections is to take current data, match it with some previous data using some algorithm, then, as outcomes are known for previous data, we can use such information for statistical future projections of current data. Such analysis is done in Quantitative And Machine Learning Asset Analysis.

Here, we use projections to construct weights for a specified portfolio. Note that we did this in Computing Portfolio Weights From Machine Learning Projections using recent stock and ETF data. Now we use futures data instead. Specifically, our calibration data is composed of 41 continuous futures contracts with the earliest data from 1991.

Preparing Calibration Data

  1. Transform data into arrays of dual moving averages (DMA). (21 day MA – N day MA)/N day MA, where N=42, 63, …, 189, 210.
  2. The DMA data is scaled and outliers are handled via robust scaling.
  3. Compute 63 day forward percent returns.
  4. Subsample the data. Choose 50,000 total data points, divide by the number of years of data to obtain data points per year. For each year, randomly shuffle the data and choose this number.

Preparing Current Data And Computing Projection Weights

  1. Choose a portfolio. We use the 2023 Dogs Of The Dow.
  2. Apply steps 1 and 2 above.
  3. Apply the nearest neighbors algorithm. For each current data point, find the 50 nearest neighbors in the calibration data. Below we show percentiles of the 63 day percent returns of the 50 matches, as well as up and down %, median up and down percent returns, and expectancy: (up fraction*median up) – (down fraction*abs(median down)).
  4. Long Short weights = expectancy/sum(abs(expectancies))
  5. Long Conservative weights = same as long short weights, but negative weights are set to 0.0 and the residual is assigned to cash.
  6. Long Aggressive weights = positive expectancy/sum(positive expectancies), negative expectancies are set to weight = 0.0, no cash.

Nearest Neighbor Projections

NameClose10th Pctl20th Pctl30th Pctl40th Pctl50th Pctl60th Pctl70th Pctl80th Pctl90th PctlExpectancyUp %Down %Median UpMedian Down
VZVerizon Communications33.36-17.512-11.437-4.277-1.0440.5764.5326.89310.29514.01-0.67856.044.07.478-11.058
WBAWalgreens Boots Alliance29.35-10.869-8.085-5.378-1.7313.8784.9097.3258.44835.5680.83554.046.07.751-7.285
IBMInternational Business Machines143.12-7.138-5.585-3.539-1.7690.8141.9083.0488.17414.302-0.04256.044.04.138-5.362
CSCOCisco Systems53.79-7.342-4.296-2.763-0.1542.1393.3055.5587.57310.161.66158.042.05.788-4.039
JPMJPMorgan Chase & Co.154.45-9.24-6.284-3.371-0.752.8184.3267.48713.50717.1731.958.042.07.779-6.218

Portfolio Weights

Long Short-0.04190.16320.38730.0516-0.0189-0.00260.00360.1026-0.11080.11750.0
Long Conservative0.00.16320.38730.05160.00.00.00360.10260.00.11750.1742
Long Aggressive0.00.19760.4690.06250.00.00.00430.12430.00.14220.0


This method of portfolio construction allows users to express their views by choosing: data representation (Bollinger Band array, zscore, fractional return series, etc.), data length, type of calibration data, projection days, constructing weights from different types of projections (50th percentile return, up/down %, median up/down percent return delta, etc.). Thus we can generate a wide range of possible portfolio weights as an aid in constructing promising portfolios.