☰
AI时代普通人做量化:用Codex从零搭建ETF轮动系统
2026/10/2 17:11:23 网站建设 项目流程

文章目录

    • 前言
    • 一、个人做量化,过去卡在哪?
    • 二、为什么拿Codex举例:2026年的它早已不是“代码补全”
    • 三、先泼一盆冷水:AI不会给你Alpha
    • 四、实操:用Codex从0搭一套个人量化系统
      • 第0步:先回答“什么叫适合你”
      • 第1步:建项目,写好AGENTS.md
      • 第2步:数据层——让它干最脏的活
      • 第3步:回测引擎——简单、透明、可测试
      • 第4步:策略实现——一个“普通人拿得住”的ETF轮动
      • 第5步:稳健性验证——省不了,也不该省
      • 第6步:实盘——从“半自动”开始
    • 五、最大的坑:AI会把过拟合放大十倍
    • 六、Codex使用心得(2026年9月版)
    • 七、合规:个人程序化交易要注意什么
    • 八、写在最后

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看, 传送门https://blog.csdn.net/qq_34419312

前言

先交代一下背景,免得你们觉得我在吹牛。我写代码快十年了,前几年在大厂做后端,后来跳去一家私募搞量化研究和交易系统,满打满算在这行也就四五年。算不上老兵,但该踩的坑基本一个没落下:未来函数、幸存者偏差、手续费算漏、实盘滑点把回测收益吃掉一半——别人踩坑是交学费,我踩坑是交全款。

这两年身边越来越多朋友问我同一个问题:我不是科班,也不在机构,现在用AI能不能自己做量化?

以前我的回答基本是劝退三连:不行、别试、早点睡。今天我的回答变了:能,而且这可能是普通人在AI时代能拿到的最实在的一份红利。只是这份红利,不在大多数人以为的地方——不在“AI帮你选股票”上,而在别处。

一、个人做量化,过去卡在哪?

我把个人做量化的障碍总结成三堵墙,每一堵都曾经让我怀疑人生。

第一堵,工程墙。数据下载、清洗、复权、存储,回测框架,绩效统计,实盘接口……这一整套系统,在机构里是好几个人在维护。个人业余时间从零写,大概率在“写回测框架”这一步就把热情耗光了。热情这东西,跟健身卡一样,办卡的时候最旺盛,之后每况愈下。

第二堵,知识墙。什么是前视偏差?为什么一定要做样本外?夏普1.5到底算不算好?这些知识散落在论文、书和老师傅的口口相传里。没人带的话,你连该搜什么关键词都不知道——就像去图书馆找一本不知道书名的书。

第三堵,时间墙。上班族一周能挤出的有效时间也就十来个小时。一个想法从“灵光一闪”到“跑出可信的回测”,过去常常要两三个周末。等你验证完,兴趣也没了。兴趣这东西,比爱情还经不起异地恋——隔两周不碰,基本就黄了。

这三堵墙里,AI编程代理(coding agent)几乎直接推倒了第一堵,大幅削低了第三堵,还能在第二堵上当个随叫随到的助教。唯独有一样东西,它给不了你——这个后面单独说,先卖个关子。

本文以Codex为例。考虑到国内订阅Codex确实有点困难,可以参考一下这里:claudemax.shop。

二、为什么拿Codex举例:2026年的它早已不是“代码补全”

很多人对Codex的印象还停留在几年前,以为它就是个高级点的自动补全。先帮大家把背景更新一下,免得你拿着三年前的记忆来评判现在的它——那感觉就像拿诺基亚的键盘手感来评价现在的智能手机。

简单梳理几个节点:

  1. 2025年4月,OpenAI开源了Codex CLI——一个跑在本地终端里的编程代理,能读写文件、执行命令;一个月后又推出了云端版本。
  2. 2026年上半年进入快车道:2月推出桌面App,专门用来同时管理多个长时间运行的代理任务,底层模型先后换上GPT-5.3-Codex、GPT-5.4、GPT-5.5;3月加入插件体系,可以把工作流、应用集成和MCP服务打包安装。
  3. 用户规模:OpenAI在6月公布周活超过500万;8月又有OpenAI员工提到活跃用户达到2000万。这两个数字口径不同,不宜直接比较,但量级变化是明确的——就像说“我家客厅能站50人”和“我家小区能站2万人”,都没错,但意义不一样。
  4. 最近的变化在9月:月初发布了旗舰模型GPT-6 Astra;9月22日推出GPT-6 Sol和GPT-6 Luna,面向Codex和ChatGPT Work,同时API价格砍了一半左右。

