ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

量化软件迁移不只搬代码:用依赖、数据、参数和日志做交付验收

量化软件迁移不只搬代码:用依赖、数据、参数和日志做交付验收 把策略代码复制到另一台电脑后最常见的失败并非文件打不开而是依赖版本、数据样本、参数默认值或运行日志缺了一项。代码相同而结果不同往往意味着交付包没有把“当时怎样运行”一起带走。一个可复核的策略包至少应让接收者确认文件没有变化并看见数据日期、参数和退出状态。交付包至少保留四类内容内容最小文件验收问题常见遗漏代码与依赖strategy.py、requirements.txt能否安装并启动只写库名不写版本输入数据sample.csv、data_note.txt日期、复权和字段是否明确只有文件没有来源日期策略参数config.json单位、默认值和边界是否完整5%与0.05混用运行记录run.log、result.json开始、结束、异常和结果是否可查只保留收益截图用清单先检查文件有没有被改动下面的脚本只使用Python 3.11标准库。它为目录中的文件计算SHA-256摘要生成manifest.json再立即复核一次。摘要只能证明文件内容是否一致不能证明策略逻辑正确数据口径和参数单位仍需人工验收。from __future__ import annotations import hashlib import json import tempfile from pathlib import Path def sha256(path: Path) - str: h hashlib.sha256() with path.open(rb) as f: for chunk in iter(lambda: f.read(8192), b): h.update(chunk) return h.hexdigest() def build_manifest(root: Path) - dict[str, str]: files {} for path in sorted(root.rglob(*)): if path.is_file() and path.name ! manifest.json: files[str(path.relative_to(root))] sha256(path) return files def verify(root: Path, manifest: dict[str, str]) - list[str]: errors [] for name, expected in manifest.items(): path root / name if not path.exists(): errors.append(fmissing:{name}) elif sha256(path) ! expected: errors.append(fchanged:{name}) return errors with tempfile.TemporaryDirectory() as tmp: root Path(tmp) (root / strategy.py).write_text(LOOKBACK 20\n, encodingutf-8) (root / config.json).write_text({stop_loss: 0.05}, encodingutf-8) (root / data_note.txt).write_text(sample ends: 2026-08-15\n, encodingutf-8) manifest build_manifest(root) (root / manifest.json).write_text( json.dumps(manifest, ensure_asciiFalse, indent2), encodingutf-8 ) print(files:, len(manifest)) print(verify:, verify(root, manifest))示例输出中的files应为3verify应为空列表。若接收方看到missing或changed应先找回文件或确认修改原因不能直接比较新的回测结果。实际交付时还应记录Python版本、操作系统、时区和数据更新时间。不同工具的交接重点网页研究平台通常要导出代码、参数和结果本地框架还要带上依赖锁定、数据目录和启动方式靠近账户的工具必须额外核对权限、登录和订单回报。把选股范围、仓位、持有周期、止盈止损等规则写清后牛股王股票的历史回测、模拟持仓与调仓记录可以帮助普通投资者检查交接前后的规则是否一致。聚宽更方便保存研究代码和实验输出PTrade等券商侧工具的开通条件与可用能力需要向开户券商逐项确认。验收结束的条件接收者能复现环境、识别数据日期、读懂参数单位、得到相同的样例输出并在日志里看到正常退出交付才算完成。只搬代码会把大量隐含条件留在原电脑上之后任何结果差异都难以定位。可核对资料代码与文件摘要部分可对照Python 3.11 hashlib、json、pathlib官方文档平台交接字段可结合牛股王量化2.0产品说明资料、聚宽帮助中心以及开户券商当期公布的PTrade等终端说明核验。风险提示文件摘要和迁移验收只能提高复现能力不能证明策略有效也不构成收益承诺。实盘衔接仍需核对账户权限、券商系统、交易时段、成交规则和市场条件。
返回列表