Quantitative trading.
From data to evidence.
How do model architecture, target labels and news sentiment change a trading system’s behaviour?
Study title & context
A study of Quantitative Trading using Multi-sources Deep Learning. The same final-year project listed as Algorithmic Trading Strategy Optimization in the portfolio. This overview draws from the final report and unpublished manuscript.
The study, in one minute.
A final-year research system for testing whether time-series models generalize after the data moves forward.
Built a testable system
Unified price, market and news inputs into one repeatable ML/DL experiment framework.
Compared the choices
Seven model architectures, five target-label methods, five prediction horizons and optional sentiment features.
Protected the evaluation
Expanding walk-forward folds, a 22-day embargo, out-of-sample predictions, controlled seeds and event-driven execution.
What the evidence showed
Generalization depended on the model–label pairing; recurrent models reduced the train–test gap in the reported comparison, while sentiment effects varied by asset.
One framework. Many controlled comparisons.
The research addresses overfitting in financial ML: strong training scores can disappear on later observations.
Universe & period
NVDA, GOOGL, TSLA, LLY, PG, JPM and XOM. Observations span 1 January 2018–14 March 2026.
Controlled comparison
Five labels, horizons of 1–5 days, seven models and two input settings: with and without sentiment.
Research foundations
Time-aware validation, dynamic targets and selective execution address leakage, noisy labels and overtrading.
Three sources become a shared feature set.
Prices, market conditions and news are aligned into inputs used across the experiments.
Market structure
RSI, MACD, SMA200, ADX, ATR, Garman–Klass volatility, Amihud illiquidity, Kaufman efficiency and skewness. SPY/VIX features add market context.
News processing
Direct BigQuery SQL addresses gaps in the initial GDELT package. Historical source weighting uses Pearson correlation (p < .05, n > 50); lagged decay and Z-scores represent persistence and shocks.
Input hygiene
Cyclic calendar encoding; correlation > .9 and VIF > 10 filtering; median/IQR RobustScaler. Raw price-level inputs are excluded from model features.
The target changes what a model learns.
Five binary up/down target formulations, each tested over 1–5 days. Signal abstention is an execution decision.
Dynamic Threshold
Volatility adjusts the threshold.
Triple Barrier
Upper, lower or time barrier.
Trend Scanning
Find the strongest forward t-statistic.
Percentile Dynamic
252-day rolling median benchmark.
Trend + R²
Keep fitted trends with R² ≥ .3.
Conceptual illustrations, not sampled price data. PD = Percentile Dynamic; TS = Trend Scanning; TR = Trend + R².
Seven architectures, one evaluation protocol.
Constrained capacity and the same walk-forward process make the model comparisons more consistent.
Regularization & reproducibility
Tree constraints
RF max_depth=3; XGBoost learning rate=.01 and subsample=.6; LightGBM num_leaves=7; CatBoost l2_leaf_reg=3.
Fixed seed
RANDOM_SEED=42 controls experimental randomness. Python 3.9, PyTorch and scikit-learn environments are controlled; CUDA accelerates local/cloud GPU runs.
Training-fold preprocessing
Fit scaling on the training fold, then transform the test data. Apply the same chronological evaluation to ML and DL.
Move forward in time. Keep the boundary clean.
At least 500 training days, a 22-day embargo, a 60-day test window and a 30-day advance.
Embargo
Separates training labels from the next test window to reduce temporal leakage.
Overlapping ensemble
A 30-day step with 60-day tests creates shared test dates. Average those probabilities before generating the final signal.
Comparable evaluation
Both tree and recurrent models retrain using expanding historical windows, despite the additional GPU cost.
A prediction becomes a trade only after the gate.
The event-driven engine advances one daily bar at a time. Yesterday’s closing signal is executed at today’s open.
Adaptive entry
Fixed .8/.9 thresholds produced too few trades; .5 caused overtrading. P85 adapts to the historical confidence distribution.
Volatility-aware risk
Fixed stops were vulnerable to whipsaw. ATR adjusts the exit boundary to observed volatility; the holding horizon provides the time limit.
Event traceability
Record signal timestamps, entries, exit causes and holding durations. This makes execution behaviour inspectable across configurations.
Check uncertainty, not just a single run.
Statistical testing complements chronological evaluation and controlled experimental randomness.
Separate questions
The study uses one-sample and paired tests for distinct hypotheses, with a significance level of .05.
Resampling
Bootstrap confidence intervals expose uncertainty around the estimated metric instead of reporting only one point estimate.
Repeatable experiments
Fixed seeds and controlled software environments support repeatable comparisons. Walk-forward folds test behaviour on later observations.
Training accuracy is only the starting point.
Specific model–label pairings illustrate the generalization gap; they do not represent every model in a family.
Accuracy vs. recall
NVDA’s LSTM/TR setup reached 71.82% accuracy with .884 up recall and .477 down recall. JPM’s BiGRU/PD setup reached .779 down recall at 57.86% accuracy.
Label interaction
LSTM with Percentile Dynamic showed a 1.21 percentage-point train–test gap in the reported example. Target formulation changes the generalization behaviour of the same model family.
Multiple dimensions
Compare accuracy, Macro F1, directional recall and train–test gaps. These reveal class imbalance and directional bias that aggregate accuracy can hide.
Model behaviour changes across periods.
The 2025-selected setup is carried into retrospective 2022 stress tests and the early-2026 forward period.
2022: signal abstention
The selected TSLA model emitted no executable trades. This shows the P85 gate suppressing actions when confidence does not meet its threshold.
2026: fewer opportunities
NVDA, TSLA and XOM made zero trades under their 2025-selected setups. The short forward window contains few trades.
Two distinct comparisons
The study also reports regime-optimal models selected within each period. These are separate from the carried-forward 2025 configurations.
What happened inside the trade log?
Holding periods, exit causes and entry agreement explain how the selected systems behaved.
Execution behaviour
The study compares holding periods and exit triggers. ATR provides a volatility-aware boundary alongside the fixed horizon.
Exit causes
LLY, PG, TSLA and XOM recorded 100% time exits among selected 2025 trades; the other three exceeded 91%.
Entry agreement
TSLA’s rank-1 model had 17 entries; ranks 2, 4 and 5 shared none. PG and GOOGL showed more agreement. This measures diversity between model signals.
More data did not always mean a better signal.
Testing with and without news shows how each model responds to an additional input.
Controlled ablation
3,675 backtests per input setting compare sentiment inclusion and exclusion. Keeping the experimental grid aligned isolates changes in model behaviour.
Observed pruning
On LLY at h=1, CatBoost and LightGBM produced identical trade logs with and without sentiment. RF and LSTM changed in that comparison.
Architecture interaction
Model, label, horizon and sentiment settings interact. The study compares these combinations rather than assuming one architecture behaves consistently across every asset.
Experiments shaped the engineering decisions.
The report documents how prototype failures changed the final architecture.
Abbreviations, in plain language.
The short forms used on this page and in the research report.
Data & features
OHLCV — Open, High, Low, Close, Volume
SPY — S&P 500 ETF · VIX — market volatility index
GDELT — Global Database of Events, Language and Tone
RSI — Relative Strength Index · MACD — Moving Average Convergence Divergence
SMA200 — 200-day Simple Moving Average · ADX — Average Directional Index
Validation & execution
WFA — Walk-Forward Analysis · OOS — Out-of-Sample
P85 — 85th-percentile confidence threshold
ATR — Average True Range
VIF — Variance Inflation Factor · IQR — Interquartile Range
SQL — Structured Query Language · GPU — Graphics Processing Unit
Models & extensions
RF — Random Forest · LSTM — Long Short-Term Memory
GRU — Gated Recurrent Unit · BiGRU — Bidirectional GRU
PD — Percentile Dynamic · TS — Trend Scanning
TR — Trend + R² Filter · ML / DL — Machine / Deep Learning
+S — sentiment features included · −S — sentiment features removed
h — prediction horizon in days. For example, RF · Trend Scanning +S means Random Forest trained with Trend Scanning labels and news sentiment included.
CPCV — Combinatorial Purged Cross-Validation · SHAP — Shapley Additive Explanations
GMM / HMM — Gaussian Mixture / Hidden Markov Model
Where the research can go next.
Proposed extensions beyond the implemented study.
Scope, computational trade-offs & further work
The engine allows one active position and evaluates seven liquid large-cap stocks. News filtering narrows source coverage. Deep-learning WFA is computationally expensive; tree feature importance substitutes for sequence-level SHAP analysis.
Proposals include alternative sentiment sources, CPCV, meta-labeling, GMM/HMM regime switching, Ray/Dask parallelism and continual learning. These remain future work.
Reading map to the report & manuscript
Final report: Chapters 1–2 (problem and foundations); 3.1–3.9 (inputs, labels, models, WFA, backtesting, statistics and design evolution); 4.1–4.8 (classification, assets, trade behaviour, importance, stress tests and constraints); Chapter 5 (discussion and extensions).
Unpublished manuscript: Sections 3–6 and Tables 4–13 support the classification, statistical, sector, regime, confluence, pruning and architecture comparisons. Diagrams here are redrawn explanations; accuracy charts identify their source table.