做量化这行有一段时间了,最怕被问的一句话是:“你有没有推荐一个稳定盈利的策略?”说真的,每次听到这种问题我都不知道怎么接。量化交易这几年在国内热度居高不下,身边从传统炒股转过来的朋友也越来越多,有人把回测跑得飞起,觉得马上要财务自由了,也有人实盘上线一个月就被市场教育得灰头土脸。差距往往不在代码水平,而在更底层的一套认知框架。
后来我慢慢发现,用老祖宗那套“道、法、术、器、势”来拆解量化交易,特别顺。道是认知与理念,法是策略体系与规矩,术是具体操作与技法,器是工具与平台,势是市场环境与时机。这篇文章就沿着这五个维度展开,结合A股实战场景,把量化交易从入门到进阶的要点串起来。适合对量化交易有兴趣、想建立系统认知的朋友,也可以作为已经上手但总觉得差点体系感的玩家的复盘参考。
1. 道:先想清楚量化交易的底层生意经
1.1 量化交易的本质:不是预测,是算赔率
很多散户以为量化交易就是“用程序预测明天涨跌”,这是最深的误解。量化交易真正在做的事情,不是把未来猜准,而是把每一次出手放在一个“赔率对自己有利”的位置上,然后靠大数定律赚钱。
打个比方,赌场每张赌桌都不知道下一秒谁会赢,但它清楚每一局模型里庄家占了多少胜率优势。只要客人持续下注,长期来看,庄家必然会带走一部分利润。量化交易赚的就是这种“微小但稳定”的概率优势,只不过把赌场的牌桌换成了资本市场。
所以一个策略成熟与否,看的不是它最近三次出手是否赚钱,而是它在100次、1000次交易样本下的期望收益和风险分布。这个认知,是后面一切讨论的地基。如果你抱着“预测明日行情”的执念来学量化,大概率会越走越偏。
1.2 散户最容易陷入的思维陷阱
在A股市场待久了你会发现,大多数散户的决策路径是这样的:看到某个股票连续大涨,于是情绪被点燃,追进去;被套之后不甘心,一路持有甚至补仓;终于解套或小赚,立刻卖出。这套行为模式,心理学上叫“追涨杀跌”和“处置效应”,本质是用情绪代替规则。
量化交易恰恰相反,它强制你把“什么时候买、什么时候卖、买多少、止损多少”这些决策,提前写成不可随意更改的规则。规则在盘前定好,盘中只负责执行。哪怕这一笔亏了,只要规则背后的概率优势还在,就继续执行;如果规则已经失效,就停止并优化。
这个差异,是“人肉炒股”和“量化交易”之间最本质的分界线。你不需要比谁更聪明,你需要比谁更守纪律。A股市场里聪明人太多,但守纪律的人极少,这也是量化能长期跑赢相当一部分散户的原因之一。
1.3 量化的钱从哪来:A股的错误定价
很多人问,量化交易赚的钱是不是从别的散户口袋里抢的?其实不只是。量化的收益来源通常有几类:市场情绪驱动的错误定价、信息反应不足或过度反应带来的价格偏差、流动性补偿、以及统计上反复出现的微观规律。
A股因为散户占比高、情绪化交易多,错误定价普遍比成熟市场更明显。比如一只股票因为某个消息连续涨停,情绪退潮之后往往会大幅回踩;再比如财报发布前后,很多股票会出现明显的“公告漂移效应”。这些现象背后是行为金融学里讲过的过度反应和反应不足,而量化策略恰好擅长把这些现象转成可重复执行的规则,在价格回归合理区间时赚取差价。
这也是为什么过去几年量化在A股发展得特别快——市场越不理性,规则化打法越有优势。但也别忽略另一面:当大量同类策略涌进来,错误定价会被快速抹平,策略收益跟着衰减,甚至直接失效。这是后文“势”里要展开的话题。
1.4 量化不能做什么:认知的边界
这一节必须说清楚,防止对量化交易产生不切实际的预期。量化不能消除亏损,不能预测黑天鹅,不能保证每年正收益。它的价值是让你在“可承受的回撤范围内”拥有一个长期为正的期望收益,而不是天天赚钱。
我自己刚做量化时也犯过同样的错:回测里年化收益70%的策略,实盘跑了三个月回撤了15%,就慌了,开始怀疑是数据有问题还是策略有问题。后来才明白,回测里的收益率本身就包含了对波动和回撤的“定价”,没有回撤的策略是不存在的。你选择了高收益策略,就同时选择了伴随它的大幅波动。
认知边界才是量化交易里的第一道门槛,跨不过这道门槛,后面所有的法、术、器、势都无从谈起。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 法:策略体系与回测研究的纪律性框架
2.1 策略分类地图:先知道有哪些武器,再谈选哪件
量化策略并不是只有一种形态。按核心逻辑分,常见的有这么几类,我列个表格方便对照:
| 策略类型 | 核心逻辑 | 持仓周期 | A股适配度 | 研发难度 |
|---|---|---|---|---|
| 趋势跟踪 | 价格沿趋势运行,顺势而为 | 数日到数月 | 较高 | 低 |
| 均值回归 | 价格偏离均值后会回归 | 数日到数周 | 高 | 中 |
| 统计套利 | 相关资产价差偏离后收敛 | 数小时到数日 | 中 | 高 |
| 事件驱动 | 公告/消息引发的定价偏差 | 事件窗口期 | 高 | 中 |
| 日内高频 | 利用微观结构和订单流 | 毫秒到分钟 | 较低 | 极高 |
如果是新手,我最建议从趋势跟踪和均值回归这两类入手。不是因为它们最赚钱,而是因为逻辑清晰、容错率高,方便你把整套研究流程跑通。很多经典策略,比如双均线、布林带突破、RSI回归,都能用几十行代码实现,足够用来理解量化的运行机制。
2.2 从想法到回测:策略研发的标准流程
策略研发不是“想到一个点子就写代码然后跑回测”,而是一套可复现的、有纪律的流程。
第一步,观察现象。先有“市场某个规律”的直觉,比如“A股市场在财报超预期后会出现收益延续”,而不是凭空设计指标。
第二步,形成假设。把这个现象用可以被数据验证的语句写下来,比如“如果净利润增速超过一致预期10%以上,未来20个交易日的超额收益为正”。
第三步,数据验证。找到干净的数据,验证假设在历史样本上是否成立。
第四步,写回测。把假设转成量化规则,在历史数据上模拟交易,统计各项指标。
第五步,样本外验证。用一段没有参与策略设计的历史数据再做一次验证,这一步极其重要,但很多人会跳过。
第六步,模拟盘与实盘。用真实行情跑一段时间模拟盘,再小资金实盘,确认执行环节没有意外。
这个流程看起来简单,但每一步都有大量细节。比如“观察现象”最怕的是用已经发生的事实反推规律,也就是后视偏差——你去复盘的时候看到一段行情很规律,但实际上当时这个规律并不明显。破解的方法是:先定格规则,再让它自动跑。
2.3 回测的三个大坑:未来函数、幸存者偏差与过拟合
回测是量化研究的基础,但回测结果好看,不代表策略真的能赚钱。我见过太多人在回测上栽跟头,总结起来就是三个经典大坑。
第一个坑是未来函数。所谓未来函数,就是你用来计算信号的数据,在当时这个时点根本拿不到。最常见的例子:用当天收盘价计算均线,然后假设当天就以收盘价成交。这在回测里是完美的,实盘根本做不到,因为你计算完信号、发出指令、下单成交,这中间是有时间差的。正确做法是信号计算完成后,必须在下一根K线开盘或收盘执行。
第二个坑是幸存者偏差。用今天还在上市的股票做回测,把那些已经退市的、被ST的股票全部排除在外,结果当然是“活下来的都是赢家”,但策略真实会持有的股票里,垃圾股同样可能出现。做回测时,必须用“历史上的成分股全集”,包括后来退市的对象。
第三个坑是过拟合。参数调得越精细,回测曲线就越漂亮,但实盘往往打脸。后面在“术”的部分,我会专门展开讲怎么防止过拟合。
2.4 评估策略的六个指标,以及它们如何互相制约
评估一个策略,不能只看收益率。我一般看六个指标:年化收益率、最大回撤、夏普比率、卡玛比率、胜率、交易次数。
- 年化收益率:策略在一年内赚多少钱,但它本身不考虑风险。
- 最大回撤:从净值高点跌到低点的最大幅度,代表策略最坏情况下的亏损。
- 夏普比率:每承担一单位波动能赚多少超额收益,一般大于1算不错,大于2算很好。
- 卡玛比率:年化收益除以最大回撤,衡量“收益/回撤”的性价比。
- 胜率:盈利交易次数占总交易次数的比例。
- 交易次数:样本量够不够,决定上面的指标可不可信。
最关键的一个认知是:这些指标之间相互制约。胜率高不代表能赚钱——胜率60%、盈亏比0.5的策略,长期期望是负的;胜率30%、盈亏比3的策略,反而可能非常赚钱。所以评估策略一定要看综合,而不是盯着某单一指标。我自己最看重最大回撤和卡玛比率,因为亏损的深度直接决定了你能不能在市场中活下来。
2.5 进阶方向:MDP与强化学习在量化中的位置
最近两年,量化圈对强化学习、马尔可夫决策过程讨论很多。简单科普一下:传统策略是“信号到仓位”的静态映射,而马尔可夫决策过程把交易看成一个序列决策问题——在每一个时间点,基于当前状态(持仓、价格、波动率、资金余额)选择动作(买入、卖出、持有),目标是在整个时间轴上累计收益最大化。
强化学习天然适合这种框架,所以很多团队在用它做自适应策略。但我也要说句实在话:强化学习训练的模型非常不稳定,数据需求量大,还容易过拟合,在小资金散户的环境里很难直接落地。我建议把它当做一个“视野扩展”的方向来了解,而不是一上来就all in去搞强化学习。先把传统统计方法玩明白,再考虑这些高阶工具。
3. 术:从信号到成交,量化执行层的魔鬼细节
3.1 因子工程:把原始行情变成可用的信号
量化策略的原料是因子,因子就是从原始数据里提炼出来的、某种有预测能力的特征。常见的有三类:量价因子(比如5日动量、波动率、成交额变化率),基本面因子(比如市盈率、净资产收益率、净利润增速),以及情绪因子(比如换手率、涨跌停家数)。
因子拿到手之后,通常还要做三步预处理:去极值、标准化、中性化。去极值是砍掉极端异常值,防止一个离谱数据扭曲整体统计;标准化是把不同量纲的因子拉到同一尺度,方便给它们加权组合;中性化则是剔除行业、市值等共同风格的影响,让因子真正反映个股自身特征。
这一步没有特别高深的数学,但非常琐碎,可以说量化研究的日常就是在做数据清洗。数据质量差、处理不干净,后面策略做得再精致也是白搭。很多新手热衷于研究各种复杂算法,却忽略了数据预处理,这是本末倒置。
3.2 参数优化的“钓鱼陷阱”:如何在过拟合边缘试探
参数优化是量化里最容易让人自我感动的地方。很多人用网格搜索把(5,20)这样的均线参数遍历一遍,找到回测收益最高的那一组,然后觉得自己发现了圣杯。这类结果拿到实盘,十个里有九个会翻车,因为你的参数只是精准贴合了历史的噪声,而不是贴合了规律。
应对方法有几个。第一,只看“参数平原”,不要选回测收益的尖峰——如果参数在一定范围内变化,收益都差不多,说明策略逻辑稳定,选中间值;如果只有某个精确参数能让收益暴涨,周围差一点点就崩盘,那大概率是过拟合。第二,做样本外测试,把数据切段,一段用来开发、一段用来验证。第三,用滚动前推方式,让窗口不断前移,持续检验模型在不同市场状态下的稳定性。
说实话,我至今也会在参数优化上翻船,每次都要用“这个参数调成这样,逻辑还讲得通吗”来反问自己,逻辑讲不通的参数再好看也不敢用。
3.3 一个可以直接跑起来的双均线策略(Python代码)
光讲理论不够,给一个最简单的双均线策略示例,方便刚从炒股转向量化的人上手。假设你已经通过akshare或tushare拿到了某只股票的日线数据,列名包含date、close。
python复制import pandas as pd
def ma_cross_strategy(df, short_win=5, long_win=20):
df = df.copy()
df["short_ma"] = df["close"].rolling(short_win).mean()
df["long_ma"] = df["close"].rolling(long_win).mean()
# 信号:短期均线上穿长期均线时持有多头
df["signal"] = 0
df.loc[df["short_ma"] > df["long_ma"], "signal"] = 1
# 关键:信号要后移一格,模拟信号出现后次日才交易
df["position"] = df["signal"].shift(1)
df["ret"] = df["close"].pct_change()
df["strategy_ret"] = df["position"] * df["ret"]
df["cum_ret"] = (1 + df["strategy_ret"]).cumprod()
return df
这段代码里最重要的不是均线,而是 df["position"] = df["signal"].shift(1) 这一行。shift(1) 意味着当天的持仓是由昨天收盘时的信号决定的,这正好规避了我前面说的未来函数。跑出来的曲线往往不会像抖音里那些“一年十倍”那么夸张,但它是真实可复现的。想验证更多策略,就在这个框架上改造,比如加止损、加仓位管理、换信号指标。
3.4 A股特有的交易制度约束:T+1、涨跌停与最小交易单位
同样的策略,放在美股和A股,执行效果可能完全不同,因为A股有一套独特的交易制度约束。
第一是T+1制度。当天买入的股票当天不能卖出,这意味着纯日内策略在A股很难施展,除非你手里始终有底仓。设计策略时,必须考虑信号可能在当天触发、但最快也要次日才能卖出。
第二是涨跌停制度。涨停时买不进,跌停时卖不出,回测里必须模拟“无法成交”的情况,否则回测收益会虚高。我在回测框架里一般会加入一个检查:如果当日收盘封死涨停,买单不成交;封死跌停,卖单不成交。
第三是最小交易单位。A股按“手”交易,一手等于100股,资金量小的时候,仓位计算很容易被这个约束卡住。
再加上佣金、印花税(目前卖出时按成交金额的千分之一收)、滑点这些成本,策略在回测里如果连千分之三到千分之五的交易成本都扛不住,实盘基本没有希望。
3.5 资金管理与仓位体系:先活下去再谈收益
选对策略只是第一步,仓位管理才是决定最终盈亏的关键。我见过太多人策略本身是赚钱的,因为重仓一只票遇到连续跌停,爆仓出局,后面策略再对也与他无关了。
几个能直接用的原则:单策略分配的资金不超过总资金的三成,避免单点失效拖垮整个账户;单只股票的仓位不超过组合的10%到15%;设置总账户回撤红线,比如回撤达到15%就强制降半仓、回撤达到20%就清仓复盘。回撤控制不是靠主观意志,而是靠提前写好的规则,这是量化交易最重要的“术”之一。
4. 器:A股量化工具链,从入门到够用
4.1 为什么是Python,而不是其他语言
量化圈最主流的语言是Python,不是因为Python跑得快,而是因为它的生态最省心:pandas和numpy能优雅地处理表格数据,matplotlib和seaborn能快速可视化净值曲线,statsmodels和scikit-learn能完成统计分析,还有一些专门做回测的库开箱即用。
相比之下,C++和R也有各自的优势:C++适合做高频交易,需要极致性能;R在统计学方法上很丰富,学术圈用得多。但对绝大多数A股散户和中小团队来说,用Python把策略逻辑快速验证出来,再决定要不要用别的语言去做性能优化,是最高效的路径。
4.2 主流A股量化平台横评:聚宽、掘金、QMT、vn.py
很多人卡在第一步不知道选哪个平台。我按我的经验做个对比:
| 平台 | 数据丰富度 | 回测能力 | 实盘支持 | 学习成本 | 适合人群 |
|---|---|---|---|---|---|
| 聚宽 | 较好 | 在线研究环境友好 | 部分券商支持 | 低 | 新手入门 |
| 掘金 | 较好 | 灵活 | 较强 | 中 | 有一定基础 |
| QMT | 好 | 券商客户端内置 | 强 | 中 | 想直接实盘的散户 |
| vn.py | 依赖自选数据 | 自建框架 | 强 | 高 | 进阶/专业团队 |
如果你是完全新手,我建议先从聚宽或QMT上手。聚宽的在线研究环境能让你在网页里直接写策略、跑回测,不用折腾环境;QMT则是很多券商在用的量化交易终端,开通权限后既能研究也能直接下单,很多小资金量化玩家都用它。
4.3 新手与进阶两条工具链路线图
根据不同的目标,我给你两条路线参考。
新手路线:QMT(或聚宽)+ Python + 现成量化社区。先用平台自带的数据和回测工具把策略跑熟,重点理解“信号”“持仓”“回测”“风控”这些概念在不同策略里的变化。
进阶路线:本地Python环境(Anaconda + Jupyter)+ vn.py或其他开源回测框架 + 本地数据库。自己搭数据管道,从数据清洗到回测再到实盘对接,形成完整闭环。这条路前期很辛苦,但你对系统的掌控力是最高的,后续扩展多因子、组合管理、风险监控都更灵活。
4.4 WebUI框架:为什么量化团队都在自己搭面板
以前单策略、小资金的时候,用命令行看看回测报告就够了。但如果你同时跑三五个策略,有几十个仓位,再叠加参数调整和日志查看的需求,没有一个可视化的面板会非常痛苦。所以现在越来越多量化团队会给自己搭一个WebUI。
这块的技术栈并不神秘:前端可以用Vue或React,后端用FastAPI或Flask,策略进程和Web服务之间用Redis或WebSocket通信。核心目的就是让你在浏览器里看到持仓、净值、回撤、当日盈亏、策略运行日志,而不是满屏幕的终端输出。对于小团队,不需要做得多花哨,把“状态可视化”和“参数可调整”两件事做好就够了。
4.5 数据源:量化交易的地基工程
最后说数据。策略、因子、平台都选好了,如果没有干净的数据,一切都白搭。日线级别,akshare、tushare、baostock这些免费库基本够用;分钟级、财务明细数据,tushare pro需要积分,baostock部分免费;Level2逐笔数据则比较贵,一般小团队暂时用不上。
选数据源的时候要特别关注三个细节:复权处理是否准确(前复权和后复权对均线类策略影响很大),停牌数据是否保留完整,财报数据是否及时更新。市面上很多免费数据在某些细节上会埋雷,一旦踩中,回测结果就会出现系统性偏差。
5. 势:在什么环境做什么策略,以及什么时候该收手
5.1 A股市场的“势”与成熟市场的差异
量化策略不能脱离具体市场环境去讨论。A股与美股、港股在“势”上有显著差异:散户占比高,情绪驱动的波动大;政策驱动明显,宏观与行业政策往往带来阶段性风格切换;板块轮动快,热点切换频繁;涨跌停和T+1制度又强化了某些非对称特征。
这些差异决定了同样的策略在A股和美股表现可能大相径庭。比如成熟市场常用的低波动率策略,在A股历史上表现没那么稳,因为A股的投机氛围更重。所以,任何海外策略搬到A股,都不能直接照搬,必须重新做本地化适配和样本内外的验证。
5.2 如何判断当前市场适合什么策略
“势”的把握,本质是对市场状态的识别。我常用的几个判断工具:
- 指数均线排列。沪深300或中证全指在20日、60日均线上方运行,且均线呈多头排列,趋势策略的黄金期;均线纠缠、价格在区间内来回震荡,这时趋势策略很容易连续止损,均值回归策略反而更有优势。
- 市场宽度。计算全市场上涨股票占比,比如过去20个交易日平均上涨家数超过60%,市场偏热,追涨策略要小心;低于40%,市场偏冷,防守型策略更有价值。
- 波动率。用历史波动率或ATR看市场整体波动水平,波动率上升时趋势策略容易吃到肉,波动率持续走低时,很多策略的预期收益都会摊薄。
5.3 策略容量与流动性:量化的天花板
量化策略有一个所有玩家都必须面对的天花板:策略容量。一个策略能容纳的资金量,受限于它交易标的的流动性。以A股为例,你策略买卖的股票日成交额如果只有几千万,那你投入的资金稍大一点,下单就会明显冲击价格,滑点急剧放大,策略的盈亏模型也随之失效。
所以判断一个策略能不能上量,不能只看收益曲线,还要实盘验证滑点在资金量放大后的变化。我自己就吃过这个亏:一个日线策略在小资金回测里年化收益很好看,资金加到一定程度后,同样的信号下单,滑点比原来翻了几倍,最终收益被交易成本吃掉了大半。
5.4 策略失效的预警信号与启停纪律
任何量化策略都有生命周期。尤其在A股,一个策略被市场广泛知晓后,用的人一多,alpha就会快速衰减。这就是量化行业常说的“拥挤”。判断策略是否失效,我主要看几个信号:连续一段时间收益曲线明显偏离回测区间;最大回撤超过历史极值;因子IC值降到零附近甚至变负;交易执行时的滑点显著增大。
出现这些信号时,正确的做法不是加仓摊平,而是降低仓位甚至暂停策略,做一次彻底的复盘。宁可错过一段反弹,也不要在一个正在失效的策略上硬扛,这是我用真金白银买回来的教训。
写这篇文章不是想告诉你量化交易能轻松赚钱。恰恰相反,我想说的最重要的一句话是:量化交易是一件需要持续投入、严格自律、敬畏市场的事情。道法术器势,五个维度缺一不可——认知错了方向就错了,规则缺失执行就会乱,细节不到位收益就被成本吃掉,工具没选对事倍功半,时机没把握再好的策略也是逆水行舟。
如果你正准备开始或已经在路上,我的建议是:先小资金跑通整个流程,把回测、模拟、实盘、复盘、风控这一整套动作练成肌肉记忆,再谈收益和alpha。先把每一个环节都做扎实,市场不会亏待真正守规矩的人。
