Files
fidc-backtest-engine/docs/rqalpha-gap-roadmap.md
2026-04-23 19:29:12 -07:00

74 lines
2.5 KiB
Markdown

# RQAlpha Gap Roadmap
This document tracks the remaining RQAlpha backtest capabilities that are not
yet fully aligned in `fidc-backtest-engine`, and the implementation order we
are following.
## Scope
This roadmap focuses on the China A-share stock backtest path first. Multi-asset
coverage such as futures/options is tracked separately and is not part of the
current alignment pass.
## Remaining Gaps
### Phase 1: Strategy API parity
- [x] `order_to` / target-shares style explicit order primitive
- [x] `order_target_portfolio(_smart)` style public API surface
- [x] richer explicit order styles exposed to platform scripts
### Phase 2: Scheduling and execution surface
- [x] minute-level `time_rule` semantics like `market_open`, `market_close`,
`physical_time`
- [x] finer `1m` / `tick` strategy execution entrypoints beyond `open_auction`
and `on_day`
- [x] scheduled actions evaluated against explicit intraday times
### Phase 3: Universe and subscription model
- [x] `update_universe`
- [x] `subscribe`
- [x] `unsubscribe`
- [x] tick-frequency subscription guards exposed at strategy API level
### Phase 4: Algo order parity
- [x] `VWAPOrder` first-class explicit action parity (`order.vwap_value/percent`)
- [x] `TWAPOrder` first-class explicit action parity (`order.twap_value/percent`)
- [x] `order_target_portfolio_smart(..., order_prices=AlgoOrder, valuation_prices=...)`
### Phase 5: Position accounting parity
- [x] `trading_pnl`
- [x] `position_pnl`
- [x] `dividend_receivable`
- [ ] richer position lifecycle fields exposed to strategy runtime
### Phase 6: Strategy data API parity
- [x] `history_bars` numeric helper for daily, intraday, and tick fields
- [x] `current_snapshot`
- [x] `instrument` / `instruments` / `all_instruments`
- [x] `get_trading_dates` / `get_previous_trading_date` /
`get_next_trading_date`
- [x] phase-aware minute/tick history cursor semantics matching the active
bar or tick callback
## Execution Order
1. Close the explicit order API gap with target-shares / `order_to` parity.
2. Add public batch target-portfolio semantics.
3. Expand scheduler to intraday time rules.
4. Add dynamic universe APIs.
5. Add algo-order styles.
6. Finish position accounting parity.
7. Expose richer position lifecycle fields to strategy runtime.
## Current Step
Active implementation target: Phase 5 follow-up: expose richer position
lifecycle fields to strategy runtime beyond quantity, sellable quantity,
average cost, trading pnl, position pnl, and dividend receivable.