对个人量化玩家来说,最后这一条最关键——成本。按官方价格,GPT-6 Sol每百万输入/输出token是2美元/10美元,上一代GPT-5.6 Sol是4/20;轻量的GPT-6 Luna只要0.10/0.50。这个价格放在两年前,做梦都不敢这么做。

如果不走API,Codex本身没有单独收费,跟着ChatGPT套餐走:Plus每月20美元,Pro分100美元和200美元两档(200美元档从9月10日起暂停新购)。按公开的估算,Plus用户每个5小时窗口里,GPT-6 Sol大约能用15~150条消息,Luna则是几百到几千条。

我的实际体感:个人做中低频量化研究,一个Plus账号基本够用。真正吃额度的是让它一次性读完一个巨大的仓库,或者同时开很多并行任务——个人项目很少到那个量级,就像家用车很少需要踩到200码。

换句话说:一个月20美元,你就拥有了一个不会累、不嫌问题蠢、能直接在你电脑上跑代码的“初级量化工程师”。这在五年前是不可想象的。五年前20美元能买到什么?一杯咖啡加一个“我建议你报个班”的销售。

三、先泼一盆冷水:AI不会给你Alpha

讲怎么做之前,必须先说清楚一件事,否则后面讲得越爽,你亏得越惨。

Codex能把你的想法变成代码,但它不能替你找到一个真正能赚钱的想法。原因很简单:大模型的知识来自公开资料,公开资料里能找到的“策略”,要么早被套利干净,要么本来就是回测幻觉——就像网上那些“年入百万的副业”,等你入场的时候,镰刀已经磨好了。

你让AI“帮我写一个年化30%的策略”,它一定写得出来——在回测里。它会非常努力地满足你,包括在不知不觉中帮你过拟合。这感觉就像你问理发师“剪完能变帅吗”,他说“能”,然后给你剪了个只有他自己觉得帅的发型。

所以我对“AI量化红利”的定义是:红利不是AI替你赚钱,而是把“想法→可信验证”的成本降到接近零,让普通人第一次有条件用科学方法对待自己的钱。

这也是“适合你的策略”的含义——不是最赚钱的策略,而是你看得懂、拿得住、和你的资金量/时间/性格匹配、并且经过严格验证的策略。翻译成人话:不是开得最快的车,是你开得最稳的那辆。

四、实操:用Codex从0搭一套个人量化系统

下面是我自己在用的流程。示例以A股ETF为主,因为对个人来说ETF有几个天然优势:卖出免印花税、没有个股暴雷风险、流动性好,跨境、债券等部分品种还支持T+0。ETF这东西就像方便面——简单、管饱、还不担心哪个厂家突然暴雷,把你的胃一起带走。

第0步:先回答“什么叫适合你”

打开Codex之前,先拿张纸写下这几项。这一步AI替不了你——就像体检报告不能替你做体检。

问题我的答案(示例)
投入资金20万,亏损30%以内能接受
每周可投入时间研究5小时,执行≤10分钟/天
交易频率周频或月频调仓
标的范围宽基 + 行业 + 跨境ETF,约40只
最不能忍受的事连续一年跑输沪深300 / 最大回撤超过25%

最后一行最重要。很多人的策略不是亏死的,而是在回撤期被自己手动关掉的——亏损30%你眉头都不皱,跑输沪深300你半夜爬起来删代码,那这策略就不适合你。跟找对象一个道理:先想清楚你最忍不了什么,比想清楚你想要什么更重要。

你能坚持执行的策略,才是适合你的策略。

第1步:建项目,写好AGENTS.md

