让 AI 写出代码不难,难的是让结果能被你检查。

AI 编程与量化开发环境

约 15 分钟1 个动手实验4 道小题

学完你能说清楚把需求、环境和验证都说清楚,再让 AI 小步修改,你才能得到可信的量化结果。

01学完这一课,你能做到什么

假设你有一个历史行情 CSV,想让 AI 算出、画图,再标记买卖信号。AI 可能很快写出一段能运行的代码,但这还不代表结果正确。

学完这一课,你应该能:

  1. 把一个模糊想法改写成有输入、处理步骤、输出和验收条件的任务;
  2. 用规则文件告诉 AI 项目边界,减少重复造轮子和改坏已有功能;
  3. 分清 Ask、Plan、Agent、Debug 四种工作方式;
  4. 找到代码实际使用的 Python 解释器和依赖;
  5. 把量化项目拆成数据、策略、结果和说明,并用正常样例与失败样例验收。

AI 能帮你少写一些语法、少查一些资料,但不会替你定义交易逻辑,也不会替你确认数据。程序能跑,不等于数据是真的;有收益曲线,不等于回放可信;AI 说“很有把握”,也不等于完成了验证。

从想法到可信结果
  1. 1说清需求输入、范围、输出、限制
  2. 2读现有代码先找已有函数和依赖
  3. 3小步修改一次只改一处
  4. 4实际验证正常样例加失败样例

02先把任务说成可以检查的结果

不要只说“帮我做一个量化策略”。你可以这样说:

我有一份历史日线 CSV。请计算 MA5 和 MA20,按前一个时点与当前时点的关系标记交叉,输出图表和信号表。暂不连接交易账户。缺少必要字段时直接报告,不要创建模拟行情。请说明假设,并用一个正常文件和一个缺少字段的文件验证。

这句话已经交代了六件事:范围、输入、处理方法、输出、限制、验收。AI 有了明确边界,你也有了检查答案的尺子。

举个反例。AI 生成一个网页小游戏,代码看起来完整,打开后棋盘却没有正确显示。问题不一定是 AI 不会写代码,而是“做完”没有被定义成用户真的能操作、结果真的能显示。写量化程序也是一样:运行成功只是第一关。

调试往往会占掉大量时间,有时比写代码本身还多。需求不清、上下文遗漏、环境冲突、逻辑错误,以及一次改动影响其他功能,都可能让调试变难。

同一个需求,检查难度不同
模糊

帮我做个量化策略

没有数据、规则、输出和验收标准,结果很难判断。

可检查

用 CSV 算 MA5/MA20

写明输入、交叉定义、输出、限制和两个验证样例。

一句话记住好需求要能说清输入、输出和怎么验收。

03用项目规则,避免反复犯同一种错

你可以把规则分成两层。全局规则是每个项目都适用的偏好,比如用中文说明、先检查现有文件、不要暴露凭证、没有跑过的检查要如实说。项目规则是当前项目的约定,比如目录结构、字段名称、接口、运行环境和不能越过的边界。

一份量化学习项目的规则可以写成:

  • 只做历史数据学习,不连接真实交易账户;
  • 修改前先阅读现有实现,优先复用已经验证的函数;
  • 只修改当前任务相关内容,保留已经完成的行为;
  • 缺数据、权限失败或接口报错时明确报告,不拿模拟数据冒充真实数据;
  • 输出保留证券代码、数据日期、来源和参数;
  • 运行与安装依赖时,使用当前项目的解释器;
  • 改动后检查相关计算和一个失败场景,没执行的检查要写明。

不同工具读取规则文件的方式不一样。不要因为文件名叫 rules,就假定它一定会自动生效。你还要注意上下文:AI 看到的是实际提供给它的文件,不是整个项目。检索可能漏掉依赖,聊天记录也不等于项目说明。不同模型能读的上下文长度不一样,代码行数也没法直接换算成固定的 token 数。

因此,让 AI 修改 B 前,先要求它定位已有的 A、B 和共用函数,列出准备改哪些文件。这样能减少两类问题:修改 B 时把 A 改坏,以及重新写已经调通的函数。保留短的项目说明,比期待 AI 永远记住聊天内容可靠。

开发时不要用大量 fallback 把错误藏起来。比如接口取不到价格,就悄悄用随机数;文件缺失,就塞入默认行情。曲线虽然能出来,结果却没有真实依据。合理降级可以存在:网络暂时失败时有限重试,缺少某个标的时跳过并记录原因,交易系统进入只读或暂停状态。关键是不能悄悄改变数据真实性、风险规则和结果含义。

三条让错误显形的规则

先定位

先读目录、字段说明和已有函数,再决定改哪里。

不伪造

缺数据就报错或记录原因,不用随机数填出一条曲线。

可追溯

保留来源、日期、参数和实际读取的文件名。

一句话记住先读已有实现,再改当前任务相关的地方。

04先选对工作方式,再让 AI 动手

