Yesterday's close beats ESH-GNN (Event Sentiment and Herding GNN) on mean absolute error across one- to three-day forecasts. Until that result changes, the next-day price forecast is a weak basis for a trading signal.
Khan, Iqbal and Maqsood forecast daily S&P 500 closing prices with a graph neural network. Their premise is that investors herd, making stocks co-move beyond what fundamentals explain. Links between stocks with similar herding exposure should therefore let neighbours' recent prices improve a forecast. To measure herding, they use CSAD, each stock's cross-sectional absolute return deviation from the market average. Days when CSAD falls below its average receive a herding flag. A stock's score is the Pearson correlation between its returns and that 0/1 dummy. Stocks with nearby scores are linked; the top 25% of similarities remain in a graph held fixed over time.
Each stock node takes five days of closing prices and a daily VADER sentiment score from one of 14 Twitter events: five political events, five natural disasters and four terrorist attacks. The tweets are from a public 2012 to 2016 dataset, with a separate run for each event. Graph convolution passes into a 64-unit LSTM or BiLSTM, followed by temporal attention, to predict the next close. Daily Yahoo prices run from 2010-01-04 to 2024-03-24. Training covers 2010 to 2023; testing covers 2023 to 2024. The headline 1.315% MAPE comes from the LSTM run with Obama-Romney sentiment, although Hurricane Sandy is lower at 1.294%. The authors also report 1.2850% versus 3.9133% for their graph attention network (GAT) baseline, built with GraphSAGE layers and a GAT branch, and 11.6059% for a plain graph convolutional network (GCN).
What does the 1.315% MAPE buy?
It measures price-level error. We did not find a trading rule using these forecasts, or a return, Sharpe ratio or cost figure for one. The authors report price R² of about 0.97. They attribute persistence's MAE advantage to strong autocorrelation in stock prices, which also makes a price-level R² near 0.97 less revealing. Low MAPE shows that the forecast follows the price path. Whether its predicted changes get the direction right often enough to pay a spread remains unanswered.
Yesterday's close wins on MAE
The paper reports the decisive comparison. At one step, persistence's MAE is 1.9127 against ESH-GNN's 2.0132. At two steps the figures are 2.7674 and 3.0035; at three, 3.4295 and 3.6228.
The naive forecast wins at every tested horizon.
The authors acknowledge the result: persistence "achieves slightly lower MAE in forecasting due to strong autocorrelation in stock prices." They answer first with RMSE. ESH-GNN records 2.8345 against 3.4769 at one step and wins on RMSE at all three horizons, which they take as better control of large errors. They also write that persistence, "by directly propagating the last observed value, is inherently optimized for minimizing average absolute deviations." Persistence fits no parameters. The autocorrelation they already identify explains its MAE edge.
The RMSE pairing is harder to accept than the MAE loss. A one-step persistence error is simply the next day's price change. Bringing its RMSE down from 3.4769 to 2.8345 removes about a third of the squared error in daily price changes, roughly an R² of 0.33 on next-day changes if taken at face value. Yet MAE gets worse. Large gains on a small number of moves could produce both results. Those days would carry the trade, and the paper does not identify them. We did not find a per-stock breakdown or a Diebold-Mariano test for this comparison. Our earlier review of DSTNet at least found an MAE win over persistence; equity timing remained unproven even there.
The walk-forward result
A single hold-out split gives MAE 2.2026, RMSE 3.0783 and MAPE 1.370%. Averaged over sequential out-of-sample periods in the walk-forward evaluation, they reach 2.9272, 5.2741 and 1.933%. Those are rises of 33% in MAE, 71% in RMSE and 41% in MAPE. The authors say the hold-out "may overestimate generalization due to reliance on a single temporal split" and describe the walk-forward outcome as stable and competitive.
Walk-forward RMSE of 5.2741 exceeds hold-out persistence RMSE of 3.4769. Different evaluation windows prevent a clean comparison. We did not find a walk-forward persistence result, the comparison a desk would want first.
Can 2012 to 2016 tweets inform a 2023 to 2024 test?
The tweets stop in 2016; testing starts in 2023. Sentiment "returns to zero once the event ends," according to the paper. Taken together, those statements leave the event feature with no event to describe during the test period. Differences among the 14 runs therefore cannot reflect event information arriving out of sample.
The RMSE ranking offers little separation. Across 10 seeds, the LSTM variant has an RMSE standard deviation of 0.2977. Across all 14 events, its RMSE spans 2.941 for Hurricane Sandy to 3.339 for Nepal Earthquake, a range of 0.398. Ranking events on test RMSE looks mostly like ranking training runs. MAPE behaves differently, and more strangely: LSTM values run from 1.294% for Hurricane Sandy to 2.374% for Brexit. That gap is about seven seed standard deviations, using 0.1415 on a seed mean of 1.3445. The rows cluster near 2.35% and 1.3% even as RMSE barely changes. Brexit has RMSE 2.980 and MAPE 2.374%; Hurricane Sandy has RMSE 2.941 and MAPE 1.294%. The tables are internally inconsistent there.
The herding graph contributes little in the reported checks. Moving the percentile threshold through 25%, 50% and 75%, described by the paper as denser to sparser graphs, changes MAE from 1.9731 to 1.9714 to 2.0003. Temporal attention moves MAE from 2.006 to 1.990, a gain the authors call small. In the paper's CSAD regression on 3,689 observations, the coefficient on squared market return is positive 1.1037 (SE 0.254). Under our reading of the usual CSAD test, a negative coefficient on that term indicates herding. The paper marks its coefficient significant at 1% without interpreting the sign.
The universe, and where we stopped
The paper describes "500 listed stocks" in one passage and a "medium-sized stock graph model (i.e., 50 stocks)" in another. Its volatility table includes GEV, KVUE, VLTO, SOLV and SW, all recent index additions. Those names suggest today's constituents were projected back to 2010. We did not find a statement confirming point-in-time membership.
We did not backtest the model. Its central sentiment input comes from a specific event-tweet collection, and we have no equivalent Twitter feed. News sentiment would test a different model. Point-in-time S&P 500 membership was the second missing piece.
Two results would make us revisit the paper: persistence winning or losing per stock across the walk-forward folds, and a hit rate for the sign of the predicted next-day change.