Sam Pybis

Updated datasets

Technical trend indicators

Last updated 20 October 2026 · Data to September 2026 · Notes on the data · Report a problem

The fourteen moving-average, momentum and volume rules that Neely, Rapach, Tu and Zhou (2014) used to forecast the US equity premium. They are replicated here exactly from the paper’s own files, extended for the S&P 500 from December 1950 to September 2026, and computed for oil, gas, metals and crops from the World Bank’s monthly prices.

The trend uncertainty index is the share of an asset’s rules on a sell signal. For the S&P 500 it moves closely with the VIX.

0.43S&P 500 trend uncertainty index, September 2026 (6 of 14 rules on sell)
0.62correlation of the S&P 500 index with the VIX, 1990 to 2026
0.35commodity trend uncertainty index (average of 18)
11 of 18commodities in an up-trend (most rules on buy)
100%of the paper’s 12,468 indicator-months reproduced
Trend uncertainty index and the technical signals behind itMonthly. The index is the share of rules on a sell signal: 14 rules for the S&P 500, 8 for each commodity.
  • Trend uncertainty index
  • S&P 500: the paper’s signals to December 2011, public data from January 2012

Sources: Neely, Rapach, Tu and Zhou (2014) to December 2011 and the S&P 500 index from Yahoo Finance afterwards; World Bank Commodity Price Data (the Pink Sheet) for the commodities.

Hover over the chart, or select it and use the arrow keys, to read monthly values.

Show the last 24 months as a table
MonthS&P 500 trend uncertaintyS&P 500 rules on sellS&P 500 disagreementCommodity trend uncertaintyCommodities in an up-trend
Sep 20260.436 of 140.860.3511 of 18
Aug 20260.436 of 140.860.3113 of 18
Jul 20260.365 of 140.710.3112 of 18
Jun 20260.142 of 140.290.2611 of 18
May 20260.071 of 140.140.1515 of 18
Apr 20260.142 of 140.290.2214 of 18
Mar 20260.213 of 140.430.2413 of 18
Feb 20260.000 of 140.000.3113 of 18
Jan 20260.000 of 140.000.2813 of 18
Dec 20250.000 of 140.000.3711 of 18
Nov 20250.000 of 140.000.3711 of 18
Oct 20250.000 of 140.000.528 of 18
Sep 20250.000 of 140.000.538 of 18
Aug 20250.000 of 140.000.566 of 18
Jul 20250.071 of 140.140.548 of 18
Jun 20250.294 of 140.570.577 of 18
May 20250.7110 of 140.570.578 of 18
Apr 20250.7911 of 140.430.596 of 18
Mar 20250.578 of 140.860.479 of 18
Feb 20250.071 of 140.140.576 of 18
Jan 20250.000 of 140.000.577 of 18
Dec 20240.000 of 140.000.537 of 18
Nov 20240.000 of 140.000.508 of 18
Oct 20240.000 of 140.000.489 of 18

Download the data and code

The paper’s S&P 500 signals for 1950 to 2011 are written into both scripts; everything later is computed from prices downloaded when the script runs. Python and MATLAB give identical output.

Read the code

Loading the script…

The fourteen rules

Each rule gives a buy signal (1) or a sell signal (0) at the end of every month. The S&P 500 uses all fourteen. The commodities use the eight price rules, because there is no public volume series for them.

RulesBuy signal whenUsed for
MA(s,l)the s-month moving average of the price is above the l-month one, for s = 1, 2, 3 and l = 9, 12All assets
MOM(m)the price is at least as high as m months earlier, for m = 9, 12All assets
VOL(s,l)the s-month moving average of on-balance volume is above the l-month one. On-balance volume adds the month’s volume when the price did not fall and subtracts it when it fell.S&P 500

Three summaries are given for every asset and month:

Replication

Before extending anything, the indicators were rebuilt from the data file in Neely, Rapach, Tu and Zhou’s replication package with the rules in their code. All 12,468 indicator-months in their results file are reproduced exactly, and so is every bivariate in-sample regression in their Table 2. The table shows the slopes; the t-statistics and R-squared values match to the same precision. replicate_neely.py repeats the check given their two files.

Next-month log equity premium (%) onSlope, paperSlope, heret-statisticR² (%)
MA(1,9)0.6670.6671.780.54
MA(1,12)0.8680.8682.220.87
MA(2,12)0.9440.9442.421.03
MOM(12)0.5750.5751.450.37
VOL(1,12)0.8880.8882.310.92
VOL(3,12)0.8490.8492.250.85

January 1951 to December 2011, White t-statistics, as in the paper. The other eight indicators match equally closely.

The extension then has to use public data. Rebuilt from the S&P 500 index on Yahoo Finance over the paper’s own sample, the eight price rules match the paper in every month and the six volume rules in 99.6% of months. The share of rules on a buy signal has a correlation of 0.9993 with the paper’s, and the majority signal is the same in every month. The S&P 500 series therefore keeps the paper’s values to December 2011 and uses the public data from January 2012.

Assets and sources

