很多人学量化,第一步就走错了
最后更新: 2026-04-29
Table of Content
很多人学量化,第一步就走错了¶
三年前有个读者找我聊,说他花了三个月学量化,情况是这样的:
Python基础刷完了,Pandas和NumPy用得熟练,PyTorch的LSTM股价预测教程跑了五遍。教程里的回测曲线很漂亮——2020到2025年,年化收益28%,夏普比率1.82,胜率62.4%。他跟着一步步复现,代码能跑通,曲线也对得上。
然后他用小资金实盘,两个月亏了12%,模型停用。
他问我:为什么会这样?
问题不是模型不够复杂¶
他学的顺序是这样的:Python → 机器学习 → 找策略代码 → 跑回测 → 上实盘。这个顺序看起来合理,但实际上跳过了量化最核心的东西。
我画了一张图,量化学习其实有五个阶段:
| 阶段 | 内容 | 大多数人从哪里开始 |
|---|---|---|
| 1 | 概率思维:理解不确定性、期望值、大数定律 | ❌ 跳过 |
| 2 | 数据认知:理解样本、分布、幸存者偏差、过拟合 | ❌ 跳过 |
| 3 | 策略逻辑:理解盈亏同源、夏普比率、最大回撤的含义 | ❌ 跳过 |
| 4 | 工具实现:Python、回测框架、数据库 | ✅ 从这里开始 |
| 5 | 实盘检验:滑点、冲击成本、心理承受 | 很少走到这一步 |
他从第4步直接跳进去,前面的地基一块没打。
这不是他的错。网上99%的量化入门教程都是这么教的:先装Anaconda,再学Pandas,然后跑一个双均线策略,看看回测曲线。这些教程教的是"怎么操作软件",不是"怎么理解市场"。
跳过前三步,后面每一步都会踩坑¶
第一阶段跳过(概率思维)的后果:
他跑出来的回测曲线,年化28%,最大回撤-18.5%,胜率62.4%。看到这个数字,他的第一反应是"这个策略能赚钱"。
但量化看一个策略,第一反应不应该是"能不能赚钱",而是"这个期望值的计算过程靠不靠谱"。
28%的年化收益是怎么算出来的?回测条件是什么?扣了交易成本吗?用了哪些年份的数据?这28%里,有没有某一年占了总收益的一半?他一个都没想。他看到的是一条向上的曲线,然后直接等同于"能赚钱"。
更底层的问题是:他学量化,心里想的其实还是"预测"。LSTM输入前20天的K线,输出明天的涨跌——这不就是预测吗?但量化处理的不是"明天涨不涨"这种判断题,而是"这一类交易重复一千次,长期下来值不值得做"这种概率题。
判断题思维关心的是准确率。概率题思维关心的是期望值:赢的时候赢多少,输的时候输多少,各有多大概率发生。
如果他先学过概率思维,就不会盯着"准确率62.4%"这种数字自我安慰。量化圈子里有个公认的事实:很多深度学习模型训练集准确率能到85%,实盘预测涨跌的准确率只有51.3%——比抛硬币强不了多少。更关键的是,哪怕准确率有60%,如果赢的时候赚1个点、输的时候亏2个点,长期期望值仍然是负的。
第二阶段跳过(数据认知)的后果:
他跑小市值因子策略,回测2010到2020年,年化收益29.7%。聚宽有一份研究报告,每年买入A股市值最小的100只股票,十年跑出来的收益就是这个数。但这个回测有一个隐藏的陷阱:股票池是"当前还在交易的股票"。
2010到2020年之间,有很多小市值股票后来退市了、ST了、被收购了。这些股票从回测池子里被踢掉了,因为它们"现在不存在"。存活下来的小市值股票,恰好是这十年里表现好的那部分。用它们的平均收益来代表"小市值策略"的收益,相当于问一群百万富翁"你怎么变富的",然后总结致富经验——你听不到破产者的声音。
这叫幸存者偏差。不先理解数据是怎么生成的、样本是怎么筛选的,回测就是在沙滩上盖楼。
更深层的问题还没完。29.7%这个数是"裸回测"的结果,没有考虑真实交易成本。A股散户佣金加印花税,单边至少0.15%;小市值股票日均成交额仅为大盘股的1/10,买卖滑点可能高达0.5%到0.8%。把这些成本叠加上去,年化收益会大幅缩水。有研究做过对比:加入退市股票和真实交易成本后,原本30%左右的年化大多会跌到15%-25%之间。
第三阶段跳过(策略逻辑)的后果:
回测曲线漂亮,不代表实盘能跑。回测和实盘之间至少隔着三道墙:滑点、冲击成本、参数过拟合。
前面说的那个LSTM教程,回测假设了零交易成本、零滑点、可以按收盘价成交。这三个假设在实盘中一个都不成立。A股散户佣金加印花税,单边至少0.15%;小盘股滑点可能0.5%以上;按收盘价成交在流动性差的股票上几乎不可能。把这些成本叠加上去,28%的年化可能直接腰斩。
他用的策略有六个参数,网格搜索找最优组合。这在数学上等价于:在训练集上试了上千种组合,选出历史表现最好的那一组。这不叫优化,这叫在答案揭晓之后选答案。样本内好看,样本外大概率崩。
如果先学过策略逻辑,他会知道"参数越少越鲁棒""回测好看可能是过拟合的征兆"这些基本道理,就不会对着一条漂亮的曲线激动三个月。
正确的第一步应该做什么¶
不是装Python。不是跑双均线。不是学LSTM。
正确的第一步,是一个不需要电脑就能完成的思维实验:
找一只你最近关注过的股票,或者一个你常用的交易方法。然后拿出纸笔,回答下面四个问题:
第一,这个方法的胜率是多少?
不要凭感觉说"大概六成吧"。去翻历史记录,数一下过去三年里,这个方法出现信号之后,上涨和下跌的次数各是多少。如果没有历史记录,那就承认"我不知道"——"不知道"比"猜一个数"更接近量化的起点。
第二,赢的时候平均赚多少,输的时候平均亏多少?
很多人只关心胜率,不关心盈亏比。一个胜率30%但盈亏比3:1的策略,长期期望值是正的;一个胜率70%但盈亏比0.5:1的策略,长期期望值是负的。胜率单独看没有意义,必须和盈亏比配对。
第三,最坏的情况下,连续错多少次?最大回撤会有多深?
期望值是长期平均,但路径是具体经历。一个期望值为正的策略,可能先连续亏八次,把本金打掉30%,然后才开始盈利。你能不能扛过那八次?不是心理上能不能扛,是资金上能不能扛——会不会在第八次的时候就被迫止损出局了?
第四,这个方法的"失效条件"是什么?
任何策略都有生命周期。趋势跟踪在震荡市失效,均值回归在趋势市失效,小市值在注册制之后失效。你的方法在什么市场环境下会失灵?失灵的时候你有没有退出机制?
这四个问题答完,你对"量化思维"的理解已经超过了市面上80%跑过回测的人。因为这四个问题强迫你从"预测一次"切换到"评估一类交易"。
为什么这个顺序不能颠倒¶
有人会觉得:我先学会Python和回测框架,再回头补概率思维,不行吗?
理论上可以,实际上很难。因为工具会反过来塑造思维。
当你已经会跑回测框架的时候,你的自然冲动是"多跑几个策略、多试几组参数"。回测工具太容易得到"结果"了——点一下运行按钮,三秒后出来一条曲线。这种即时反馈会让人上瘾,你会觉得"我在进步",但其实只是在收集更多好看的曲线。
而概率思维的训练是反直觉的。它要求你慢下来,不去跑代码,而是坐在那想:这个假设成立的前提是什么?数据的生成过程有没有偏差?这个结论能不能被证伪?这些东西没有即时反馈,不像跑回测那样点个按钮就有结果。所以一旦你先学会了工具,就很难再回头去啃那些"没有输出"的基础认知。
量化圈子里有个说法:回测是鸦片。第一次跑出一条向上的曲线,那种快感会让你误以为自己找到了圣杯。但如果你前面没有概率思维的防火墙,你分不清这条曲线是真实的Alpha还是过拟合的噪音。
那代码什么时候学¶
不是不学代码,而是不要第一步就学。
概率思维、数据认知、策略逻辑这三个阶段,每个阶段都有具体的检验标准:
- 概率思维阶段:能用纸笔算出一个简单策略的期望值,理解为什么"胜率×盈亏比"比"准确率"更重要。
- 数据认知阶段:能识别出一个回测报告里的三个常见陷阱(幸存者偏差、前视偏差、过拟合)。
- 策略逻辑阶段:能独立设计一个"可证伪"的交易假设——也就是说,能清晰地说出什么情况下这个假设会被推翻。
这三个阶段过了,再碰代码。这时候你写的每一行代码都有明确的目的,你知道自己在验证什么假设、在排除什么偏差。代码是工具,不是起点。
写在最后¶
那个花三个月学LSTM的读者,后来怎么样了?
他花了一个月重新做那个思维实验。把自己过去两年的交易记录翻出来,一笔一笔分类统计。结果发现他自认为"胜率很高"的那个方法,实际胜率只有43%,盈亏比0.8:1,期望值是负的。
他不是在找更复杂的模型,他是在用一个更复杂的模型去包装一个本来就亏钱的交易逻辑。
很多人学量化,第一步走错,不是因为不够聪明、不够努力。恰恰相反,是因为太着急、太想找到一个"立刻能赚钱"的答案。但量化真正的起点,是承认市场的不确定性,然后学会在不确定中做有正期望的决策。
这个认知转换不依赖任何代码。一支笔、一张纸、一颗愿意慢下来的心,就够了。