AppRoute.backtestCreate · BacktestComposerView
确定性回测创建与运行前确认
提交前锁定 version、dataset revision、参数、费用/滑点、seed、资源估算和风险确认
AppRoute.backtestCreate · BacktestComposerViewmatrix-quant-im-ios对照 CURRENT · quant-backtest-create →确定性回测创建与运行前确认 · 研究证据级页面任务包
提交前冻结 version、dataset revision、参数、费用/滑点、seed、资源估算和风险披露。
Features/Quant/Presentation/QuantRuntimeViews.swift
GAP-QNT-001 · GAP-QNT-005–006
compose-backtest · K14
策略/版本详情的新建回测动作。
BacktestCreateReceipt 返回 job/idempotency;没有远程服务时明确 unavailable。
Version lock → dataset eligibility → normalized params → estimate → disclosure → idempotent create。
步骤、错误、范围和确认关系到字段;键盘/VoiceOver 可完成且保留未提交输入。
backtest_compose_view · estimate_result · create_result;参数、symbol 与 dataset ID 按敏感研究输入处理。
- matrix-quant-im-ios main 与 origin/main 均为 631176e;Release 的 Quant、Social、MiniApp 与 Commerce repository 明确返回 unavailable,只有 Debug 可显式使用 fixture。
- iOS 当前有 186 个 Swift 文件、66 个 Features Swift 文件、38 个 View struct、31 个命名测试文件、24 个 AppRoute 与 1 个 Gitea workflow;这些是源码覆盖,不是 App Store 发布证明。
- EC2 未发现 quant/backtest/matrixantai 服务、容器、vhost 或 8141/8200–8205 listener;现有 im-core/Auth/日志健康不能替代 Quant 后端部署证据。
- matrixantai-backtest main 与 origin/main 均为 f7dac52;本次本地执行 4/4 golden、3/3 look-ahead 与 4/4 byte-identical determinism 全部通过。
- 引擎提供 3 个冻结模板、closed-bar decision、next-open fill、整数金额、fee/slippage、seed、data_asof 与 result_hash;无身份、许可、队列、远程作业或交易执行责任。
- 仓库没有 Gitea workflow,许可证状态仍为 UNLICENSED;通过本地测试不等于可发布平台服务或可使用生产行情。
- quant-platform main 与 origin/main 均为 535041b,仓库只有 README:无 source、API、migration、test、workflow、service、container、vhost、listener、SLO 或 rollback。
- GAP-QNT-001–009 已在 iOS 仓以契约缺口登记,但它们是后端 handoff,不是已经上线的 endpoint。
- 当前 iOS composer 只在 Debug fixture 上模拟 job;EC2 没有 backtest service。
- 真实市场许可因 GAP-QNT-001/D2 保持拒绝;UI 不能出现可提交 live market 的假入口。
- estimate、idempotency、cancel race、quarantine、reproducibility 与 leakage checks 未有远程实现。
九态改变当前页面的证据、许可、数据、水位、包或回执区域,不用通用遮罩冒充真实完成
BacktestInput
R13-BACKTEST-READY→ 创建 synthetic backtestBacktestInput skeleton
R13-BACKTEST-LOADING→ 取消或保持当前证据query result / next step
R13-BACKTEST-EMPTY→ 调整范围或返回failed region only
R13-BACKTEST-PARTIAL→ 只重试失败区域safe diagnostic
R13-BACKTEST-ERROR→ 重新读取cached evidence
R13-BACKTEST-OFFLINE→ 查看离线证据authorization decision
R13-BACKTEST-FORBIDDEN→ 返回安全页面native confirmation
R13-BACKTEST-CONFIRM→ 确认或取消receipt / next step
R13-BACKTEST-SUCCESS→ 查看回执与下一步target-quant-backtest-createIMPLEMENTATION MAP
目标定义与下一轮逐页细化入口
当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。
页面区域
- 流程导航
- 版本锁定
- 数据选择
- 参数表单
- 执行假设
- 估算
- 风险确认
- 提交动作
用户动作
- 更换数据范围
- 编辑参数
- 查看数据质量
- 刷新 estimate
- 确认披露
- 创建 synthetic backtest
- 取消
必须状态
- 研究上下文已就绪
- 研究证据核对
- 当前范围为空
- 部分数据或投影失败
- 页面读取失败
- 离线证据只读
- 许可或权益拒绝
- 模拟运行确认
- 命令回执已完成
数据契约
- BacktestInput
- BacktestEstimate
- DatasetEligibility
- DatasetSnapshot
- NormalizedParameters
- ExecutionModel
- BacktestCreateReceipt
TARGET MODULES
目标页面必须交付的模块
- 01冻结版本
- 02market/symbol/interval
- 03dataset snapshot
- 04动态参数
- 05费用/滑点
- 06seed
- 07资格/资源 estimate
- 08风险确认
PRODUCT ROUTE INDEX
Matrix Quant · Research 的 28 个稳定 Screen ID
同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。
RootTab.home · QuantSocialFeedViewRootTab.strategies · StrategyMarketViewRootTab.runtime · QuantRuntimeHomeViewRootTab.miniApps · MiniAppCatalogViewRootTab.messages · MessagingHomeViewAppRoute.strategy(id:) · StrategyDetailViewAppRoute.strategyVersion · StrategyVersionDetailViewAppRoute.backtestCreate · BacktestComposerViewAppRoute.run(id:) · RunDetailViewAppRoute.signal(id:) · SignalDetailViewAppRoute.miniApp(id:) · MiniAppDetailViewAppRoute.miniAppOpen(id:) · MiniAppRuntimeViewAppRoute.contacts · PeopleHubViewAppRoute.profile(userID:) · IdentityViewRootTab.home · QuantSocialFeedViewRootTab.strategies · StrategyMarketViewRootTab.runtime · QuantRuntimeHomeViewRootTab.miniApps · MiniAppCatalogViewRootTab.messages · MessagingHomeViewAppRoute.strategy(id:) · StrategyDetailViewAppRoute.strategyVersion · StrategyVersionDetailViewAppRoute.backtestCreate · BacktestComposerViewAppRoute.run(id:) · RunDetailViewAppRoute.signal(id:) · SignalDetailViewAppRoute.miniApp(id:) · MiniAppDetailViewAppRoute.miniAppOpen(id:) · MiniAppRuntimeViewAppRoute.contacts · PeopleHubViewAppRoute.profile(userID:) · IdentityView