Codex会读取项目根目录下的AGENTS.md,把它当成这个项目的“员工手册”。我觉得这是最被低估的功能——量化项目里很多坑,都可以在这里一次性写死,省得每次重新踩。

我的AGENTS.md大致长这样:

# 项目:个人ETF轮动研究 ## 硬性规则(任何代码都必须遵守) - 所有信号只能使用 t 日收盘及之前的数据,在 t+1 日开盘执行。禁止前视。 - 收益计算一律用后复权价格,展示用前复权。 - 回测必须计入:佣金万1.5(最低5元)、单边滑点0.1%。 - 任何新策略必须同时输出样本内(2015-2021)与样本外(2022至今)两段绩效。 - 每跑一次回测,把参数和结果追加写入 experiments/log.csv(带时间戳)。 ## 目录约定 - data/raw 原始数据,只读;data/clean 清洗后数据(parquet) - src/backtest 回测引擎;src/strategies 每个策略一个文件 - tests/ 核心函数必须有单测,尤其是信号与价格的时间对齐 ## 风格 - Python 3.12 + pandas,不引入重量级框架 - 修改回测引擎前,先说明改动理由

请记住“实验日志”那一条,讲过拟合的时候你会知道它有多重要——现在先记下,就当提前剧透。

第2步:数据层——让它干最脏的活

我给Codex的第一个任务通常是:用akshare下载config/universe.yaml里的ETF池自2014年以来的日线数据,存为parquet。再写一个数据质量检查脚本:检查缺失交易日、价格为0或负数、单日涨跌幅超过20%的异常值、上市日期之前的脏数据,输出一份报告。

这种活人写起来又烦又容易漏,Codex做得又快又全——它会自己跑,报错了自己改,最后交给你一份检查报告。你要做的是看报告,而不是逐行看代码。让AI干这种活,就像让实习生去贴发票:脏、累、必须有人干,而且它干完还不会在背后骂你。

两个提醒:

  1. 免费数据源偶尔会改接口,让它把“下载”和“清洗”分成两层写,出问题只改一层——别让它在一条泥路上修车。
  2. 在沙箱的网络设置里,只放行包管理源和你实际用到的数据源域名,不给代理任何多余的网络权限——信任是好的,但密钥这种东西,还是锁保险柜里踏实。

第3步:回测引擎——简单、透明、可测试

个人做中低频,向量化回测完全够用,没必要一上来就上事件驱动——又不是开F1,代步车先跑起来再说。我让Codex写一个300行以内的回测核心,并要求先写测试、再写实现,尤其是这三个测试:

  1. 用一段人工构造的价格序列,手算出应有收益,验证引擎结果完全一致;
  2. 故意把信号往前挪一天,断言测试会失败——这是抓前视偏差的“金丝雀”;
  3. 验证小资金下“最低5元佣金”是否真的生效。

这是AI最省时间的地方,也是最需要你盯紧的地方:测试的期望值必须由你来确认,不能让它自己出题、自己判卷。自己出题自己判卷,那不叫测试,那叫“我宣布我这次考了全班第一”。

第4步:策略实现——一个“普通人拿得住”的ETF轮动

举一个经典、逻辑清楚、个人也拿得住的框架:动量轮动 + 趋势过滤。

一句话逻辑:每周最后一个交易日收盘后,在ETF池里挑过去N日涨幅最高的K只,但只在它自身处于长期均线之上时才参与排名;都不满足就空仓(或换成货币/短债ETF);下一个交易日开盘调仓。

核心代码大致如下(Codex生成,我精简过):

importpandasaspddefmomentum_rotation(close:pd.DataFrame,lookback=60,top_k=2,ma_len=120):"""close: 行=交易日, 列=ETF代码, 后复权收盘价"""mom=close.pct_change(lookback)trend_ok=close>close.rolling(ma_len).mean()score=mom.where(trend_ok)# 趋势不达标的不参与排名rank=score.rank(axis=1,ascending=False)weight=(rank<=top_k).astype(float)weight=weight.div(weight.sum(axis=1),axis=0).fillna(0)# 每周最后一个交易日生成信号(自动处理节假日)dates=pd.Series(close.index,index=close.index)is_rebal=dates.groupby(close.index.to_period("W")).transform("max").eq(dates)weekly=weight[is_rebal]# 下一个交易日执行:这一行 shift(1) 就是防前视的关键returnweekly.reindex(close.index).ffill().shift(1).fillna(0)

