QuantPlatformKit是共享平台代码仓库,不单独部署。InteractiveBrokersPlatform、CharlesSchwabPlatform、LongBridgePlatform、BinancePlatform这些仓库才是实际运行单元。- 策略仓库应该固定依赖某个 Git tag,不要直接依赖
main。
如果要看公开 runtime 接线清单,包括仓库、项目、服务、scheduler、runtime identity、selector 和 secret 入口,见 platform_runtime_inventory.zh-CN.md。
如果要看 QuantPlatformKit、平台运行仓库、未来策略仓库三者的职责边界,见 platform_repo_boundaries.zh-CN.md。
如果要看当前的平台 / 策略大类 / 可配置 profile 对照表,请看 platform_strategy_matrix.zh-CN.md。
QuantPlatformKit- 统一领域模型
- broker 适配层
- 通知和少量通用工具
- 公共策略契约(策略大类、profile、平台兼容关系)
InteractiveBrokersPlatformCharlesSchwabPlatformLongBridgePlatformBinancePlatform
这些仓库现在负责:
- 策略规则
- 执行编排
- 运行入口
- 各自部署配置
- 运行时身份和环境变量读取
如果后面决定把策略实现真正拆出去,策略仓库应只负责:
- 可复用的策略计算
- 域内参数
- 尽量平台无关的 allocation / signal 逻辑
不应该负责:
- Cloud Run 入口
- broker 登录
- scheduler
- 平台运行时 secret
IBKRGatewayManagerSchwabTokenAutoRefresher
它们不属于策略执行仓库,也不属于平台包。
策略仓库应该固定依赖某个 tag,例如:
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@v0.7.1
不要用:
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@main
原因:
- 构建可重复
- 回滚简单
- Cloud Run / VPS 的部署单元不需要感知两个源码仓库
每次平台层改动建议按这个顺序走:
- 在
QuantPlatformKit完成改动并跑测试 - 推送到
main - 打新 tag
- 在策略仓库里升级依赖到新 tag
- 再让策略仓库触发自己的构建或部署
Cloud Run 继续只部署运行仓库,不部署 QuantPlatformKit。
推荐服务名:
| 仓库 | 推荐服务名 |
|---|---|
InteractiveBrokersPlatform |
interactive-brokers-quant-service |
CharlesSchwabPlatform |
charles-schwab-quant-service |
LongBridgePlatform |
longbridge-quant-hk-service / longbridge-quant-sg-service |
如果后面同一平台下再增加第二套相近策略,可以用:
interactive-brokers-quant-rotationinteractive-brokers-quant-income
但前提是它们共享大部分代码路径。不要一开始就把完全不同的策略塞进同一个服务里靠参数切换。
BinancePlatform 继续走现有 self-hosted runner + 外部调度。
推荐运行单元名:
binance-quant-crypto-leader-rotation-service
可以参数化的:
IB_GATEWAY_MODEACCOUNT_PREFIXSERVICE_NAMENOTIFY_LANG- 同策略族里的
SERVICE_VARIANT/STRATEGY_PROFILE
不建议参数化的:
- 完全不同的策略体系
- 完全不同的持仓模型
- 完全不同的调度周期
更推荐:
- 同仓库
- 不同服务
- 不同 env
而不是一个服务里塞很多 if STRATEGY == ...。
如果以后改了 GitHub 仓库名或 owner,Cloud Build / Cloud Run 的 GitHub 来源一般需要重新选。
建议步骤:
- 先记下原来的:
- trigger 名
- region
- branch
- target service
- 到 GCP 控制台删除旧的 GitHub 来源绑定,或者直接重建 trigger
- 重新选择新的仓库路径
- 检查 branch 还是不是
main - 检查目标
service和region有没有变 - 手动跑一次构建
- 确认新 trigger 正常后,再删旧 trigger
LongBridgePlatform 的 HK / SG 继续保持:
- 同一个策略仓库
- 两个 Cloud Run 服务
- 两个 trigger
- 两个 GitHub Environment
区分方式始终是:
CLOUD_RUN_SERVICECLOUD_RUN_REGION
如果只是为了让组织结构更清楚,先改:
- GitHub 简介
- topics
- README
仓库名可以放后面统一处理。
原因是仓库名改动会影响:
- Cloud Build trigger
- Cloud Run GitHub source deploy
- 本地 git remote
- 文档里的 clone 地址
- 平台共享代码进
QuantPlatformKit - 平台运行仓库继续作为部署单元
- GCP / VPS 只部署平台运行仓库
- 版本靠固定 tag 管理