同一个 AI 工具,通常可以用不同方式工作:

  • Ask:解释代码、比较方案、理解报错。通常只给说明和建议,不改文件;
  • Plan:面对多文件修改或重构,先列范围、步骤、验证方法和回退办法;
  • Agent:目标明确,而且你已经授权执行时,才让它实际改文件和运行检查;
  • Debug:错误可以复现时,提供最小复现步骤、预期结果、实际结果、报错和运行环境,让它找证据、判断原因、做最小修复,再复测。

复杂任务可以先让 AI 把方案写成 Markdown。你先检查依赖、范围和风险,再决定是否执行。方案不必很长,但必须能回答“改哪里、为什么、如何证明改对”。

不要把 AI 的自评分当成功概率。即使它说方案 90 分,也不表示经过校准,更不表示真实数据已经验证。更好的问法是:请列出假设、已有证据、未知条件、替代方案和失败情景。

调试时只发必要信息。日志里的密钥、账户号和个人信息要先删除或遮盖。让 AI 一次定位一个问题,不要遇到一个报错就要求它把整个项目重写。

复杂任务的安全顺序
  1. 1Ask理解现状
  2. 2Plan列范围和验证
  3. 3Agent小步执行
  4. 4Debug按证据复测

一句话记住方案要回答改哪里、为什么改、怎样证明改对。

05工具和模型,按任务需要选择

简单任务可以先用响应较快的选择;如果任务复杂,或者同一个问题多次失败,再换推理能力更强的选择。这是工作方法,不是某个工具或模型永久有效的排名。

比较时,不要只看榜单分数或一次聊天的感觉。给不同选择同一个小任务,检查它们是否:读懂已有代码、保持交易规则、报告没有运行的测试、不编造接口,以及需要几次才能修好。更强的模型也可能把收益、索引或逻辑写错。

自动选模型省操作,手动选模型便于比较和控制成本。编程工具只是界面和执行环境,不能因为按钮名字好听,就判断策略可信。命令行工具还可能依赖 Node.js 或 npm;是否需要,以当前工具说明为准,不必为了量化学习把所有工具都装上。

比较模型的两个尺度

榜单与主观体验

能帮助你初步筛选,但不等于你的量化任务结果。

同题实测

用同一个小任务检查代码理解、规则保持和验证报告。

一句话记住榜单和体验只能参考,真实小任务才是比较标准。

06先确认:你到底在用哪一个 Python

“明明装过这个库,运行时却说找不到”,常见原因不是库消失了,而是你有多个 Python:系统 Python、独立安装的 Python、Conda 环境,编辑器运行的是一个,安装依赖用的是另一个。

过去常见的建议是 Python 3.10 及以上,但版本选择不能永久照搬。先检查课程项目和依赖支持什么版本,再固定环境。版本太新,某些二进制库可能还没有适配。Windows 还可能需要配置 PATH;Mac 和 Linux 的命令名称、路径也可能不同。

在准备运行代码的同一个终端里检查:

import sys
print(sys.version)
print(sys.executable)

sys.executable 会告诉你实际运行代码的解释器路径。安装依赖时,使用这个解释器对应的 python -m pip,并在编辑器里选择同一个项目解释器。隔离环境可以减少不同项目互相影响,但创建命令按你的系统和项目约定执行。

先把环境确认清楚,再让 AI 给命令。否则它可能套用错误的系统命令,或者帮你把包装到了另一个环境。

排查依赖缺失
  1. 1检查版本sys.version
  2. 2检查路径sys.executable
  3. 3同一解释器装包python -m pip
  4. 4编辑器选同一环境再运行代码

一句话记住安装库的解释器,必须和运行代码的解释器一致。

07量化项目里的依赖,各自负责什么

把依赖想成不同岗位,不要一次装齐:

  • Pandas 等数据处理工具:处理表格和时间序列,做窗口计算,读写文件。读写 Excel 可能还需要对应引擎;
  • 行情和财务数据服务:提供行情或财务字段。字段、覆盖范围、权限和调用限制要逐项核对;
  • 券商通信工具:例如 XtQuant、miniQMT 这类环境,用于连接指定本地终端和相应业务。包存在,不代表终端、账户和交易权限已经可用;
  • 大模型 SDK:例如 DashScope 这类云服务 SDK,用于调用文本或视觉模型。模型名、SDK 和鉴权方式会变,使用前要看当前文档;
  • Jupyter:可以分段运行代码、查看中间变量和图形,是可选的交互学习工具,不是回放必需品;
  • Node.js/npm:某些命令行编程工具的运行依赖,是否需要取决于工具本身。

云端模型和本地模型是两种部署方式。云端不用自己部署模型,但仍要考虑网络、凭证、费用和发送哪些数据。聊天工具的额度,也不能直接当成程序 API 的额度。

Jupyter 有一个隐蔽问题:单元格不按顺序运行时,内存里可能还留着旧变量。最后要重启内核,按顺序完整运行;或者把核心流程整理成能重复执行的脚本。

从数据到运行环境

数据

表格处理、行情服务、财务字段

执行

券商终端、账户和交易权限

学习

Jupyter、模型 SDK、命令行工具