注意最后的.shift(1),它就是AGENTS.md里那条硬规则的落地。我见过太多“年化50%”的回测,毛病就出在少了这一行。少了这一行,你的回测就像开着上帝视角打游戏——谁都能通关,问题是现实里没有上帝视角。

给Codex布置策略任务时,我有个固定句式:实现momentum_rotation并接入回测引擎,输出样本内外净值曲线、年化收益、最大回撤、夏普、换手率和分年度收益。然后扮演一个挑剔的风控,列出这个结果可能不可信的5个理由,并逐条写代码验证。

“扮演挑剔的风控”这一句非常好用。更进一步:另开一个会话(或者开一个独立的worktree),让一个没看过开发过程的代理专门审查前视偏差和数据泄露。自己写的东西自己审,人和AI都容易灯下黑——让AI审自己的代码,跟让渣男评价自己的专一程度是一个效果,必须换个“没见过世面”的来。

第5步:稳健性验证——省不了,也不该省

这一步我的时间投入几乎没有因为AI而减少,因为判断是我的活。AI能帮你把饭做熟,但好不好吃、能不能吃坏肚子,得你自己尝。

  1. 参数平原:lookback从20到120、top_k从1到4,画一张收益热力图。好策略应该是一片“高原”,而不是一根“针尖”。如果只有lookback=63那一格特别亮,基本可以判定是过拟合——一根针尖亮在那里,那不是策略,那是你家的WiFi信号图。
  2. 滚动样本外(walk-forward):用过去N年选参数,下一年检验,一路滚到现在。
  3. 换个市场试试:同样的逻辑放到港股、美股行业ETF上是否大致成立?逻辑真实的策略通常有一定普适性。
  4. 成本敏感性:把手续费和滑点翻倍,策略还活着吗?还活着,才说明它是真身,不是美颜滤镜。

第6步:实盘——从“半自动”开始

我强烈建议个人先做半自动:程序在每周最后一个交易日收盘后生成调仓清单推到手机,你自己手动下单。花不了几分钟,却能让你在真金白银里感受策略的节奏——就像学车先开自动挡,别一上来就挑战手动挡加山路。

Codex可以帮你写好整条链路:定时拉数据→生成信号→生成调仓清单→推送。用它自带的自动化任务,或者用codex exec挂进你自己的定时任务都可以。

跑稳三个月、实盘和回测的偏差可控之后,再考虑接入券商提供的量化交易终端做全自动。券商账户的密钥永远不要交给AI代理,也不要写进代码仓库。全自动一时爽,密钥泄露火葬场——这句话请刻在工位上。

五、最大的坑:AI会把过拟合放大十倍

现在来说那个“AI给不了你”的东西,以及AI时代个人量化最危险的陷阱。

以前手写代码,一个周末顶多试十几组参数。现在一个晚上让Codex批量跑上千组参数、几十种变体,毫不费力。问题就在这里:试的次数越多,纯靠运气“跑出好看结果”的概率就越大。

这不是玄学,是有数学公式的。Bailey和López de Prado提出过一个“多重检验下期望最大夏普”的近似公式。假设:5年日频数据,你测试的所有策略真实夏普都是0(完全没有Alpha),并且相互独立。结果是:只试1次,期望的最高夏普是0,很合理;试100次,从纯噪声里挑出来的最好那个,夏普期望约1.1;试1000次,约1.5;试1万次,约1.7。

夏普1.5的回测拿出去,很多人会觉得“挺不错”。但如果它是从一千次尝试里挑出来的,它很可能什么都不是。猴子在键盘上敲一万年也能敲出莎士比亚——你在回测里试一万次,也能试出一个“夏普1.7”。区别是猴子不知道自己敲的是什么,而你也不知道自己跑的是什么。

