Liu's paper leaves unanswered whether Baidu search volume improves a CSI 300 risk forecast. Its abstract acknowledges the limit. All the RMSE, MAE and Diebold-Mariano statistics come from 1,000 simulated daily observations; the out-of-sample share is unspecified. The abstract states that "the paper's contribution is therefore the methodology and its tooling." An implementer following the recipe still has four decisions to make.
Why sentiment might forecast A-share variance
Liu's argument starts with trading behaviour. Retail investors account for a large share of trading in China's A-share market, where short selling is restricted. Demand driven by sentiment can push prices away from fundamentals, with arbitrage slow to close the gap. Liu argues that the resulting volatility should be partly predictable from sentiment. He cites Fang, Gozgor, Lau and Lu, whose Baidu-augmented GARCH outperformed the baseline. Better variance forecasts would help with VaR and option hedging.
The paper offers two sentiment indices. One combines standardized Baidu Index search volumes for five finance keywords, translated as "bull market", "bear market", "stock account opening", "IPO" and "dividend". The other follows the Baker-Wurgler approach. It takes the first principal component of four proxies: turnover, new trading accounts, the closed-end fund discount and IPO first-day returns. Orthogonalizing it to industrial production, inflation and a short rate is optional.
The rolling one-step-ahead comparison covers five models. GARCH(1,1), EGARCH and GJR-GARCH supply three of them. A fourth, GARCH-MIDAS, lets sentiment drive τ, the slow-moving long-run variance component, through Beta-weighted lags and a loading θ. The fifth feeds lagged returns, lagged realized volatility and sentiment into an LSTM. Its settings include a 20-day look-back, 32 units and dropout of 0.2. For real data, the paper proposes CSI 300 daily closes from January 2010 to December 2023, about 3,400 trading days.
That sample was never run.
What do the simulated forecast gains measure?
GARCH(1,1) records an RMSE of 1.42 and an MAE of 1.05 on the simulated data. Adding sentiment through GARCH-MIDAS brings those figures to 1.09 and 0.81, with a DM statistic of -3.11. The sentiment-fed LSTM records 1.02 and 0.76, with a DM of -3.46. The RMSE reductions are 23% and 28%, which the paper rounds to "about one quarter below the baseline".
Liu describes the figures as "illustrative, computed on simulated data" and says that "on real data, the significance would have to be re-estimated." He defends the exercise on the grounds that real index and sentiment series can replace the simulated inputs in the same code. The conclusion says the code has been released. We did not find a repository link in the text.
The results section makes a more difficult claim: the simulated ranking agrees with the empirical findings of Fang et al. and Trichilli et al. The conclusion extends that claim, saying the illustrative results show, in line with the empirical literature, that sentiment-enhancing models can improve forecasts. Although the abstract describes the simulated dataset as transparent, we did not find an account of its generation. Readers therefore cannot establish whether the simulator builds sentiment into volatility. If it does, agreement follows by construction. Matching the literature on synthetic data calibrated to stylized facts tests the simulator.
The units also need attention. In Table I, simulated realized volatility is expressed in percent, with a mean of 16.684 and a standard deviation of 5.755. Yet the models forecast conditional variance σ²ₜ, which is then scored against what the paper calls realized volatility. We did not find a unit for the RMSE of 1.42.
A missing partner for the LSTM
Table II isolates sentiment within the simulation for only one model. Sentiment is the sole driver of τ in the paper's equation. With θ = 0, τ becomes the constant m. Multiplying m by a short-run GARCH component gives GARCH(1,1), making that row the nested no-sentiment counterpart to GARCH-MIDAS. The LSTM has no equivalent comparison. Along with sentiment, it introduces nonlinearity and a 20-day memory. The table contains no LSTM run without sentiment.
GJR-GARCH already lowers RMSE from 1.42 to 1.28 through asymmetry alone. GARCH-MIDAS retains a symmetric GARCH short-run component, so its 0.33 RMSE improvement over GARCH(1,1) is the sentiment step. A placebo driver for τ is missing.
The comparison needs a GARCH-MIDAS whose τ depends on another variable, such as lagged realized variance, and an LSTM using only returns and realized volatility. Without the former, the results cannot distinguish sentiment from any slow-moving variable. The thesis needs a DM test for each with-versus-without pair. Liu describes the 0.07 RMSE difference between the LSTM and GARCH-MIDAS as small, preferring GARCH-MIDAS because it is interpretable. The preference makes sense. But although the paper identifies a significant θ as the test of its behavioural channel, it gives no θ estimate, even for the simulation.
Four implementation choices remain open
The forecast timing deserves credit. Each forecast uses information available at its origin, and parameters are re-estimated as the window moves. The paper explicitly states that "contemporaneous sentiment must never enter a forecast of the same period." It also supplies the full LSTM settings, including a batch size of 32 and early-stopping patience of 10.
An implementer still faces these gaps:
- The target carries the label "realized volatility", yet its definition, the sum of 5-minute squared returns, gives realized variance. Squared daily returns are the fallback. The paper's own robustness section warns that the choice of proxy can alter model rankings.
- Nothing in the long-run equation τₜ = m + θ Σ φₖ Sₜ₋ₖ guarantees positive τ: it contains neither an exponential nor a square. The recipe standardizes sentiment to mean zero. When θ > 0, a negative weighted sum can take τ below zero unless m is large. Table I's simulated index ranges from 0 to 100, concealing that problem. Its mean is 54.285, so the simulated index is not standardized and the simulation departs from the recipe it is meant to illustrate.
- Monthly and weekly frequencies are mentioned as candidates, but the paper leaves the long-run frequency, lag count K, and in-sample and out-of-sample window lengths unspecified.
- The recipe leaves unclear whether standardization, seasonal adjustment and PCA loadings rely on trailing data. Using full-sample loadings would introduce future information into an otherwise ex ante design.
Two replicators would resolve each of these four choices differently.
We could not run the A-share test
We could not run this study. Our data contains neither A-share prices nor Baidu Index. Replacing them with US equities and news sentiment would test a different hypothesis: the proposed mechanism depends on A-share retail dominance and restrictions on short selling.
Liu identifies the next milestone himself: put the 2010 to 2023 CSI 300 sample through the template. Each of the five architectures should run with and without sentiment, with forecasts scored under QLIKE as well as RMSE. The paper itself proposes QLIKE for tail events. Until there is a real-data DM statistic, the VaR and capital-buffer claims remain conditional. The paper presents them at that strength: the benefits are "concrete if they enhance the volatility forecasts in real data."
Our earlier note on a volatility-methods review reached the same point, with three forecast families and no reported losses. Liu gets closer by printing a complete Table II. Its 28% reduction comes from an out-of-sample slice of a 1,000-day simulated dataset. Until the Baidu series are loaded, that gain belongs to the synthetic sample.