一句话记住先理解依赖的职责,再按项目需要安装。

08用一个最小项目,跑通完整闭环

一个适合入门的项目,可以分成五个位置:原始数据、处理后的数据、策略代码、结果、说明文档。原始数据要保留来源和版本,清洗时不要覆盖唯一副本。

第一个任务只做历史指标:读本地 CSV,检查必要字段,计算均线,输出图和信号表。先不接行情 API,也不接交易端。这样,算法错误和网络、权限错误不会混在一起。数据链路稳定后,再加数据服务;最后才讨论模拟执行,并把真实账户隔离开。

可以给 AI 这样的实施请求:

先阅读现有目录和字段说明,复用已有读取函数。增加 MA5 与 MA20 交叉信号,信号由前一个时点与当前时点比较得到。输入缺少日期或收盘价时停止并说明,不创建模拟行情。输出证券代码、信号日、参数和原始文件名。完成后运行一个正常样例和一个缺失字段样例,报告实际结果。

完成后先看实际改了哪些文件。再用一份可以手算的小数据核对均线,检查重复日期和缺失值。测试不是越多越好,而是要抓住真实错误;如果测试和实现写得一模一样,可能只是证明代码能通过自己的假设。

最小量化项目的推进顺序
  1. 1本地历史数据来源和字段先确认
  2. 2指标与信号用小数据手算核对
  3. 3外部数据服务再处理网络与权限
  4. 4模拟执行和真实账户隔离

一句话记住先把历史指标跑通,再逐步增加外部连接。

09怎么给 AI 提需求,怎么检查它的结果

你可以把一次 AI 任务写成下面这个模板:

  1. 目标:我要解决什么问题;
  2. 现状:已有目录、文件、函数和运行命令是什么;
  3. 输入:数据来源、字段、时间范围、格式和可能的缺失;
  4. 输出:要生成什么文件、字段、图表或报告;
  5. 限制:不接真实账户、不编造数据、保留哪些已有行为;
  6. 假设:交叉怎么定义,成交和费用怎么处理;
  7. 验证:正常样例、缺失字段样例、预期结果和实际结果;
  8. 风险:未来数据可能修订、接口可能失败、哪些结果还不能下结论。

让 AI 先读代码,按数据加载、指标计算、信号生成、仓位调整、成交记账、绩效统计解释每个函数的输入、输出、依赖和调用顺序。然后只改一个地方,告诉你改了什么,再运行相关检查。

验收时,先判断错误属于哪一层:解释器、依赖、文件路径、数据字段、计算逻辑、外部权限,还是结果展示。保留最初报错,不要用一个笼统的异常捕获把“没有数据”伪装成成功。修复后复现同一场景,并确认原来正确的功能没有被改变。

最后应留下:项目规则和运行说明;实际解释器、版本和依赖;可重复运行的历史指标脚本或笔记本;数据来源、字段和缺失检查;一个正常结果和至少一个失败场景的处理记录;以及一段 AI 工作记录,说明提出了什么、改了什么、验证了什么、还有什么没完成。完成这些,你得到的是可解释的研究起点,不是已经证明能赚钱的系统。

一句话记住AI 负责加快修改,你负责确认数据、逻辑和风险。

动手试试

哪种问法更好

同一个需求的两种问法,判断哪一种更容易让 AI 给出可以验证的结果。

SCENARIO JUDGE

下面每组是同一个需求的两种问法。请选择哪一种更容易让 AI 给出可以验证的结果,并注意它是否说清了输入、输出、假设和验证方法。

第 1 / 6 张
情景 01

说明数据范围

A:请读取这份历史日线 CSV,只统计 2024 年 1 月 1 日到 2024 年 12 月 31 日的数据;说明实际读取到的第一天、最后一天和缺失日期。 B:帮我看看这只股票去年表现怎么样,数据你自己找。

检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01下面哪种需求最容易得到可以检查的结果?
02代码提示找不到已安装的库,第一步更应该检查什么?
03行情文件缺失时,哪种处理更适合量化研究?
04准备修改多个文件前,哪种做法更稳妥?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · AI 编程与量化开发环境让 AI 写量化代码时,最重要的原则是什么?

把输入、输出、限制和验证方法说清楚,让 AI 先读现有代码,再一次改一处并检查失败场景。

  • 需求可检查
  • 环境要一致
  • 结果要复测
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01需求要写清输入、处理、输出、限制和验收条件。
  2. 02项目规则帮助 AI 先读已有实现,不伪造缺失数据,也不悄悄改坏其他功能。
  3. 03Ask、Plan、Agent、Debug 分别适合理解、规划、执行和排错。
  4. 04先确认实际 Python 解释器,再用同一个解释器安装依赖。
  5. 05量化代码必须检查正常结果和失败场景,运行成功不等于结果可信。
完成这一课

完成这一课

读完讲义、动手做一次实验、答对小题,这一课就算学完了。

  • 读完讲义
  • 完成一轮问法判断
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定的提问情景,用于比较不同问法能否得到可以验证的结果。

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。