Commit Graph

8 Commits

Author SHA1 Message Date
fegger a81dc690e5 Add Docker setup and build PyG extensions from source for ROCm
- Install build tools (build-essential, cmake, ninja-build) in Dockerfile
- Compile torch-scatter, torch-sparse, torch-cluster, torch-spline-conv
  from source since ROCm 5.6 lacks prebuilt wheels
- Add Docker Compose usage instructions to README with build, run,
  and service management commands
2026-05-26 15:49:13 +02:00
fegger 19ed77f4a0 Tune model config for price-only training and add walk-forward CV
Downsize GNN hidden channels/heads (128→64, 16→4) to match the 30-stock
price-only universe before alternative data processors are ready.

Add USE_ALTERNATIVE_DATA flag (default False) that skips news/social
branches so the model trains on real data rather than zero-filled stubs.

Standardize target returns per-batch in the data pipeline to stabilize
training.

Introduce walk-forward cross-validation with expanding windows:
configurable fold count and out-of-sample years.

Add IC loss weighting (0.7) to complement MSE, and wire it into the
trainer alongside the new loss function.
2026-05-26 15:36:11 +02:00
fegger 2673e27a40 Fix head divisibility validation, benchmark data format, and target computation bugs
- Add embed_dim/feature_dim divisibility checks in attention modules
- Auto-select largest valid head count in IntradayGNN when num_features isn't divisible by 8
- Fix benchmark to pass PyG Data objects instead of tuples to model
- Fix target computation to use precomputed next trading date and filter valid tickers
- Add missing device argument to autocast calls
- Remove stale global app_state reference in dashboard API
- Clean up various formatting (line wrapping, whitespace)
2026-05-26 15:17:00 +02:00
fegger 46657c7ffe Add Docker support and fix benchmark/data pipeline bugs
Containerize the application with ROCm GPU support for AMD Radeon R9700:
- Add Dockerfile with PyTorch/PyG ROCm 5.6 wheels
- Add docker-compose.yml with dashboard, live-trading, and train services
- Add .dockerignore and .env.example for configuration

Fix benchmark script to use batch_size instead of num_stocks for variable
dimensions, and replace fragile partial model surgery with a standalone MLP
for memory estimation.

Fix data pipeline to skip dates with no next trading date instead of
fabricating zero returns.

Add slippage to paper broker, optional mark-to-market prices to broker
interface, and health check endpoint for container orchestration.
2026-05-26 15:07:28 +02:00
fegger bc40a67180 Refactor intraday trading system for correctness and maintainability
Extract timestamp generation to shared helper, fix attention gating from
broken softmax to sigmoid per-feature gates, and detach LSTM hidden state
to prevent gradient accumulation. Backtester now uses real prices, proper
position sizing, and sell logic instead of placeholder buys. Alpha
calculation uses consistent geometric annualization. Add optional
mark-to-market pricing to paper broker and close-position safety in real-
time trader. Add sqlite3 import and fix pandas view warning in live data.
2026-05-26 14:49:57 +02:00
fegger a763ab0774 Add AMD GPU detection, replace LSTM with MLP, and fix signal generation logic
- Detect AMD GPUs via ROCm device name in config
- Replace single-timestep LSTM in GNN model with leaner post-GNN MLP
- Pass edge_attr through AMDGATConv propagate and use ones for self-loops
- Fix live trading to sell existing positions on negative signals instead
  of skipping them entirely
- Use per-file try/except in data pipeline and batch SQLite inserts
- Import torch directly in backtester instead of dynamic __import__
- Update AMP autocast import for PyTorch 2.0+ compatibility
2026-05-26 14:36:25 +02:00
fegger 0cf37e786a Add comprehensive project documentation and fix data pipeline
- Add detailed README with architecture diagram and usage instructions
- Add API, configuration, and development documentation
- Fix price data column handling for yfinance auto_adjust=True
- Fix model feature dimension indexing and temporal attention batching
- Add missing imports and position tracking in paper broker
- Add python-dotenv support for environment variables
- Update .gitignore with Python artifacts and environment files
2026-05-26 14:10:48 +02:00
fegger 4bf7394a0a initial commit 2026-05-26 13:51:02 +02:00