量化炒股入门:把凭感觉买卖变成用系统做决策
本文仅供学习交流,不构成投资建议。
引言
很多人第一次听到「量化炒股」,脑子里浮现的画面大概是这样的:好几块屏幕,上面跳着各种数字,一段程序在自动买卖,钱源源不断进账。
这个想象不算完全错误,但它把最重要的东西遮住了。
量化的核心,不是「神秘算法」,也不是「全自动赚钱」。它做的事情其实很简单:把你原来模糊的、凭感觉的交易决策,变成一套写得出来、测得过去、改得了的规则。
在 A 股的官方定义里,这叫「程序化交易」——通过计算机程序自动生成或下达交易指令。证监会的相关规定已于 2024 年施行,沪深交易所的实施细则也已落地。深交所细则明确写了,个人投资者也可以进行程序化交易。
换句话说,量化不是灰色地带,而是一种有明确规则和合规要求的交易方式。
学量化的第一步,不是去找「胜率最高的指标」,也不是搜「年化 80% 的神策略」,而是先建立一个基本认知——
量化不替你思考。它只是逼你把思考写清楚。
你原来凭感觉做的判断,在量化里必须变成明确的条件表达式。你原来靠「应该没事」硬扛的亏损,必须变成事先定义好的风险阈值。量化不是「更聪明地猜」,而是「更严格地执行」和「更诚实地检验」。
一、量化炒股到底是什么
把交易拆开来看,它其实就是一串连续的决定:
- 买什么?
- 什么时候买?
- 买多少?
- 什么时候卖?
- 亏多少停?
- 赚多少走?
- 什么时候该空仓?
- 什么时候该降低仓位?
主观交易者通常是看到行情之后,临时做这些决定。量化交易者则是提前把这些问题回答好,然后用规则和程序去执行。
一个例子
假设有一个主观交易者说:「这只 ETF 最近走势不错,感觉要突破了。」
这句话听上去像判断,但仔细一想,它其实没有提供多少有用信息。什么叫「走势不错」?什么叫「要突破」?突破到什么程度算成立?回落多少算失败?仓位该放多大?第二天低开怎么办?
这些问题没有答案的话,所谓「交易逻辑」其实只是情绪和印象的混合物。
量化做的第一步,就是把这种模糊语言翻译成明确规则。比如:
若收盘价创过去 60 个交易日新高,且 20 日均线向上、成交额不低于过去 20 日均值的 0.8 倍,则于下一交易日开盘买入,仓位 30%;若收盘价跌破 20 日均线则卖出。
这套规则未必赚钱,但它有两个主观判断没有的优点:
- 可执行——任何人拿到这段描述,都能做出相同操作。
- 可回测——你可以拿历史数据检验它过去的表现。
这就是量化的本质:把交易从「临场发挥」变成「规则系统」。
系统可以简单——一条均线加一条止损线就够了。也可以复杂——多因子、机器学习、组合优化。但不管复杂还是简单,它做的始终是同一件事:用明确的规则替代模糊的直觉。
量化系统的四个层次
一个成熟的量化系统,通常包含四层:
| 层次 | 职责 |
|---|---|
| 研究层 | 提出假设——市场里可能存在什么规律 |
| 验证层 | 用历史数据检验假设是否成立 |
| 执行层 | 把信号转成实际订单 |
| 风控层 | 在系统出错或市场异常时保护账户 |
很多人以为量化的核心是「公式」,其实真正拉开差距的,是公式背后的系统设计能力。
二、关于量化的四种常见误解
误解一:量化 = 人工智能
很多人觉得,只有用了神经网络、深度学习,才算量化。
其实不是。大量真实可用的量化策略都很朴素:趋势跟随、资产轮动、均值回归、再平衡策略、事件驱动规则。它们可能根本没用到复杂模型,但只要规则明确、可回测、可执行、可管理风险,就是量化。
误解二:量化 = 高频交易
高频交易确实属于量化的一个分支,但它很窄。高频强调的是超低延迟、海量订单和专业级基础设施。
沪深交易所已给出明确认定标准:单个账户每秒申报撤单达 300 笔以上,或单日达 20000 笔以上,才算高频交易。
对个人投资者来说,真正适合做的是日频或周频的中低频策略。你该练的是规则设计、数据处理、回测纪律和风控能力,而不是跟机构比速度。
误解三:量化天然更客观
程序确实能减少情绪干扰,但程序不会自动消灭偏见。
你用什么数据、怎么做复权、如何定义信号、有没有偷看未来数据、回测里有没有忽略成本——这些偏差,程序一个都不会帮你修正。量化并不消灭自欺欺人,它只是把自欺欺人的方式从「拍脑袋」变成了「写代码」。
误解四:量化是一劳永逸的赚钱机器
市场环境会变,资金结构会变,交易制度会变,流动性会变,策略拥挤度也会变。量化系统不是修好就不用动的水龙头,它更像一台需要持续维护和校准的实验装置。
三、一个量化系统的完整结构
学量化,最重要的不是记住指标名称,而是先在脑子里形成一张系统地图。
一个量化系统可以想象成一条流水线,分五段:
1. 数据层
量化的地基。你至少需要:
- 行情数据(开高低收、成交量等)
- 交易日历
- 标的信息
- 复权信息
有些策略还需要财务数据、指数成分、公告事件、行业分类等。
数据层要解决的核心问题不是「有没有数据」,而是数据是否干净、连续、口径一致,是否能还原当时真实可得的信息。
2. 策略层
负责把想法翻译成信号。
- 认为趋势会延续?→ 定义什么是「趋势」
- 认为强者恒强?→ 把「强」转成可排序的指标
- 相信均值回归?→ 把「偏离程度」写成公式
策略层做的不是讲故事,而是写条件链。
3. 组合层
回答「买多少」的问题。
很多人只关心「买什么」,忽略了仓位管理。但实际上,你是全仓还是等权,是按波动率调整还是设行业暴露上限,这些选择对结果的影响,往往比选标的更大。
4. 执行层
信号 ≠ 成交。
你是收盘生成信号、下一开盘成交?还是假设收盘价成交?考虑了滑点吗?考虑了成交量约束吗?执行层不光鲜,但它决定了研究离真实世界有多远。
5. 风控与复盘层
成熟的系统不只抓机会,还要限制错误:
- 单日亏损过大 → 触发降仓?
- 组合回撤过大 → 触发停机?
- 数据更新失败 → 自动中止?
还要有报告和日志,让你知道每天的操作是什么原因触发的。
没有复盘,量化就不是系统,而只是自动化的冲动。
四、为什么 A 股新手更适合从 ETF 开始
我建议新手先从 ETF 做起,不要一上来就碰个股。原因有三个。
第一,ETF 帮你隔离了大量个股层面的极端事件。 业绩爆雷、黑天鹅、停牌复牌断层、题材股瞬间熄火、ST 和退市风险——这些在 ETF 层面都被大幅平滑了。
第二,对初学者来说,建造研究系统比追求 alpha 更重要。 个股策略会迅速把你拖入复杂度的泥潭——股票池选择、财务数据频率、调仓日和财报日对齐、停牌处理、涨跌停限制、分红送转……这些都值得学,但它们更适合当第二阶段的课题。
第三,ETF 让你可以很快跑出一个完整闭环:
1 | 下载数据 → 计算信号 → 生成持仓 → 跑净值曲线 → 算指标 → 做报告 → 样本外验证 |
对个人开发者来说,「先把小系统跑起来」的成就感至关重要。量化最怕的不是策略差,而是工程项目起得太大,最后什么都没做完。
在 A 股语境里,证监会明确提出「先报告、后交易」,程序化交易投资者需先报告相关信息后方可进行程序化交易。对入门者来说,先做研究、回测、信号输出、日报生成,再逐步走向半自动决策支持,是更务实的路径。
五、数据:量化的地基,也是最大的坑
量化世界里有一句老话:垃圾进,垃圾出。
几乎所有初学者都会在数据层吃亏。因为大多数人把精力花在策略公式上,结果发现真正决定结果有没有意义的,是那些看起来很琐碎的细节。
常见的数据陷阱
| 问题 | 影响 |
|---|---|
| 忘了复权 | 趋势信号被分红/送转扭曲 |
| 没处理停牌期间无数据 | 把「没交易」误当成「价格稳定」 |
| 没用交易日历对齐 | 不同标的之间的对比错位 |
| 使用了当时不可得的数据 | 回测结果不可信 |
以 Tushare Pro 为例,它的 A 股日线接口默认是未复权行情,停牌期间不提供数据。这些 API 细节对量化来说是生死线级别的信息。
什么是复权?
复权其实很简单。它就是告诉你:历史价格要放在同一把尺子上看。
如果一只基金分了红,或者一只股票发了送转,你不做处理,价格图会突然出现一个「断层」。而你的策略如果基于均线、涨跌幅、突破等指标,就会被这个假断层误导。
什么是点时可得性?
你在某个交易日做决策时,到底能看到哪些信息?
比如某份财报 4 月 30 日发布,那你在 4 月 10 日的回测里就不能使用其中的利润数据。某只股票后来被剔出指数,也不代表你可以假装当时就知道它会被剔除。
量化里最值钱的一种诚实:承认「当时的你,不知道后来发生的事」。
实用建议:建立本地数据缓存
不要每次研究都在线拉取全部历史数据,也不要让策略直接耦合外部接口。推荐的做法:
1 | 数据源(Tushare 等)→ 采集器 → 本地存储(Parquet / SQLite)→ 回测模块 |
这样做的好处:
- 速度更快
- 结果可复现——今天和三个月后的结果能在同一份数据快照上对比
最后提醒一句:数据问题不是「解决一次就没事了」。每引入新资产、新频率、新字段,问题都会重新出现。成熟的做法是:默认数据迟早会出问题,在系统里为数据校验、缺失处理和异常中止留出位置。
六、新手最值得先掌握的两类策略
「到底先学哪种策略?」这是入门者最常问的问题。
我的建议:先学趋势,再学轮动。不是因为它们最赚钱,而是因为它们最适合当学习框架。
第一类:趋势跟随
最典型的代表是双均线策略。
规则很朴素:
- 短周期均线向上穿过长周期均线 → 买入
- 反向跌破 → 卖出
或者更简单:收盘价站上某条长期均线就持有,跌破就空仓。
趋势策略直观、容易理解、容易回测。你很快就能看到它的真实面貌:单边上涨时能吃到大段行情,震荡市里则来回打脸。
但它的真正价值在于,它会逼你面对一系列关键的技术问题:
- 信号按收盘价还是盘中生成?
- 成交假设放在下一开盘还是下一收盘?
- 均线参数该固定还是做网格搜索?
- 空仓时持有现金还是货币 ETF?
- 手续费和滑点会不会把微弱优势吃掉?
极简版实践: 选一只宽基 ETF(比如沪深 300 ETF),每天收盘后检查 20 日均线和 60 日均线。20 日在 60 日上方且空仓就买,跌回下方且持仓就卖。跑出净值曲线,观察最大回撤和换手频率。
做完这一轮,你得到的不是「圣杯」,而是你的第一份量化实验报告。
第二类:ETF 轮动
背后的想法是:强势资产在一段时间内可能继续强势。
做法是选几个 ETF,按过去一段时间的收益或波动率打分,定期持有得分最高的。为避免在熊市里硬选「最强的弱者」,可以加一个绝对动量过滤:标的本身收益为正时才买入,否则空仓。
轮动策略比单一趋势多了一层「横向比较」,但又没有个股多因子那么复杂。你可以快速学到组合调仓、排序逻辑、再平衡频率、换手率控制这些更贴近实际的能力。
关于多因子和机器学习
不是不能碰,但建议别当第一站。那个世界的复杂度会瞬间包围你:财务数据时效性、幸存者偏差、行业中性化、极值处理、样本穿越、特征泄露……
先把简单系统做扎实,再往那边走。
七、回测:量化里最重要,也最容易骗人的环节
量化最吸引人的地方是回测——你可以在历史上验证策略。
量化最危险的地方也是回测——一条漂亮曲线太容易让你产生错觉。
回测不是未来收益的承诺。它只是在一组历史条件下、基于一套假设做出的模拟实验。
回测的五个经典陷阱
1. 未来函数
在历史里使用了当时不可能知道的信息。比如用当日收盘价假设盘中成交,或用季报公布后的数据在公布前选股。不会报错,但会让结果好得不真实。
2. 幸存者偏差
只拿今天还存在、表现不错的标的回看过去。退市的、清盘的、边缘化的,被你无声删掉了。
3. 信号 ≠ 成交
收盘后才能确认信号,却假设当日收盘就能买入。一个细节就能让漂亮的回测大幅缩水。
4. 忽略交易成本
很多策略只在零成本的理想世界里好看。加入佣金、印花税、滑点后,从惊艳变成平庸甚至转负。
5. 过拟合
不断调参数——20 日改 23 日,再改 27 日,加各种过滤条件——直到找到一组在过去完美的参数。这组参数很可能只是「刚好适配历史数据」,并不代表发现了稳定的规律。
怎样防止自欺
成熟的回测会设计一套防自欺机制:
- 样本内/外拆分
- Walk-forward 滚动验证
- 参数敏感性分析
- 不同市场阶段对比
- 强制加入成本和滑点
- 固定数据版本,确保可复现
回测真正的价值不是让你兴奋,而是让你清醒。
八、怎样读懂一份回测报告
很多人看回测报告,第一眼盯着总收益率。这没错,但如果只看这个数字,很容易被误导。
一份有用的回测报告,至少要回答四个问题:
- 赚不赚钱?
- 过程难不难熬?
- 靠什么赚钱?
- 什么情况下最容易失效?
关键指标说明
| 指标 | 说明 |
|---|---|
| 年化收益率 | 长期复利增长速度。必须配合风险指标一起看 |
| 最大回撤 | 从高点到低点最深的坑。回撤 50% 需要涨 100% 才能回本 |
| 夏普比率 | 衡量收益的「平滑程度」。越高越好 |
| 卡玛比率 | 年化收益 / 最大回撤。衡量回撤效率 |
| 胜率 | 高胜率 ≠ 高收益。要同时看盈亏比 |
| 换手率 | 太高意味着成本被放大 |
一个年化 18%、最大回撤 55% 的策略,和一个年化 12%、最大回撤 12% 的策略,不能简单用收益率来判断高下。对大多数人来说,真正决定能不能长期拿住的,是亏损过程的可承受性。
成熟的报告应该包含:分年度表现、月度收益分布、回撤区间、持仓变化、交易摘要、参数说明、成本假设和失败阶段分析。
九、风控不是附属品,而是系统的一部分
很多人把风控理解成「出问题了就止损」。这太窄了。
风控不是补丁,它应该从策略设计的第一天就存在。
四层风控
第一层:仓位管理
同一策略,10% 仓位和满仓,体验完全不同。仓位管理的本质不是让收益变低,而是让你有资格活到下一次机会。
第二层:分散和暴露管理
几个看似不同的 ETF 可能高度相关。分散不是数量越多越好,而是暴露结构是否真正不同。
第三层:规则内的退出机制
什么时候减仓、空仓、停止交易、认定策略失效,都应该提前定义好。退出机制不该靠情绪临时决定。
第四层:操作和工程层面
数据更新失败怎么办?接口异常怎么办?回测结果和昨天不一致怎么办?对个人开发者来说,工程失误造成的损失可能比市场波动更大。
风控不是悲观主义,而是对复杂世界保持清醒的方式。
十、把量化当技术项目来做
如果你把量化只当成几个公式,会很快碰到天花板。真正让量化变成可持续能力的,是工程化。
项目结构
建议把量化项目组织成清晰的模块:
1 | ├── data/ # 数据采集和清洗 |
不要把所有逻辑塞进一个 Notebook。量化项目一旦没有边界,每加一个需求都会把原来的东西拖垮。
可复现性
今天跑出来的结果,下周还能复现吗?
成熟的项目一定重视:
- 配置文件
- 数据版本
- 日志输出
- 随机种子
- 结果归档
研究和执行分离
最好的第一阶段不是自动下单,而是:
1 | 每天定时更新数据 → 计算信号 → 生成报告 → 输出候选动作 → 人工确认 |
这样既保留了系统化,又保留了最后一道人工风控。
测试
策略代码不是能跑就行,还要能被验证。均线计算、交易日对齐、仓位更新、手续费扣除、回撤计算——这些都是可以(也应该)写测试的。
量化里最可怕的错误,不是程序崩溃,而是程序看起来正常,却在悄悄给你错误结论。
十一、一个适合个人开发者的 90 天入门路径
第一个月:跑通最简单的单策略回测
- 选一两只宽基 ETF
- 建立本地数据缓存
- 写一个双均线策略
- 跑出净值曲线、收益、最大回撤、交易记录
目标:逻辑清楚,结果可重复,能解释每笔交易为什么发生。
第二个月:升级到可比较的小平台
- 加入 ETF 轮动策略
- 增加参数配置文件
- 加入样本内外拆分、交易成本和滑点
- 生成 Markdown 或 HTML 报告
到这一步,你已经不是在「试着写个策略」,而是在做一个研究工具了。
第三个月:验证而非炫技
- Walk-forward 验证
- 参数敏感性分析
- 切换不同 ETF 池子测试
- 每天自动生成次日候选持仓
关键不是系统越来越复杂,而是复杂一点之后还能保持清晰和可解释。
三个月之后,你可能还没赚到大钱。但你会拥有一套可持续迭代的金融实验系统——这个系统本身就是你最大的收获。
十二、为什么很多回测很好看,实盘却很难受
这个问题几乎每个做量化的人都会遇到。
原因一:回测知道结局,实盘不知道。 回测里你看到完整的净值曲线,知道哪次下跌只是暂时的。实盘里未来是黑的,连续亏损三周时你不知道这是正常波动还是策略失效。
原因二:实盘比回测多了大量摩擦。 忘记更新数据、手动确认时犹豫、实际成交和假设不一致、流动性不足、节假日和系统异常。单笔看不大,长期叠加会显著改变结果。
原因三:回测时会不自觉地挑自己喜欢的结果。 不好看的参数、不好看的时段被无意识筛掉。实盘亏钱时,不是市场不讲理,而是你研究时就已经偏向了自己想看的答案。
成熟的量化,不是回测有多漂亮,而是回测和实盘之间的落差有多小。
十三、几个高频问题的真回答
零基础能学量化吗?
能。需要一组基础能力:一点 Python,一点数据处理,一点统计常识,一点交易规则理解,再加长期做项目的耐心。真正难的不是第一段代码,而是把杂乱知识拼成稳定系统。
必须先学高级数学和机器学习?
不必。入门阶段最重要的是把简单规则做正确。先学会定义问题、清洗数据、做回测、看报告、控风险。
资金小有必要做量化吗?
有。入门阶段最大的产出是方法,不是收益。小资金反而适合做实验。
要不要一开始就全自动下单?
通常不必。A 股程序化交易有明确规则和报告要求。先做研究、回测、信号输出、人工确认,就是完整闭环。
神策略能直接抄吗?
可以研究,但先问四个问题:数据口径?执行假设?成本计算?样本外成立吗?
回测不够漂亮就没价值?
不一定。真实可用的策略往往只是「逻辑清楚、回撤可控、样本外没崩」。平庸但稳定,比惊艳但脆弱更有价值。
什么时候算真正入门?
当你能完整回答这些问题的时候:
- 系统为什么可能有效?
- 依赖什么前提?
- 最可能在哪里失效?
- 成本和摩擦是什么?
- 风险边界在哪里?
- 失效时你怎么处理?
能回答这些,才说明你开始从「写代码的人」变成「做系统的人」。
结语
量化炒股听起来像金融技术。做久了你会发现,它训练的首先是一种思维方式:
- 把模糊直觉翻译成清楚规则
- 把想象中的优势放进严格验证
- 把历史里的漂亮结果放进现实摩擦里重新审视
- 把「我可能是对的」换成「我怎样证明自己不是在骗自己」
它不是圣杯,不会消灭亏损和焦虑。它甚至比主观交易更残酷——它会把你的错误一条条暴露出来。
但也正因如此,量化才值得学。它会逼你把交易从情绪反应变成系统工程,从运气驱动变成流程驱动。
真正的量化入门,是开始愿意承认:市场很复杂,自己会犯错,任何优势都必须经过检验,任何收益都要付出风险代价,任何系统都需要维护。
到了那一步,你写的就不再只是买卖程序,而是一套帮助自己在不确定世界里做出更稳定决策的工具。
(完)