Quantitative trading.
From data to evidence.

How do model architecture, target labels and news sentiment change a trading system’s behaviour?

Final-year research · Kasetsart University · 2026
  1. Multi-source data: Prices · market context · newsMulti-source dataPrices · market context · news
  2. Controlled experiments: Labels · horizons · architecturesControlled experimentsLabels · horizons · architectures
  3. Trading & evidence: Execution · risk · statistical testsTrading & evidenceExecution · risk · statistical tests
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.

01

Built a testable system

Unified price, market and news inputs into one repeatable ML/DL experiment framework.

02

Compared the choices

Seven model architectures, five target-label methods, five prediction horizons and optional sentiment features.

03

Protected the evaluation

Expanding walk-forward folds, a 22-day embargo, out-of-sample predictions, controlled seeds and event-driven execution.

04

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.

  1. 7 stocks: Growth · defensive · cyclical7 stocksGrowth · defensive · cyclical
  2. 2,450 configurations: 7 stocks × 5 labels × 5h × 7 × 22,450 configurations7 stocks × 5 labels × 5h × 7 × 2
  3. 7,350 backtests: Each configuration × 3 periods7,350 backtestsEach configuration × 3 periods

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.

Tiingo, Yahoo Finance and GDELT merge into featuresTiingoAdjusted daily OHLCVYahoo FinanceSPY + VIXGDELT / BigQueryCompany-level news toneFeature matrixTrend · risk · flow · time · news

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, conceptual diagram

Dynamic Threshold

Volatility adjusts the threshold.

Triple Barrier, conceptual diagram

Triple Barrier

Upper, lower or time barrier.

Trend Scanning, conceptual diagram

Trend Scanning

Find the strongest forward t-statistic.

Percentile Dynamic, conceptual diagram

Percentile Dynamic

252-day rolling median benchmark.

Trend + R², conceptual diagram

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.

Four tree models process feature rowsFeature rowOne observationP(up)
Random Forest · XGBoost · LightGBM · CatBoost
Recurrent models process fifteen day sequences15-day sequenceOrdered observations2 recurrent layers32 hidden unitsP(up)Dropout = 0.5
LSTM · GRU · BiGRU
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.

Expanding training windows, embargo gaps and overlapping testsF1F2F3F4Overlapping test dates → average their out-of-sample probabilities
Schematic timeline: gray training, outlined embargo, orange testing.

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.

Signal passes P85 to enter, or abstains; ATR and horizon control exitsSignal at t − 1 closeAverage OOS probabilityAbove historical P85?Adaptive confidence gateYes ↓Otherwise: no actionWait for a stronger signalEnter at t openSingle active positionATR stop or time exit2 × ATR14 · horizon closeLog → next eventSignal · entry · exit · duration

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.

  1. Hypothesis tests: One-sample and paired t-testsHypothesis testsOne-sample and paired t-tests
  2. Bootstrap intervals: 1,000 resamples · 95% intervalBootstrap intervals1,000 resamples · 95% interval
  3. Controlled randomness: RANDOM_SEED = 42Controlled randomnessRANDOM_SEED = 42

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.

Train and test accuracy on the same scaleRandom Forest · Trend Scanning · sentiment included (+S)78.73% train48.23% testLSTM · Percentile Dynamic · sentiment included (+S)59.96% train58.75% test
Manuscript Table 4 · accuracy in percent; generalization gaps in percentage points.

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.

  1. 2022 · stress test: Bear market · retrospective2022 · stress testBear market · retrospective
  2. 2025 · selection period: Recovery / volatile market2025 · selection periodRecovery / volatile market
  3. 2026 · forward period: Unseen data through 14 March2026 · forward periodUnseen data through 14 March

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.

  1. System inactivity: About 60% of the year inactiveSystem inactivityAbout 60% of the year inactive
  2. Exit dynamics: Time exits dominate selected tradesExit dynamicsTime exits dominate selected trades
  3. Entry overlap: Top models enter on different daysEntry overlapTop models enter on different days

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.

Sentiment settings in selected 2025 modelsNews sentiment2025 selected setupsIncluded (+S)GOOGL · JPM · NVDA · XOMExcluded (−S)LLY · PG · TSLA
Tree feature importance rankingSMA200~7.9%Volatility~4.65%Skewness~4.62%VIX BB width~4.57%Sentiment lag~2.42%
Tree importance is an indirect estimate; it does not explain recurrent-model decisions.

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.

Gaps in news extractionDirect company-level BigQuery SQL
Only three target methodsAdd percentile and R² labels
Ambiguous entry timingClose signal → next-day open
Fixed confidence thresholdHistorical P85 confidence gate
No stop / fixed-stop whipsawDynamic ATR risk boundary
Unequal ML / DL evaluationWalk-forward for both families

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.

  1. Broader inputs: Specialist communities · FracDiffBroader inputsSpecialist communities · FracDiff
  2. Richer validation: CPCV · time decay · augmentationRicher validationCPCV · time decay · augmentation
  3. Adaptive systems: Meta-labels · regime switchingAdaptive systemsMeta-labels · regime switching
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.