夜雨聆风学习资料网

ARTICLE · 1247084

有AI做助手,小白也能快速拥有个性化生产级量化系统

有AI做助手,小白也能快速拥有个性化生产级量化系统

本文约4200字,建议阅读时间11~16分钟

关键字:AI,量化,Agent,LLM,Quantitative Trading,Vibe Coding,WorkBuddy,A股,量化系统,个性化,生产级,开发方案,工作空间,Deepseek-V4.1-Flash,系统底座,数据层,因子层,策略层,回测层,应用层,NeoData,westockdata,Akshare,iFinD,DuckDB,Parquet,列存储,backtrader,qlib,vectorbt,QMT、MiniQMT、PTrade,回测引擎,双因子时序,横截面动量,单票择时,均线交叉,通道突破,K线形态

我们在上一篇AI之量化系列-AI能替量化做什么,当前真正的价值在哪文章中介绍了AI与量化结合的理论与现实基础以及一些基于Workbuddy系统开发的准备工作,这一期将重点介绍如何利用Workbuddy快速搭建一个个性化生产级量化系统。

一、项目工作空间

在与AI(agent)共事时,建议先创建一个工作空间(可以理解为项目办公室,是你和agent工作的地方),并以标的+频率+交易类型+项目名称命名(比如stock_daily_trend_quant)。

WorkBuddy默认创建的工作空间通常在C盘下,所以不建议直接通过左侧导航栏【空间】的加号进行创建,可以先到其他盘(比如D盘)创建一个文件夹(以完整项目名称命名),然后在右侧对话框下方点击【选择工作空间】->【打开本地文件夹】->选择自定义的项目文件夹即可。

同时,也可以在对话框右下方选择对应的模型,如果积分充足(比如1000+),建议可以选择token消耗倍率>0.00x的模型,比如Deepseek-V4.1-Flash参与方案设计与开发。

二、方案大纲

用AI(agent)做一件事,特别是我们陌生的领域或者需要稍微复杂流程的工作时,我们可以先给AI提出总需求,充分让AI发挥,然后给到我们做事情的核心基线。于是,我把创建一个相对完整的A股量化系统项目的想法告诉agent,并让它先给出一个量化系统建设项目架构的大纲,不到一分钟的工夫:

项目层级骨架图(感觉确实专业^-^):

 3个需要关注的核心点(确实是生产环境中会存在的问题):

 需要确认的7项待定决策(D1~D7):

编号

决策点

agent推荐

理由

D1

系统定位

研究决策支持为主,实盘人工下单

1、个人全自动实盘受券商接口权限与资金门槛限制;

2、策略未经充分验证即接实盘,风险成本高于收益

D2

数据频率

日频为主,分钟级后置

1、日频可覆盖绝大多数有效因子;

2、分钟级在数据量、撮合复杂度与策略容量上的代价呈指数上升

D3

数据源

NeoData / westockdata起步,akshare 兜底,iFinD 交叉校验

1、三者均可低成本接入;

2、采集层做成适配器,避免绑定单一数据源

D4

存储方案

DuckDB + Parquet

1、单机列存、零运维、可被 pandas 直接读取;

2、全A日线十年仅数GB,无需独立数据库服务

D5

回测引擎

自研轻量向量化引擎,A 股规则手写;vectorbt 仅作因子扫描加速

开源框架对涨跌停不可成交、停牌、T+1、复权多为半成品,改造代价高于自研

D6

ML因子

先规则因子,ML列为V2

缺少可信回测的ML因子无法证伪,容易把噪声包装成 alpha

D7

界面形态

CLI +静态HTML 报告,Web 后置

Web 化约占一半工作量,却只带来最后约10%的使用价值

备注:

1. 建议讨论顺序:D1 → D2 → D3 → D5;D6、D7可由前四项推导。

2. D1未确认前,D5、D7为条件性建议。

针对D5项的进一步说明:

(1)backtrader已停更多年、事件驱动在 Python里慢到没法做参数扫描;

(2)qlib整套抽象层重,改A股撮合规则要读穿三层源码;

(3)vectorbt快,但涨跌停不可成交、停牌、T+1这些必须自己补。

结论是:核心引擎自己写,vectorbt只借来做因子批量扫描的加速器。

最后,提出了一些建议以及实施路线的迭代方向(感觉比我还谨慎,但对于个人量化系统的搭建,还是较为中肯的):

三、决策反馈

针对上述D1到D7项决策以及实施路线建议,反馈一下我的决策:

D1:同意系统当前的定位,主要以决策支持为主,但是如果开发web端,希望预留实盘对接的一个口子(包括QMT、MiniQMT、PTrade三种国内常见量化交易工具)。

D2:同意以日线(降低交易频率)为主,暂不考虑分钟线。

D3:同意数据采集层做适配,做交叉验证,但需要明确以哪个源为主?适配层的逻辑是怎样设计的?最终目的就是要保证数据(除A股外,可能还涉及港股、美股、美债、美元指数、COMEX黄金、布伦特原油、人民币国债收益率、人民币对美元汇率等)来源的可靠性、准确性和一致性,并同时考虑数据获取和未来更新的便捷性(比如支持较高并发的请求而不被封)。

D4:同意DuckDB + Parquet的数据存储方案,但必须告诉你我的电脑配置如下:内存8G(一般2G物理+4G虚拟可用),4核,项目工作区硬盘空间预计18G可用。

D5:同意回测引擎自研开发,vectorbt仅作因子扫描加速。

D6:ML因子是否可以分为指标层和特征层,指标层是基于原始数据计算得到的具有实际含义的指标,而特征层是通过ML特征工程得到的不具有实际含义的指标?

