运行团队离线演示
克隆本仓库并安装 Python 3.12 和 uv。默认离线流程不需要 quant-* 仓库、框架包、券商连接或数据服务凭据。在仓库根目录运行以下命令,将绝对路径替换为自己的外部目录,Windows 可使用 D:/data/team-demo。
先创建并激活源码目录外的引导环境。在 Windows PowerShell 中运行以下命令。
$bootstrap = 'D:/data/team-bootstrap'
uv venv $bootstrap --python 3.12
uv pip install --python "$bootstrap/Scripts/python.exe" --no-deps -e .
& "$bootstrap/Scripts/Activate.ps1"
在 POSIX shell 中运行以下命令。
uv venv /absolute/data/team-bootstrap --python 3.12
uv pip install --python /absolute/data/team-bootstrap/bin/python --no-deps -e .
. /absolute/data/team-bootstrap/bin/activate
根包没有默认运行依赖。原根目录 team.py 包装入口已删除,在激活的环境中统一使用以下模块入口。
python -m competition_tools.team --help
python -m competition_tools.team init --config /absolute/private/team.toml --data-root /absolute/data/team-demo
python -m competition_tools.team setup --config /absolute/private/team.toml --profile offline
python -m competition_tools.team doctor --config /absolute/private/team.toml
python -m competition_tools.team demo equity --config /absolute/private/team.toml --output-root /absolute/data/equity-demo-001
python -m competition_tools.team demo crypto --config /absolute/private/team.toml --output-root /absolute/data/crypto-demo-001
init 创建 competition.team.v1 TOML 配置,拒绝覆盖已有文件。配置键只有 schema_version、data_root 和 environment_root。环境默认放在 <data_root>/2026-quant-competition/environments,可用 init --environment-root 更改。路径必须是绝对路径,且不能位于 Git 源码目录、关联 worktree 或指向源码的符号链接中。Windows 使用当前用户 ACL,POSIX 使用 0600 权限。配置只保存路径,不保存凭据。参见配置模板。
setup 按已提交锁文件分别安装 root、equity-lab 和 crypto-mm 三个环境。子进程清除继承的 PYTHONPATH 和 PYTHONHOME,显式接收 DATA_ROOT,不搜索相邻仓库。模块入口为 python -m competition_tools.team。可编辑安装会保留源码位置,使用 wheel 等非可编辑安装时,需显式传入 setup --repository-root /absolute/checkout/2026-quant-competition。
doctor 只在本地检查解释器文件是否存在,不验证依赖完整性、凭据、数据权限或策略就绪状态。使用已安装根环境运行 python -m competition_tools.check_team_delivery --config FILE,可另行检查已安装分发包中是否含有框架依赖。两者都不导入服务商模块或进行认证。
演示必须使用新的外部输出目录。它调用原有子项目命令,将子进程日志保存在 logs/,并写入带 synthetic: true 的 team-run.json。失败或中断后保留部分产物供排查,重试时选择新目录。股票使用 equal_weight。加密生成虚构盘口、成交和资金费率数据,审计后运行 2026-03-19 的 B0 回放。这些示例只验证软件,不能说明投资表现。
命令返回 competition.team_result.v1 JSON,包含 action、status、issue_codes、projects 和 synthetic。退出码 0 表示完成,2 表示阻塞或失败。结果不包含原始子进程日志或私有路径。本地日志可能包含路径,分享前需要检查。演示的 synthetic 为 true,其他操作为 null。
检查完整离线流程
安装 offline profile 后,可以运行工作流检查。它跑通两条虚构数据流程,核对文件交接、价格贡献与成本,以及实验记录。这个模式需要匹配且已提交的源码检出和一个新的外部输出目录,不请求服务商或券商。CI 会与原有演示一起运行它。
可选环境与验证
setup --profile framework 只安装独立锁定的记账适配器,使用本地账本,不再安装外部框架包。framework 名称仅为兼容旧命令保留。setup --profile broker-data 只安装根包的 ibkr extra,不登录或下单。setup --profile website 需要 Node.js 24/npm,为 site 运行 npm ci。默认离线安装不包含这些环境。
默认 CI 检查根包和两个研究包,并在无框架依赖的环境中运行团队演示。独立的 platform-comparison.yml 检查适配器及记账相关改动,也支持手动运行。参见开发检查。原有输入验收、来源限制和执行安全规则仍然适用。这个入口不下载全市场数据、不登记策略、不将研究接入下单,也不启用 Gateway 自动化。历史公开结果快照保持不变。
新增的 src/competition_tools/team/ 代码使用目录内 MIT LICENSE,根目录已有代码和第三方包保留原许可。
使用显式 run international 或可选 run next-open 命令运行国际实验.
数据准备与历史评估
独立外部规格、预算、不可覆盖的receipt及实际来源支持见数据准备。python -m competition_tools.team data plan、data acquire、data inspect不改变团队配置schema。python -m competition_tools.team evaluate按配置 schema 分派,v1 运行加密日线矩阵,v2 运行固定股票与加密研究,v3 运行版本化消融规则。各叶子项目使用独立安装环境,做市实验保留单独 API。结果与限制见新评估证据。默认不启动Gateway。显式IBKR取数可选择Paper登录前置步骤,这些命令均不下单。
需要分别检查 Paper 账户前缀、合约和可选历史读取时,请使用只读验收。该命令不需要团队配置,不会登录或下单。
可选的 daily-data 环境安装锁定的 Paper 日线采集和交易日历依赖。v2 配置与不可变刷新见股票日线快照,该功能不会登录 Gateway。