FreqAI-Inspired Roadmap for ATC
This document maps FreqAI concepts to this repository and defines concrete implementation steps.
1. Concept Mapping
| FreqAI concept | ATC equivalent (current) | Gap |
|---|---|---|
| DataKitchen (feature filtering, scaling, split, outlier handling) | atc.research.ml_linear, atc.research.image_alpha, FeatureEngine | Centralized training/inference preprocessing contract is still fragmented |
| DataDrawer (model metadata, persistence, purge) | data/derived/models/*.json, ad hoc loaders in strategies | No unified model registry/retention policy |
do_predict / outlier gating | Risk constraints + spread/flow guards in strategies | Need unified outlier confidence flag at inference |
| Sliding retrain windows | walk-forward + explicit training CLI | Needs unified scheduler + reproducible training manifests |
2. Immediate Upgrades (done / in-flight)
- Robust model loading fallback for logistic strategies.
- Session-specific strategy variants for regime-aware execution.
- Outlier guard (z-score based) in
ml_direction_logistic_swingfamily.
3. Next Upgrades (priority order)
- ATC DataKitchen module
- Single preprocessing contract for tabular/image models.
- Explicit feature schema version + strict column matching.
- Reusable normalization objects for train/infer parity.
- ATC Model Registry (DataDrawer-like)
- Canonical model manifest:
model_type,feature_names,train_range,valid_metrics,created_at,git_commit.
- Retention policy (
keep_latest_n) and cleanup command.
- Unified confidence flags
- Emit
do_predict-style fields:predict_confidenceoutlier_scoreoutlier_blocked
- Use in strategy and report summaries.
- Producer/Consumer training separation
- Optional async trainer process writing model artifacts.
- Live strategy process hot-reloads newest validated artifact.
4. Evaluation Rules (fixed)
- Benchmark is always fixed hold:
benchmark_hold_eth=10.0. - Business-day boundary is JST 06:00.
- Hard flat by 05:59 with fallback policy.
- Gate promotion by:
alpha_total_pnl_jpy > 0deadline_breach_days == 0- win-rate and drawdown checks.