Part of #438. Depends on Phase 1 (#501) and Phase 2 (#502).
Scope
Add Pipeline support to live trading, with the explicit caveat that v1 supports only daily timeframes and small universes.
Deliverables
- Batched / async OHLCV fetch in
CCXTOHLCVDataProvider. CCXT's fetch_ohlcv is per-symbol; need rate-limit-aware concurrent fan-out.
- Universe-refresh hook on
Pipeline: refresh_universe_every: timedelta = None. When set, the engine re-evaluates the candidate universe on that cadence (e.g. daily).
- Best-effort partial-data handling: a single failed
fetch_ohlcv for one symbol must not kill the iteration; that symbol's row becomes NaN and is masked out by Filter automatically.
- Cross-market order routing in the order layer so a pipeline universe spanning
BITVAVO + BINANCE can place orders on the right portfolio. (Likely its own sub-issue if it grows.)
Supported envelope (v1)
| Timeframe |
Max universe |
| daily |
50 |
| < daily |
not supported |
Above 50 symbols at daily, or any sub-daily timeframe, the engine raises at strategy registration.
Out of scope
- Sub-daily live pipelines.
- Universes > 50 symbols.
- Sector/industry classifiers (no live data source available).
Done when
- Live paper-trading run with a 20-symbol momentum screener pipeline executes for ≥ 24h without error.
- Symbol delisting mid-run is handled gracefully (logged, masked, no crash).
Part of #438. Depends on Phase 1 (#501) and Phase 2 (#502).
Scope
Add Pipeline support to live trading, with the explicit caveat that v1 supports only daily timeframes and small universes.
Deliverables
CCXTOHLCVDataProvider. CCXT'sfetch_ohlcvis per-symbol; need rate-limit-aware concurrent fan-out.Pipeline:refresh_universe_every: timedelta = None. When set, the engine re-evaluates the candidate universe on that cadence (e.g. daily).fetch_ohlcvfor one symbol must not kill the iteration; that symbol's row becomes NaN and is masked out byFilterautomatically.BITVAVO+BINANCEcan place orders on the right portfolio. (Likely its own sub-issue if it grows.)Supported envelope (v1)
Above 50 symbols at daily, or any sub-daily timeframe, the engine raises at strategy registration.
Out of scope
Done when