DCA Auditable Trader v1.0.0 开源:免配 Python 的整数/有理数可审计交易参考实现
项目地址:https://github.com/superalp1985/DCA-Auditable-Trader
Release:https://github.com/superalp1985/DCA-Auditable-Trader/releases/tag/v1.0.0
1. 项目定位
DCA Auditable Trader 是一个基于 vn.py 公共扩展接口构建的交易计算与审计参考实现,采用 Apache License 2.0 开源。
它不负责预测行情,也不提供实盘报单。项目重点是把价格、数量、金额、费率、手续费、保证金、持仓、损益、对账和风险结论放到统一的离散计算边界中,并保存可验证、可重放的证据。
v1.0.0 的能力范围是:
- 本地纸面交易和确定性回放;
- 订单、成交、持仓、账户和结算审计;
- OBSERVE 模式风险计算;
- 哈希链证据与 SQLite 查询索引;
- Windows GUI、CLI、安装版和便携版;
- 只读 CTP-compatible OBSERVE 兼容验证。
本版本不启用 WARN/BLOCK,不提交实盘委托,不声明生产交易资格。
2. 为什么不重新做一个交易框架
vn.py 已经提供事件引擎、主引擎、Gateway、策略应用、回测、算法交易和数据服务。其官方 RiskManager 也覆盖交易流控、下单数量、活动委托和撤单统计等前端规则。
DCA Auditable Trader 不 Fork vn.py,也不全局替换公共对象。它通过标准 BaseApp、BaseEngine 和事件订阅接入,把重点放在三个相对独立的问题上:
- 权威交易值如何从外部字段转换为确定的整数/有理数;
- 在线计算、离线重放和对账如何使用同一个计算内核;
- 结果如何形成可检查的证据,而不只是普通日志。
这是一种补充关系,而不是替代关系。
3. DCA 交易算术契约
DCA 是 Discrete Computer Arithmetic。项目中的核心表示可以概括为:
price = integer_ticks * rational_tick_size
quantity = integer_units * rational_unit_size
money = integer_minor_units * 10^(-scale)
rate = integer_numerator / positive_integer_denominator
time = integer_nanoseconds + explicit_timezone
所有权威计算都必须显式携带:
- 单位;
- 合法范围;
- 舍入模式;
- 溢出策略;
- 原始外部值;
- 规则版本和哈希。
交易和会计计算禁止静默整数回绕。支持拒绝、扩宽,以及规则明确允许时的饱和。二进制浮点值不会被直接当成权威金额;外部浮点字段作为原始事实保留,并通过十进制文本和合约元数据进入离散边界。
一个重要原则是:缺失不等于零。
例如缺少开仓成本时,系统不会输出一个貌似完整的已实现损益,而是保留缺失证据并停止给出权威结果。缺少账户币种和精度时,也不会默认按人民币两位小数处理。
4. 数据与证据路径
vn.py-compatible event
|
+--> raw external fact retained
|
v
strict DCA boundary conversion
|
+--> order state machine
+--> fee reconstruction
+--> FIFO position/PnL ledger
+--> account reconciliation
+--> OBSERVE risk evaluation
|
v
canonical JSONL + SHA-256 chain
|
+--> rebuildable SQLite index
+--> deterministic verify/replay
JSONL 哈希链是重放证据,SQLite 是可重建查询索引。启动时如果 SQLite 缺失、陈旧或损坏,可以从完整证据重建;如果完整 JSONL 记录的哈希错误,则失败关闭。只有进程中断造成的最后一行不完整记录允许显式截断修复。
订单状态机覆盖重复事件、字段冲突、迟到事件、交易先于委托、超额成交、部分成交、撤单和重连后的终态重复。交易账本独立计算手续费、FIFO 多空持仓、今昨仓、结算、已实现/未实现损益和缺失开仓状态。
5. 风控为什么默认只做 OBSERVE
风险层支持精确名义金额、敞口、资金、损失、价格偏离、保证金比例、白名单、只平仓和全局暂停等规则。每次判断记录输入、阈值、计算值、缺失数据策略、规则哈希和结论。
但是 v1.0.0 固定为 OBSERVE:规则全部执行并产生证据,却不拦截真实委托。WARN/BLOCK 和实盘提交路径保持关闭。这让项目可以展示计算与审计能力,同时避免把一次模拟验证包装成生产风控资格。
6. 三种部署方式
6.1 完整安装版
DCA-Auditable-Trader-1.0.0-Setup-win-x64.exe
安装版包含冻结宿主、私有 CPython 3.13、运行依赖、GUI、CLI 和卸载程序。用户不需要预装 Python,也不需要手工处理 PySide6、TA-Lib、虚拟环境和 PATH。
如果你在部署 Python 量化宿主时卡在版本、Qt 或原生 wheel 上,可以先用这个版本体验纸面交易、回放和审计流程。它不是完整 VeighNa Trader 的替代品,也不包含券商实盘 Gateway。
6.2 Portable 免安装版
DCA-Auditable-Trader-1.0.0-Portable-win-x64.zip
解压后直接运行,不修改系统 Python。适合测试、演示和隔离环境。
6.3 插件 wheel
vnpy_dca_audit-1.0.0-py3-none-any.whl
适合已有兼容 vn.py/CPython 环境的开发者。插件遵循公共 App/Engine 结构,不要求修改上游源码。
7. 与常见方案的职责差异
| 方案 | 主要职责 | 本项目的差异点 |
|---|---|---|
| vn.py 核心及应用 | 交易网关、策略、回测、事件和应用生态 | 使用公共接口接入,不重复实现生态 |
| vn.py RiskManager | 流控、数量、活动委托、撤单等前端限制 | 增加整数/有理数风险值和完整计算证据 |
| 普通日志 | 记录消息和异常 | 规范事件、哈希链、确定性重放和差异分类 |
| 关系数据库 | 查询当前和历史状态 | SQLite 仅作索引,权威记录可独立验证重建 |
| 商业交易终端 | 行情和交易操作 | 项目只做公开参考实现,不争夺交易入口 |
项目不声称是市场上第一个或唯一的审计方案。它的特点是把这些约束集中到一个可运行、可测试、可打包的开源样例中。
8. v1.0.0 验证结果
本次 Reference Release 完成了以下验证:
- 锁定 CPython 3.13/vn.py 运行时:159 项测试通过;
- 系统 CPython 3.14:运行 159 项测试,10 项可选 vn.py 集成测试按设计跳过;
- Windows 11 隔离虚拟机:安装、升级、回滚、修复、GUI、CLI、Portable 和卸载通过;
- Microsoft Defender:0 检测;
- Ed25519 SSHSIG:正常清单通过、篡改清单拒绝;
- OpenCTP 短时 OBSERVE:交易/行情登录、合约、账户、tick 和受控断连恢复通过;
- OpenCTP 结果:DCA 哈希链有效、SQLite
integrity_check=ok、未解释差异 0、报单/撤单路径调用 0。
OpenCTP 结果只代表 CTP-compatible 只读功能路径跑通。第三方原生 DLL、账号和测试原始数据均未进入三个发布成品。
9. 下载与校验
Release 页面:
https://github.com/superalp1985/DCA-Auditable-Trader/releases/tag/v1.0.0
除三个成品外,Release 还提供:
DCA-Auditable-Trader-1.0.0-Candidate.json
DCA-Auditable-Trader-1.0.0-Candidate.json.sig
DCA-Auditable-Trader-1.0.0-SHA256SUMS.txt
release-signing-key.pub
发布公钥指纹:
SHA256:lIsFEyekLzjudR5uulYsMqLIGyjfuu5wYVSw2IelH/A
Windows 成品没有 Public Trust Authenticode 签名,因此可能显示 Unknown publisher。这不应被忽略或包装成已签名发布:请先核对仓库公钥,再验证 SSHSIG 清单和三个成品的 SHA-256。
10. 适用人群与维护方式
项目适合:
- 卡在 Python/Qt/原生依赖部署,希望先运行一个完整参考宿主的用户;
- 需要纸面撮合、回放、故障恢复和证据链样例的开发者;
- 从事交易风控、清算、会计、对账和金融 IT 的工程人员;
- 希望给现有 vn.py 系统增加 OBSERVE 审计层的用户;
- 研究有限计算、确定性系统和事件溯源的学习者。
项目不适合直接用于实盘交易,也不提供盈利策略、高频性能承诺或商业支持。v1.0.0 作为完整参考实现发布,后续根据社区反馈按需维护,没有固定路线图和支持 SLA。
参考链接
- DCA Auditable Trader:https://github.com/superalp1985/DCA-Auditable-Trader
- DCA 理论整理:https://github.com/superalp1985/DCA-Discrete-Computer-Arithmetic
- vn.py:https://github.com/vnpy/vnpy
- vn.py RiskManager:https://github.com/vnpy/vnpy_riskmanager
- OpenCTP 模拟环境:<http://openctp.cn/Trading.html
更多推荐



所有评论(0)