现实中策略之间高度相关,实际的膨胀会比这个理论值小一些,但方向完全一致。所以我的应对办法:

  1. 记录所有尝试:这就是AGENTS.md里要求写experiments/log.csv的原因。你得知道自己一共试了多少次——连自己试了多少次都不知道,就敢说“我发现了圣杯”,这不叫自信,叫失忆。
  2. 样本外只能用一次:一旦看了样本外结果又回头改参数,样本外就变成了样本内。相当于考试前偷看了答案,然后宣称自己裸考满分。
  3. 先有逻辑,再有回测:先写下“这个策略为什么应该赚钱、赚的是谁的钱”,再去验证。让AI批量生成因子然后挑最好的,本质上是在批量制造幻觉。
  4. 给夏普打折:让Codex帮你实现Deflated Sharpe Ratio,把试验次数纳入评估。打完折还好看的,才是真好看。

六、Codex使用心得(2026年9月版)

一些零碎但实用的经验,都是拿真金白银和时间换来的:

  1. 模型怎么选:日常开发用GPT-6 Sol足够;改文档、补单测、整理数据这类杂活用Luna,便宜、额度多;遇到真正棘手的问题(比如回测和实盘死活对不上),再切到Astra。另外,GPT-5.5计划在10月14日从Codex下线,还在用老模型的记得迁移——别等到下线那天才发现自己还在用,那感觉跟发现公司要搬家你还没找房子一样。
  2. 任务要小、要可验证:不要说“帮我做个量化系统”,而要说“实现X函数,满足这3个测试”。可验证的任务,代理完成质量高得多——给AI一个模糊需求,你只会得到一堆模糊代码。
  3. 善用worktree并行:想同时试两个策略方向,就开两个独立工作区各跑各的,互不污染。
  4. 让它解释,而不只是让它写:遇到不懂的概念(为什么用对数收益、什么是换手惩罚),直接问。这就是在推倒第二堵墙——知识墙。
  5. 代码你必须读得懂:不要求你能从零写出来,但每一行关键逻辑你都要说得清。读不懂的代码,别拿真钱去跑——闭着眼睛开车,出了事不能怪导航。

七、合规:个人程序化交易要注意什么

这几年监管对程序化交易的规则明显完善了。2025年7月7日起,沪深北交易所的程序化交易管理实施细则正式施行,核心是报告制度:首次进行程序化交易前,要通过券商报告账户、资金、策略类型、交易软件等信息。高频交易单独从严管理——单账户每秒申报、撤单达到300笔以上,或单日达到2万笔以上,就会被认定为高频。

对个人来说:按交易所在试运行期间的说法,触发异常交易指标的主要是量化私募、券商自营等机构,中小个人投资者基本没有出现相关情况。周频、月频调仓的个人策略离这些阈值非常远——远到监管的雷达都懒得看你一眼,那点动静还不够它打个盹的。

但只要你接入券商接口实现自动下单,就属于程序化交易范畴,请按券商要求完成报告,别抱侥幸心理。半自动(程序出清单、人工下单)是最省心的起步方式。

具体请以交易所和你开户券商的最新要求为准——别问我是怎么知道“以最新要求为准”这几个字有多重要的。

八、写在最后

回到开头:AI时代最大的红利是什么?我的答案是:AI把量化的门槛,从“会写代码”降到了“会想清楚问题”。

以前,一个有想法但不会写代码的人,和一个会写代码的人之间隔着巨大的鸿沟。现在这道鸿沟基本被填平了。但“想清楚问题”——你的钱承受得起什么、你的策略凭什么赚钱、你的回测里有多少水分——这件事的门槛一点都没降,甚至因为AI让试错变得太便宜,而变得更重要了。

所以,如果你一直想试试量化,现在确实是最好的时候。花20美元,拿出几个周末,按上面的流程搭一套属于自己的小系统。哪怕最后的结论是“这个策略不行”,你也会比绝大多数凭感觉看K线交易的人,更了解市场,也更了解自己。别人亏钱亏出的是教训,你亏钱亏出的是认知,这波不亏。

这份认知,才是真正属于你的红利。

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/qq_34419312

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询