AssetPriceSignals fromRules
S&P 500Month-end close and average daily volume of the index (Yahoo Finance, ^GSPC); the paper’s own signals to December 2011December 195014
Brent crude oilWorld Bank, “Crude oil, Brent”, monthly averageJanuary 19808
WTI crude oilWorld Bank, “Crude oil, WTI”, monthly averageJanuary 19838
US natural gasWorld Bank, “Natural gas, US”, monthly averageJanuary 19778
GoldWorld Bank, “Gold”, monthly averageJanuary 19728
SilverWorld Bank, “Silver”, monthly averageJanuary 19748
PlatinumWorld Bank, “Platinum”, monthly averageJanuary 19788
CopperWorld Bank, “Copper”, monthly averageJanuary 19658
AluminiumWorld Bank, “Aluminum”, monthly averageJanuary 19738
NickelWorld Bank, “Nickel”, monthly averageJanuary 19808
ZincWorld Bank, “Zinc”, monthly averageJanuary 19618
LeadWorld Bank, “Lead”, monthly averageJanuary 19618
TinWorld Bank, “Tin”, monthly averageJanuary 19618
Wheat (US hard red winter)World Bank, “Wheat, US HRW”, monthly averageJanuary 19728
MaizeWorld Bank, “Maize”, monthly averageJanuary 19738
SoybeansWorld Bank, “Soybeans”, monthly averageJanuary 19618
Coffee (Arabica)World Bank, “Coffee, Arabica”, monthly averageJanuary 19638
Cotton (A Index)World Bank, “Cotton, A Index”, monthly averageJanuary 19688
Sugar (world)World Bank, “Sugar, world”, monthly averageJanuary 19878

Each commodity starts in the January after the last year before 1990 in which at least half of its monthly prices were unchanged from the month before, and signals begin once there are twelve months of prices. That leaves out eras of fixed or posted prices, such as gold at $35 an ounce and posted oil prices, where a trend rule has nothing to measure. Iron ore, coal and European gas are left out altogether because their prices were set in annual contracts for decades.

The trend uncertainty index

The trend uncertainty index is the share of an asset’s technical rules on a sell signal. For the stock market it behaves like a measure of uncertainty: falling markets are volatile markets, and the index moves with the VIX. Trend disagreement, the secondary series, was tested as an alternative and does not: it peaks at turning points, when the short rules have changed direction and the long ones have not.

Correlation withRealised volatility, same monthRealised volatility, next monthVIX, monthly mean
S&P 500 trend uncertainty index0.390.310.62
S&P 500 trend disagreement0.070.030.10

S&P 500 realised volatility from daily index returns, December 1950 to September 2026; VIX from 1990. Computed in October 2026.

For commodities the index measures how widely prices are trending down, but it does not track their volatility. Across the eighteen, the average index has a correlation of −0.17 with the average absolute monthly price change, because commodity prices tend to be most volatile in booms rather than slumps. Treat the commodity index as a measure of how many trend rules point down, not of price risk. Commodity disagreement is highest at turning points such as June 2009, March 2002 and August 2011.

Before you use it

Why it matters

Neely, Rapach, Tu and Zhou (2014) showed that these simple trend rules forecast the US equity premium over 1951 to 2011 about as well as the standard macroeconomic predictors, and that the two kinds of predictor carry different information: technical indicators pick up the fall in the premium near business-cycle peaks, macroeconomic variables the rise near troughs. Updating the signals, and computing the same rules for oil, metals and crops, lets that evidence be tested on data the paper never saw and on markets it did not cover.

How to cite

If you use the signals, please cite the paper that defined them, and the World Bank for the commodity prices. A reference for this page is included in case it helps.

@article{NeelyRapachTuZhou2014,
  author  = {Neely, Christopher J. and Rapach, David E. and Tu, Jun and Zhou, Guofu},
  title   = {Forecasting the equity risk premium: The role of technical indicators},
  journal = {Management Science},
  volume  = {60},
  number  = {7},
  pages   = {1772--1791},
  year    = {2014},
  doi     = {10.1287/mnsc.2013.1838}
}

@misc{WorldBankPinkSheet,
  author       = {{World Bank}},
  title        = {Commodity Price Data (The Pink Sheet), monthly prices},
  howpublished = {\url{https://www.worldbank.org/en/research/commodity-markets}},
  year         = {2026}
}

@misc{PybisTechnical,
  author       = {Pybis, Sam},
  title        = {Technical trend indicators for the {S\&P} 500 and 18 commodities, monthly, 1950 to September 2026},
  year         = {2026},
  howpublished = {\url{https://sampybis.co.uk/updated-data/technical.html}},
  note         = {Updated 20 October 2026}
}

More updated datasets: Job openings-to-employment ratio · Large public-company bankruptcies · Oil supply, demand and risk shocks · all. Looking for something else? My guide to data for empirical finance covers more than 80 sources.

Provided as is for research and teaching; not a trading recommendation. Check the original sources before relying on the figures. The scripts are released under the MIT licence and the series built here under CC BY 4.0; the underlying sources keep their own terms and should be cited as above. If a figure looks wrong, please let me know.