Paper: arXiv 2505.16136
Authors: Yuke Zhang
Abstract
This study introduces an interpretable machine learning (ML) framework to extract macroeconomic alpha from global news sentiment. We process the Global Database of Events, Language, and Tone (GDELT) Project’s worldwide news feed using FinBERT – a Bidirectional Encoder Representations from Transformers (BERT) based model pretrained on finance-specific language – to construct daily sentiment indices incorporating mean tone, dispersion, and event impact. These indices drive an XGBoost classifier, benchmarked against logistic regression, to predict next-day returns for EUR/USD, USD/JPY, and 10-year U.S. Treasury futures (ZN). Rigorous out-of-sample (OOS) backtesting (5-fold expanding-window cross-validation, OOS period: c. 2017-April 2025) demonstrates exceptional, cost-adjusted performance for the XGBoost strategy: Sharpe ratios achieve 5.87 (EUR/USD), 4.65 (USD/JPY), and 4.65 (Treasuries), with respective compound annual growth rates (CAGRs) exceeding 50% in Foreign Exchange (FX) and 22% in bonds. Shapley Additive Explanations (SHAP) affirm that sentiment dispersion and article impact are key predictive features. Our findings establish that integrating domain-specific Natural Language Processing (NLP) with interpretable ML offers a potent and explainable source of macro alpha.
Complexity vs Empirical Score
- Math Complexity: 4.5/10
- Empirical Rigor: 8.0/10
- Quadrant: Street Traders — practical and empirical, lighter on theory
Why this score: The paper employs advanced machine learning models (XGBoost, FinBERT) and SHAP for interpretability, but focuses more on application and backtesting rather than deep theoretical derivations. It demonstrates high empirical rigor with a decade-long OOS backtest (2015-2025), realistic transaction costs, and published code on GitHub, though the Sharpe ratios presented seem exceptionally high and warrant scrutiny.
Research Flowchart
flowchart TD
A["Research Goal: Extract Macro Alpha<br>via Interpretable ML on News Sentiment"] --> B["Data Source: GDELT Global News Feed"]
B --> C["NLP: FinBERT Sentiment Processing"]
C --> D["Feature Engineering:<br>Sentiment, Dispersion, Impact"]
D --> E["ML Model: XGBoost Classifier"]
E --> F["Out-of-Sample Backtesting<br>(5-Fold Expanding Window)"]
F --> G{"Key Outcomes"}
G --> H["High Performance:<br>Sharpe ~5.87 (FX), ~4.65 (Bonds)"]
G --> I["SHAP Analysis:<br>Dispersion & Impact are Top Features"]
G --> J["Conclusion:<br>Interpretable ML provides<br>Robust Macro Alpha"]