# QuantPilot 门户秒级同步架构说明

## 已实施目标

- 门户量化终端每 1 秒请求一次状态接口。
- 常驻模拟引擎使用 Cloudflare Durable Object，以北京时间初始化的原 QuantPilot 数据库快照为基线继续运行。
- 合成行情、账户权益、现金、持仓、回撤和最近成交在界面同步刷新。
- 新产生的模拟成交写入云端 D1 数据库，保留时间、标的、方向、数量、价格、费用、信号和已实现损益。
- 页面显示连接状态、运行模式和最后更新时间；接口异常后明确显示离线/数据陈旧。

## 数据链路

Durable Object 使用 Alarm API 每秒唤醒，即使没有浏览器访问也会继续计算确定性合成价格和 MA-TREND-12/36 信号。浏览器每秒轮询 `/api/simulation/live`，读取持久化状态和最近成交。成交使用唯一秒级键去重。

发布目标是 Cloudflare 提供的公开 `*.workers.dev` 子域名，不需要用户购买或管理 DNS。代码和部署配置已经完成并通过本地打包验证；首次发布仍需用户在 Cloudflare OAuth 页面完成一次账户登录授权。

## 与原账户的关系

云端账户以 2026-07-31 22:22:07 初始化的本地 QuantPilot 账户快照为基线。原有 633 笔成交保留在成果档案；上线后新增成交进入云端秒级账本。门户不再使用手工演示曲线。

## 运行边界

- 仍然只做模拟交易，不接券商、不使用真实资金。
- 行情是确定性的合成数据，不是交易所实时报价。
- Durable Object 闹钟即使无人访问也会每秒调度；闹钟提供至少一次执行语义，故障时自动重试，网络和平台故障仍可能造成短暂延迟。
- 免费计划每天提供 100,000 次 Durable Object 请求；全年每秒闹钟约使用 86,400 次/天，仅剩约 13,600 次用于状态读取等操作。适合个人低访问量；长时间开着页面或多人访问时应升级付费计划。
- `setAlarm()` 本身计为一次存储写入，因此状态只在成交发生或每分钟心跳时额外持久化，以控制免费额度。
- 模拟收益不构成实盘收益承诺。
