jgrusewski
c6c550a2be
feat(ml): real trade data pipeline for VPIN/Kyle's Lambda + offline RL
Wire Databento Schema::Trades into OFI feature extraction so VPIN and
Kyle's Lambda use real buy/sell classification instead of tick-rule proxy.
Trade data pipeline:
- trades_loader.rs: DbnTrade struct, load_trades_sync(), binary-search
get_trades_for_bar() for O(log n) time-aligned trade windowing
- ofi_calculator.rs: feed_trade() accumulates real buy/sell pressure
into VPIN, Kyle's Lambda, and trade imbalance calculators
- data_loading.rs: loads trades from --trades-data-dir, feeds per-bar
trades to OFI calculator before calculate()
- download-trades-job.yaml: K8s job for ES.FUT trades from Databento
- job-template.yaml: sync trades data from MinIO + --trades-data-dir arg
Offline RL (CQL/IQL):
- experience_dataset.rs: bincode save/load for pre-collected datasets
- iql.rs: Implicit Q-Learning (Kostrikov 2021) — expectile value network,
advantage-weighted action extraction
- CLI: --offline, --dataset-path, --collect-dataset flags
Cleanup:
- Remove FeatureVector51/MarketFeatureVector type aliases → FeatureVector
- Fix stale dimension comments across 18 files (54→43/51)
- Fix feature_dim default (54→43)
2758 tests pass, 0 compile errors, 0 clippy warnings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:14:46 +01:00
..
2026-03-01 22:47:39 +01:00
2026-03-07 02:14:31 +01:00
2026-03-05 00:22:04 +01:00
2026-03-01 22:47:39 +01:00
2026-03-07 13:00:07 +01:00
2026-03-01 22:47:39 +01:00
2026-03-01 22:47:39 +01:00
2026-03-07 19:14:46 +01:00
2026-03-01 22:47:39 +01:00
2026-03-01 22:47:39 +01:00
2026-03-05 23:19:38 +01:00
2026-03-01 22:47:39 +01:00
2026-03-01 22:47:39 +01:00
2026-03-05 00:18:58 +01:00
2026-03-01 22:47:39 +01:00
2026-03-03 22:16:35 +01:00