D7:CLI +静态HTML 报告无法支持交互,我的想法是通过筛选时间区间、修改参数(比如成本设置、策略参数设置等)来快速比较不同情形的情况,所以可能web更适合我。

补充3点:

1、你提议先把链路打通,我赞同。

2、但模块需要先确定下来(同意你设计的层级),如果当前最小链路不涉及某个层或模块,但是请占位并在完整流程上体现出来(可透传)。

3、最后生成一个满足个人A股日线量化交易系统的架构与功能方案,格式Markdown。

等了一会,便有了答复:

接着“奏乐”,接着“舞”:

D3:使用开源免费数据源,A股数据选择中证800吧(同时在web端支持指定个股指定时间段的下载,数据源概览可视化看板与单个标的查询展示等),而港股、美股、美债、美元指数、COMEX黄金、布伦特原油、人民币国债收益率、人民币对美元汇率等则是全部需要(不管什么股票都需要)。新增要求:

(1)A股行业指数(如申万行业,全量);

(2)数据源选择的时候增加及时性要求(数据获取的及时性);

(3)更新机制为保留最近12年的数据。

上述方案是否可行?

D4:内存可以按照4G(物理)设计,硬盘大小可以扩容(比如30G)。结合最新D3的设计(非全量股票+最近12年),数据量应该能降下来。

D6:同意你的分类标准,增加标签层。

D7:我的要求并非需要快速回测。结合当前电脑配置,如果技术上可以实现并行回测,优先采纳,如果不支持并行回测,可以设计一个机制,比如允许将同一种策略回测结果保存为文件(主要包括标的、设置参数、回测结果与评估指标等),然后对同一个目录下的策略进行比较分析,类似你提出的缓存策略。

其他说明:

(1)实盘预留仅保留QMT、MiniQMT,目前尚未对接券商。

(2)设计方案需要保留层级设计与模块设计。

(3)真实场景,可能只涉及关心的几只个股,策略里需要增加组合策略(比如给定总金额,确定资金分配)。

(4)每开发一个层级、模块,需要与我讨论确认后开发,你可以按照确认后的架构先把架子搭起来。

经过不到半小时,系统骨架(共57个文件,代码超过3000行)搭起来了,并做了链路连通测试:

继续作指示:

D3的四个问题:

一、免费源和“及时性”之间有矛盾,无法完全解决,只能分级。

答复:同意你的设计。

二、申万行业全量有一个免费源解决不了的问题。

答复:同意你的设计,但需要你帮我把这个问题记下来,到时你需要根据这个问题合理处理后面的开发设计。申万行业指数用二级即可。

三、12 年滚动窗口和可复现性冲突。

答复:同意你的双数据集方法。(即保留自选股池的历史版本)

四、港股美股的范围要你定。

答复:只要美股、港股指数的数据。

还有一个关于策略的疑问:

当前是否支持自定义策略?你打算怎样设计,能更好区分不同策略,然后通过选择对应的股票进行回测?

很快有了回音:

继续讨论(快达到目标了):

1、cross_section + 池不足 20 只时报错,还是跑但标红?

答复:同意报错

2、策略规格存 YAML 文件还是数据库?

答复:存文件

3、V0.1.1 的范围

答复:「规格解析 + 三种归一化 + universe 过滤 + run_id + 结果落盘」是否指默认的策略?如果是,可以保留。

说说我的想法:策略可以是变动的(即支持自定义策略,到时需要你和我一起商量着开发),可以采用注册制,然后策略注册好了,只需要更换股票数据即可做回测(可通过在策略web界面进行选择策略和股票)。当前可以在系统中默认注册一些常见的量化策略(比如均线策略、K线策略等)。

好吧,看来目前我们还缺少点默契:

1、我说的K线策略确实指的是K线形态,比如单K线,多K线组合形态等。请继续你的下一步。

2、完成后,如果测试链路没有问题,在项目目录下安装系统运行环境,然后告诉我怎么启动这个系统,并生成一个系统启动文档。今天的工作就算完成了,你就可以休息了^-^

 又过了半小时:

继续答疑(应该是最后一块拼图了):

1、可以根据K线数量决定持有天数,比如,单K线,持有1天,双K线,持有3天,三K线持有5天。

2、按原计划做结果落盘。

最终项目代码结构:

可以参考系列文章不用写一行代码,用AI也能做出实用的多因子选股看板类似的方法设计系统启动方式,这次,就入乡随俗,基于项目docs文件夹下的《系统启动文档.MD》,里面提供了多种启动方法,我选择了最简单的方法(bash命令):

(1)Win + R;

(2)输入cmd + enter;

(3)切换至项目目录 D:\stock_daily_trend_quant;

(4)然后执行启动命令:run.bat web。

出现上述输出,说明系统服务已经启动好了(会自动打开浏览器),如果没有,可通过本地浏览器输入地址:http://localhost:8501进行查看。

来吧,看看初步效果:

 看着大体框架是建好了(有那个味道了,但还需要自己加点配菜或者佐料)。如果想快速试验(等不及的),可以直接让agent接入具体个股数据开干,但是我们的目标是建立较为完整的量化系统,所以后面将逐步进行细化和优化,敬请期待!

特别提醒:数据来自公开免费接口或模拟数据 · 结果仅供研究参考,不构成投资建议!

我让 AI 每天自动出一份宏观热点日报,最难的一关不是抓取,是让它别瞎编

AI 已经开始自己造AI了,而且没人敢踩刹车

AI 抢的不是你的活,是你"拍板"的那一下

那个啥都不会的人,靠 AI 入职了——然后呢?

AI 黑进澳洲医保网的那周,它还登上了《科学》

相关学习资料