CoolFace
Modelpublic

tbukuai/patchtst-wavelet-sp500-research

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes58downloads
Model Card

PatchTST + Wavelet S&P 500 Research

Final Conclusion (v1-v6): S&P 500 daily direction cannot be predicted from price/technical data.

Results Summary

VersionFeaturesWaveletDA(ctx) SingleDA(ctx) Walk-ForwardVerdict
v113ch OHLCV+techGlobal51.3%DA(diff)=69% was fake
v213chGlobal+MADL55.3%Collapsed to always-up
v313chGlobal60.8%53.3%Look-ahead bias
v425ch+VIXCausal60.1%~43.8%More = worse
v58ch minimalNone46.1%Below random
v612ch customNone51.9%49.6%Random

v6 Features Tested

OHLCV + MA5 + MA23 + MA53 + RSI + MACD + VIX + MAVOL = 12 channels

Multi-scale moving averages, RSI, MACD, VIX, and volume smoothing — none break 50% DA.

What Actually Works

Cross-sectional ranking (not direction prediction):

  • LightGBM on S&P 500: IC=0.02, Sharpe 0.47-1.07
  • Signal is in slow factors (60-day volatility, momentum), not daily direction

Key Findings

  1. 1.DA(diff) ≈ 70% is fake — always use DA(ctx)
  2. 2.Global wavelet = look-ahead bias — v3's 53.3% was 100% from leakage
  3. 3.More features = overfitting — v4 (25ch) < v5 (8ch) < v6 (12ch) ≈ random
  4. 4.Custom technical indicators don't help — v6 = 49.6% WF = random
  5. 5.Simple > complex — LightGBM (2 sec) > PatchTST (hours) > Kronos (102M params)

Repo Contents

  • notebooks/ — v3-v6 Colab training notebooks
  • results/ — v3-v6 results JSON files
  • PROJECT_CONCLUSION.md — Full findings + future work
  • CLAUDE.md — Agent reference (lessons, pitfalls, code)
  • train_v6.py — Standalone training script