量化数据分析系统产品系统Vibe Coding

我要开发同款
咕咕嘎嘎2026年10月17日
6阅读

技术信息

语言技术
Python、CSS、React、前端
系统类型
Web
行业分类
金融

作品详情

行业场景

期货 CTA 策略研发中的回测验证环节。业务背景是团队手上积累了 61 个国内期货品种、1996 至 2026 共 7279 个交易日的开平仓信号数据(开仓 2460 笔、平仓 2445 笔、其中日内交易 308 笔),但缺少统一的回测分析工具。策略同学此前用 Excel 手工测算收益与盈亏,存在四类实际问题:一是口径不统一,同一份代码在不同人手里算出的收益率、回撤差异可达数倍;二是手续费长期算错,数据库中「按金额」口径存的是百分数(如 0.01 代表万分之一),引擎若按小数处理,总手续费被放大百万倍,累计收益从 4.5 亿虚高到 27 亿;三是资金占用率只在图表上画了一条 95% 警戒线,引擎从未真正执行,实测占用率峰值一度打到 146%;四是跨年持仓在「年内复利」模式下因资金基准重置而出现风险敞口突增。本项目的立项目标是把这套测算固化成一套可复现、口径清晰、指标完整的回测分析终端,让策略验证从「Excel 手工核对」升级为「一条命令出结论」。

功能介绍

系统由「数据接入 — 回测引擎 — 指标计算 — 看板展示 — 数据导出」五层构成。

数据接入层:只读接入 SQLite 信号库,61 张表按品种中文名建立映射,自动识别每个品种的手续费口径(按金额百分数 / 按手数元每手),并做交易配对建模——同一行既有开仓价又有平仓价时按「当日独立开平」处理为一笔完整日内交易,不进入持仓队列,从根本上消除因误用「平老仓+开新仓」模型产生的 26 笔孤儿平仓。

回测引擎层:事件驱动逐日推进,同一交易日内的开平仓顺序按品种名显式排序以保证结果可复现;账户资金永续累加与交易资金逐年重置双口径分离;内置三档资金占用率闸门(不超过 90% 按风险预算全开、超过 90% 按打满手数减一手、已满则仅开一手),并在年内复利模式的年末按「初始资金 ÷ 账户资金」系数对在手持仓等比例缩仓。

指标层:输出 50+ 项指标,覆盖收益(总收益、累计收益率、年化收益)、风险(动态/静态双口径最大回撤、最大回撤修复期、年化波动率)、风险调整(夏普、索提诺、卡玛)、交易质量(胜率、盈亏比、利润因子、单笔期望、凯利占比、最大连盈连亏)、资金(占用率峰值与均值、手续费占比)。

看板层:收益率曲线、资金占用率曲线(双图 dataZoom 联动)、年度收益柱状图、月度收益热力图四张图;17 张指标卡;交易明细表 12 列,含未平仓合约的实时浮动盈亏与持仓天数。

导出层:综合指标以分组、指标名、数值、单位、口径说明五列导出 CSV,品种贡献、交易明细(全量 2159 笔,不受前端分页限制)、权益曲线及带说明文档的 ZIP 打包导出。

项目实现

我负责的具体任务:完整的需求澄清与口径定义、回测引擎与全部指标公式的独立实现、前后端接口契约设计、看板可视化开发、构建发布流水线与开机自启部署,以及交付前的独立复算对账与全库语义错配体检。

技术栈:后端 Python 3.12 + FastAPI + uvicorn;前端 React 18 + TypeScript + Vite + Tailwind CSS + ECharts + Framer Motion;数据层 SQLite 只读接入。刻意不引入 pandas/numpy,全部指标用标准库手写,发布产物仅 40 个文件、4 MB、零编译依赖。

架构:源码区与发布产物区彻底分离,所有上线动作由脚本完成(自动备份 → 前端构建 → 后端复制 → 污染清理 → 清单生成),配套结构校验脚本与 Windows 计划任务实现开机自启。

实现亮点:一是指标可自证——交付前编写独立复算程序,不复用引擎任何代码,从原始数组重算全部指标并逐位比对,确保引擎内的 bug 不会被自身公式「自洽地」掩盖;二是每项指标强制登记口径说明,新增指标未登记会在导出时被显式标出,杜绝语义漂移;三是双口径资金模型分离,账户资金用于权益曲线与回撤,交易资金用于保证金校验,避免两个口径互相污染。

实现难点:一是手续费百分数语义错配,通过逐品种核对将总手续费从虚高的 4.5 亿修正到 26.4 万,落袋回撤从 74.02% 降到 7.35%;二是事件顺序决定性,发现遍历顺序依赖字典插入序会导致同参数两次运行结果相差 7 万余元,改为显式排序后实现完全可复现;三是跨年资金基准重置引发的占用率突增,定位到 146% 峰值源于存量跨年持仓叠加资金重置,通过年末等比例缩仓将峰值压到 89.89%,全库超 90% 天数由 18 天降为 0 天。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论