这篇讲什么
陈博士是华尔街从业三十年的量化老兵。这本书把算法交易从策略设计、回测、执行到风控的全流程讲透——给真心想动手的量化进阶者。
二零零八年,金融危机最惨烈的几个月,全球股市哀鸿遍野。但某些交易室里,有人面色平静地坐在屏幕前——他们的程序每隔几秒自动发出指令,涨跌都不影响它的节奏。这个画面,很多人觉得离自己很远。要么以为是天才专属,要么以为要有千万资金才玩得起。但陈耀荣在这本书里说的第一件事就是:算法交易不是魔法,是一套可以学、可以搭、可以一步步优化的系统。真正让人意外的是,他告诉你:有效策略的起点,往往不是数学公式,而是你对市场的某个直觉观察。那个「感觉某只股票财报前总会异动」的念头,其实就是策略灵感的雏形。量化做的事,是把这个念头变得可验证、可重复。从想法到代码,从回测到实盘,中间有哪些坑会让你在账面上赚钱、在现实里亏钱——这本书把这条路上的每一个关键节点都摊开来讲清楚了。
谁该读这一篇
- 看懂回测结果为何会骗人,避开幸存者偏差和脏数据的陷阱
- 理解一笔交易信号如何变成真实订单,拆单与执行细节如何影响最终收益
- 拿到从策略设计到风控上线的完整框架,建立属于自己的量化思维底层
试听第一章音频解读
精读全文
第 1 章 · 策略设计:从想法到代码
你有没有想过,一个让你赚钱的交易想法,从脑子里蹦出来,到真正在市场上自动执行——中间到底要经历什么?今天我们就从最开始的地方说起:一个策略,是怎么从一个念头,变成一行行代码的。
想象一个场景。
二零零八年,金融危机最惨烈的那几个月。全球股市一片哀嚎,无数投资者在恐慌中割肉。但在某些交易室里,有一群人坐在屏幕前,面色平静。他们的程序在自动运行,每隔几秒钟就发出一笔交易指令。涨也好,跌也好,程序不恐慌,不贪婪,只是冷静地执行它被设计好的逻辑。
这就是算法交易。
不是魔法。不是天才专属。是一套可以学习、可以搭建、可以优化的系统。
---
**先说这本书要讲什么。**
陈耀荣写的这本《算法交易》,是一本非常务实的书。它不讲玄学,不讲"感觉",讲的是:你怎么把一个交易想法,变成一套真正能跑起来的系统。
我们会分四章来读。
第一章,也就是今天,我们从最源头开始——策略是怎么来的,数据要怎么准备,用 Python 搭建框架是什么意思。这是地基。
第二章,我们聊回测的陷阱。很多人做了回测,觉得策略很美,结果一上实盘就崩了。为什么?问题出在哪里?
第三章,我们进入执行系统。有了信号,怎么变成真实的订单?市价单、限价单、拆单策略,这些细节决定你最终到手的收益。
第四章,我们落脚到风控和上线。一套策略,怎么安全地推进实盘?怎么防止一笔意外交易毁掉整个账户?
四章读完,你会对算法交易有一个完整的轮廓。
好,现在进入今天的主题。
---
**策略从哪里来?**
很多人以为,算法交易的策略是数学家在黑板上推导出来的。
错了。
陈耀荣在书中有一个核心观点:大多数有效的策略灵感,来自于对市场现象的直觉观察,而不是纯粹的数学推导。
停一下,想想这句话。
你有没有注意到,某只股票在每个季度财报发布前,价格会有规律地波动?你有没有发现,某类资产在特定时间段,成交量会突然放大?这些"注意到",就是策略灵感的起点。
量化交易的本质,不是用数学替代思考。而是用数学,把你的思考变得可以验证、可以重复、可以扩展。
策略灵感的来源,大概有这几类。
**第一类:学术研究。**
比如"动量效应"——过去一段时间涨得好的股票,未来短期内往往还会继续涨。这个现象在学术文献里被反复验证过。你可以把它拿来,变成自己的策略框架。
**第二类:市场微观结构。**
订单怎么撮合?大单拆分会怎么影响价格?做市商是怎么行动的?这些细节,藏着很多可以被利用的规律。
**第三类:跨市场关联。**
A 市场涨,B 市场有没有可能滞后跟涨?期货和现货之间,有没有价差可以捕捉?
**第四类:宏观与季节性规律。**
"一月效应"你听说过吗?很多市场在每年一月份,有统计上显著的异常收益。背后是机构年底调仓、税收结算等因素共同驱动的。
但是——
有想法,只是第一步。
---
**数据,才是真正的战场。**
你想验证一个想法,你需要数据。
但数据这件事,远比大多数人想象的复杂。
陈耀荣在书中写道:脏数据是量化策略失败的最常见原因之一,很多人在回测里看到的"盈利",其实是在对错误数据的过度拟合。
这句话,值得反复听。
什么是脏数据?
举个例子。你下载了一份历史股价数据,里面有一天的价格是零。或者,有一天的收盘价比开盘价高了百分之五十,但实际上那天没有任何重大事件。这种数据,就是脏的。
如果你拿这份数据做回测,你的策略会"学到"一个从来不存在的规律。然后你信心满满地上实盘,然后亏钱。
**历史数据采集,要注意什么?**
第一,来源要可靠。
不同数据提供商,对同一段历史的记录可能不一样。价格复权的方式不同,结果会差很多。你要知道你用的是前复权还是后复权,这两种处理方式对策略的影响是不同的。
第二,要处理"幸存者偏差"。
这是一个特别容易被忽视的陷阱。你现在能查到的股票列表,都是"活下来的"公司。那些已经退市的、破产的公司,数据里没有。如果你只用现存股票的历史数据做回测,你的策略会系统性地高估收益。
想想看——
你在过去二十年里,只研究那些"活到今天"的公司,你当然会发现它们大多数都在上涨。但那些中途消失的公司呢?它们的亏损,不在你的数据里。
这就是幸存者偏差。
第三,时间戳要对齐。
不同市场、不同资产,数据的时间戳可能有偏差。如果你在做跨资产策略,时间对齐是基础中的基础。一秒钟的偏差,在高频策略里可能就是生死之别。
**什么叫"干净数据集"?**
陈耀荣给出的标准很清晰:
一,没有缺失值,或者缺失值已经被合理处理。
二,没有异常值,或者异常值已经被识别和标记。
三,价格已经正确复权,反映真实的历史收益。
四,数据的时间范围和频率,和你的策略逻辑是匹配的。
这四条,缺一不可。
---
**Python,为什么是首选?**
现在聊聊工具。
为什么量化交易圈子里,Python 几乎成了标准语言?
不是因为它最快。C++ 比 Python 快得多。
是因为它最"省力气"。
Python 有大量现成的库。处理数据,有 Pandas;做数学计算,有 NumPy;画图分析,有 Matplotlib;做机器学习,有 Scikit-learn。你不需要从零开始写每一个功能,你只需要把这些积木拼起来。
对于个人投资者和中小型量化团队来说,开发速度比执行速度更重要。策略想法变成可测试的代码,Python 是最快的路径。
**一个 Python 策略框架,基本长什么样?**
陈耀荣在书中描述了一个基础框架,大概分这几个模块。
**第一个模块:数据获取层。**
负责从外部拉取历史数据,存储到本地。这一层要做好容错处理——网络断了怎么办?数据源返回错误怎么办?
**第二个模块:信号生成层。**
这是策略的"大脑"。你在这里写你的逻辑:什么条件下买,什么条件下卖。比如,五日均线上穿二十日均线,发出买入信号。
**第三个模块:回测引擎。**
把信号放到历史数据上跑,模拟交易,计算收益、最大回撤、夏普比率等指标。这是验证策略的核心工具。
**第四个模块:执行接口。**
连接经纪商或交易所的 API,把信号变成真实订单。这一层在实盘阶段才会用到。
**第五个模块:风控模块。**
设置仓位上限、止损条件、异常检测。这是保护你账户的最后一道防线。
这五个模块,构成了一个完整算法交易系统的骨架。
---
**一个当下的映射案例。**
说到这里,我想聊一个很多人现在都在做的事情——用 A 股的量价数据,搭建简单的趋势跟踪策略。
逻辑很朴素:价格突破近期高点,成交量同步放大,买入;价格跌破近期低点,卖出。
听起来简单。
但实际操作里,数据准备这一关就能卡死很多人。
A 股有涨跌停板制度。某一天,一只股票涨停,次日开盘直接跌停。这种极端情况,在数据里怎么处理?直接用原始价格,还是做平滑处理?
还有,A 股有大量的停牌记录。停牌期间没有成交,复牌后价格可能跳空。这段数据,要不要纳入回测?
这些问题,不是算法问题,是数据问题。
处理不好数据,你的策略在回测里可能表现得很好,但它实际上是在对历史的"噪音"过拟合,而不是在捕捉真实的市场规律。
这就是为什么,陈耀荣把数据准备放在策略设计的最前面。
地基不稳,楼盖得越高,倒得越惨。
---
**今天的内容,做一个小结。**
策略从观察和直觉出发,但要用数学和代码来验证。
数据是一切的基础,脏数据会让你在虚假的"盈利"里沾沾自喜。
Python 给了我们一个高效的框架,让想法可以快速变成可测试的系统。
但是——
有了策略,有了数据,有了代码,你是不是就可以放心地去回测了?
等等。
回测,真的是你以为的那么简单吗?
为什么那么多人,回测结果漂亮得像梦,一上实盘就全崩了?
问题出在哪里?是数据出了问题,还是测试方法本身就有根本性的缺陷?
下一章,我们专门来拆解这个问题——回测的陷阱,到底藏在哪里?
第 2 章 · 回测的陷阱:为什么很多人被骗
你花了三个月,写出一套回测收益率高达两百percent的策略。兴奋、激动、准备梭哈。
但等等。
这个数字,是真实的财富,还是你亲手给自己设的一个局?
上一章我们讲了算法策略从零到一的搭建过程——怎么找灵感、怎么清洗数据、怎么用 Python 把一个交易想法变成可以运行的代码。核心是:干净的数据加上清晰的逻辑,才是策略的地基。今天我们来看第二章,也是很多人踩坑最深的地方:**回测的陷阱。**
---
先说一个真实的历史场景。
时间回到二零零五年前后。
美国量化对冲基金行业正在爆发式增长。大量顶尖数学家、物理学家涌入华尔街,带着他们的模型和回测报告。那时候有一种说法,叫"因子淘金热"。
谁挖到了新因子,谁就能跑赢市场。
于是,各家基金开始疯狂地在历史数据里"挖矿"——测这个变量,测那个变量,测完一批再测一批。有人发现,某个星期三的月亮相位和次日股价涨跌有统计相关性。有人发现,某类公司名字里字母数量少的,历史回测收益更高。
听起来荒唐吗?
但他们的回测报告,数字漂亮得让人心跳加速。
然后,这些策略上线了。
结果呢?
**亏了。**
不是小亏。是系统性地、大规模地亏。
为什么?
因为他们掉进了回测最深的那个坑——
**数据窥探。**
---
陈耀荣在书中写道,数据窥探(Data Snooping)是量化策略中最隐蔽的致命错误。它的本质是:你用同一批历史数据,反复测试了几十个、几百个策略,然后挑出那个"表现最好"的,宣布它有效。
停。
想一想这个逻辑。
你拿一枚硬币,抛了一百次,记录结果。然后你"发现":每次抛硬币前喝了咖啡的那几次,正面朝上的概率更高。
这是规律吗?
不是。
这是**噪音被当成信号。**
历史数据是有限的。你测试的策略越多,你从这批数据里"挖"出来的所谓规律,就越有可能是纯粹的随机巧合。这就是数据窥探的本质——你不是在发现市场的逻辑,你是在给自己的数据集量身定制了一套衣服。
这套衣服,只适合这批数据。
放到真实市场里?
**撑不过三个月。**
---
与数据窥探紧密相连的,是另一个词:
**过拟合。**
Overfitting。
陈耀荣的核心观点是:一个在历史数据上表现完美的模型,往往是过拟合的受害者。参数越多、规则越复杂,模型就越能"记住"历史,但也越没有能力"预测"未来。
打个比方。
你在准备一场考试。你把去年的真题做了一百遍,每道题的答案都背得滚瓜烂熟。
结果今年出了新题型。
你懵了。
过拟合的策略就是这样。它在历史数据上的"考试"成绩满分。但市场每天都在出新题。
那些参数调得过于精细的策略——比如"当五日均线上穿二十一日均线,且 RSI 介于四十三到五十七之间,且当天成交量比昨天多百分之十二点七……"
这种策略,可能在历史数据里表现绝佳。
但你要问:为什么是二十一日,不是二十日?为什么是百分之十二点七,不是百分之十二?
**答不上来。**
答不上来的参数,就是过拟合的证据。
---
说到这里,我们要引入一个极其重要的概念区分:
**样本内(In-Sample)**
**样本外(Out-of-Sample)**
这是回测里最核心的边界线。
样本内,就是你用来"训练"策略、调整参数的那段历史数据。样本外,是你用来"检验"策略真实表现的另一段数据。
很多人的回测流程是这样的:
拿到十年历史数据。在这十年数据上调参、优化、再调参。最终找到一套"完美"参数。宣布策略有效。
问题在哪?
他们用来"检验"的数据,和用来"训练"的数据,是**同一批**。
这就好比你出了一道数学题,自己做完,然后自己改卷,给自己打了满分。
**这不叫验证。这叫自欺欺人。**
正确的做法是:把数据严格切分。前七成用来训练,后三成封存起来,等策略定型之后,才拿出来做一次性检验。
而且,这个样本外检验,只能用**一次**。
用了第二次,它就又变成了样本内数据。
---
但即使你做到了样本内外分离,还有一个更深的陷阱在等着你。
**滑点假设。**
陈耀荣在书中专门强调这个问题,因为它是最容易被新手忽略、也是最能直接毁掉一个策略的细节。
什么是滑点?
你在回测里下了一笔买单,价格是一百元。但在真实市场里,你的订单发出去的时候,市场已经动了,成交价可能是一百零一元,或者一百零二元。这个差价,就是滑点。
听起来很小?
一笔交易差两元,好像无所谓。
但算法交易的本质是**高频次**。
一天下单五十次。每次滑点两元。一天就是一百元的额外成本。一年交易两百五十天,就是两万五千元。
这个数字,足以把很多策略的利润**彻底吃掉**。
更危险的是那些依赖"精确到分钟"的高频策略。在回测里,你假设每笔交易都以当前报价成交。但现实中,你的订单本身就会影响价格,尤其是在流动性差的市场里。
**你以为你在测试一个策略,实际上你在测试一个不存在的市场。**
---
那么,有没有一种回测方法,能够更接近真实?
有。
它叫做:
**Walk-Forward 测试。**
滚动前推测试。
这是陈耀荣在书中重点介绍的方法,也是专业量化机构的标准流程。
它的逻辑是这样的:
把整段历史数据切成很多小段。第一段用来训练,紧接着的一小段用来检验。然后向前滚动一格,第二段用来训练,再接着的一小段用来检验。如此循环,直到数据用完。
这样,每一次检验用的都是"未见过"的数据。你得到的不是一个单一的回测结果,而是一系列在不同时间段、不同市场环境下的真实表现。
如果策略在大部分时间段都表现稳健,说明它可能捕捉到了真实的市场规律。如果只在某几段特别好,其他时段一塌糊涂,那很可能——
**你的策略只是碰巧适配了那几段特殊的历史。**
Walk-Forward 测试不能完全消除回测的陷阱,但它让你看到的图景,比单次回测真实得多。
---
说到这里,我想讲一个当下的案例。
近几年,随着人工智能的普及,有一类"AI 选股策略"在各种社区和平台上广泛流传。它们的共同特点是:回测收益惊人,夏普比率漂亮,最大回撤极小。
发布者往往会附上一张图,显示从某年到某年,净值曲线几乎是一条完美的斜线向上。
但如果你仔细问他们:
这个策略是在什么时间段训练的?
样本外验证做了吗?
滑点和交易成本是怎么假设的?
Walk-Forward 测试通过了吗?
绝大多数情况下,你会得到沉默,或者一句"这个不重要,你看收益就好了"。
**这就是数据窥探和过拟合的现代版本。**
工具换了,陷阱没变。
---
最后,我想说一件更根本的事。
回测的陷阱,不只是技术问题。它是一个**心理问题**。
人类天生讨厌不确定性。我们喜欢看到漂亮的数字,喜欢相信自己找到了规律,喜欢把过去的成功当成未来的保证。
回测给了我们一种"掌控感"的幻觉。
数字越好看,幻觉越深。
但市场不是历史数据的重播。它每天都在变化,每天都有新的参与者、新的信息、新的规则。
一个诚实的量化交易者,应该把回测看作什么?
**不是答案。是起点。**
是用来筛掉明显错误想法的工具,而不是用来"证明"自己聪明的证书。
---
好,我们停一下,整理一下今天的核心内容。
数据窥探——用同一批数据反复挖规律,噪音被当成信号。
过拟合——参数越精细,策略越"记住"历史,越无法适应未来。
样本内外分离——训练用的数据和检验用的数据必须严格隔离。
滑点假设——忽视交易成本,回测收益是假的。
Walk-Forward 测试——滚动验证,让策略在不同时间段接受考验。
这五个概念,是每一个量化交易者必须刻进脑子里的东西。
---
但是,等等。
就算你的策略通过了所有这些检验,回测结果真的可信了——
然后呢?
你怎么把这个策略,真正地执行到市场里?
一个信号发出来,你是用市价单还是限价单?
你的大额订单,怎么拆分才不会把自己的成本推高?
经纪商的接口,又藏着哪些你不知道的坑?
**下一章,我们来聊聊算法交易里最容易被忽视的战场:执行系统。**
第 3 章 · 执行系统:从信号到订单
你有没有想过——策略再完美,如果下单的那一刻出了问题,一切都白费?回测赚钱,实盘亏钱,很多时候不是策略错了,是执行系统出了问题。今天我们来拆开这个黑盒子。
上一章我们讲了回测的陷阱。
核心是什么?
过拟合、数据窥探、样本外测试——这些坑,让无数人在历史数据上赚得盆满钵满,真金白银下场却输得一塌糊涂。我们说,回测只是入场券,不是通关证。
今天,我们来看第三章。
假设你已经躲过了那些陷阱。你的策略通过了严格的样本外测试,逻辑清晰,数据干净。
然后呢?
然后你要把信号,变成真实的订单。
这一步,听起来简单。
错了。
---
先说一个场景。
时间回到二零一零年五月六日。
美国股市开盘后一切正常。下午两点四十五分左右,道琼斯工业指数开始异常波动。
然后——
崩了。
短短几分钟之内,道指暴跌将近一千点。
一千点。
这不是几天的跌幅,这是几分钟之内发生的事。
后来这个事件被称为"闪崩",英文叫 Flash Crash。
调查结果显示,触发因素之一,是一个大型机构的算法执行系统,在市场流动性已经开始枯竭的情况下,仍然按照预设逻辑持续大量卖出。
它不是在做坏事。它只是在执行命令。
但执行方式,错了。
这就是执行系统的力量——它可以让一个好策略落地,也可以让整个市场在几分钟内失控。
---
好,我们从头说起。
信号产生之后,第一个问题是:
用什么类型的订单?
陈耀荣在书中写道,最基础的选择,是市价单和限价单的取舍。
市价单,就是"我要现在买,不管价格"。
限价单,就是"我要以这个价格买,不成交就算了"。
听起来很简单对不对?
但背后的逻辑,完全不同。
市价单的优点是确定性——你一定能成交。缺点是,你不知道会以什么价格成交。市场波动剧烈的时候,你以为你在买十块钱,实际成交可能是十块二,甚至十块五。
这个差距,叫做滑点。
滑点。
在回测里,很多人默认滑点为零。
在真实市场里,滑点是实实在在的成本。
限价单反过来。你锁定了价格,但你不能保证成交。市场如果根本没有到你的价格,你的单子就挂在那里,什么都没发生。
对于算法交易来说,这个选择不是非此即彼的。
陈耀荣的核心观点是:执行策略的选择,必须和你的交易频率、持仓时间、以及市场的流动性状况匹配。
高频策略,对速度要求极高,往往倾向于市价单,因为错过机会的成本比滑点更大。
低频策略,对价格更敏感,更多使用限价单,宁愿等,不愿意被市场拖着走。
---
但是,真正的难题,不是选哪一种订单。
真正的难题,是:
你怎么下?
想象一下,你的策略给出了一个信号:买入某只股票,仓位是两百万元。
你直接一笔下进去?
停。
想清楚这件事。
两百万元的买单,打进市场,会发生什么?
如果这只股票每天的成交量是一千万元,你一笔两百万,直接占了市场当天成交量的百分之二十。
百分之二十。
你猜市场会怎么反应?
价格会被你自己推上去。
你买的越多,价格越高。等你买完,你的平均成交价,已经远高于你信号触发时的价格。
这叫做市场冲击成本。
这个成本,在回测里几乎不存在。
在实盘里,它可以把你的策略收益吃掉一大半。
---
所以,拆单策略出现了。
核心思路很朴素:不要一次性把订单全部打进市场,把它拆开,分批执行。
但怎么拆?
这里就要说到两个最经典的算法:
TWAP,和 VWAP。
TWAP,全称是时间加权平均价格算法。
逻辑是:把你的总订单,按照时间均匀切分。比如你要在一个小时内买完,就每隔五分钟买十分之一。
简单,粗暴,有效。
但它有个问题。
市场不是均匀的。
上午九点半开盘,成交量可能很大。下午两点,成交量可能很小。你如果每五分钟都买一样多,在成交量小的时候,你的冲击成本反而更高。
于是,VWAP 出现了。
VWAP,全称是成交量加权平均价格算法。
它的逻辑是:市场成交量大的时候,我多买一点;成交量小的时候,我少买一点。跟着市场的节奏走,尽量让自己的成交价接近市场的平均价格。
陈耀荣在书中写道,VWAP 是机构交易员最常用的基准之一。评估一个执行算法好不好,很多时候就是看你的成交价,有没有跑赢 VWAP。
跑赢了,说明你的执行算法减少了冲击成本。
跑输了,说明你的执行方式,让你多付了钱。
---
现在我们来看一个当下的映射案例。
二零二三年,A 股市场上有一类被称为"量化砸盘"的现象引发热议。
部分量化机构在市场流动性不足的时段,集中执行大额卖出订单,导致个股短时间内出现异常下跌。
普通投资者看到的,是莫名其妙的暴跌。
但背后,是执行系统没有充分考虑市场冲击成本的结果。
这不是策略本身的问题。
这是执行层面的问题。
一个好的拆单算法,应该感知到流动性在变差,然后自动放慢执行节奏,甚至暂停,等待市场恢复。
一个粗糙的执行系统,只管把订单打完,不管市场死活。
两者的区别,有时候不只是成本的差异,而是会不会引发连锁反应的差异。
---
好,订单下出去了。
然后呢?
然后你要知道:成交了没有?
这就是成交回报的问题。
听起来像废话——下单之后当然要知道成不成交。
但在算法交易系统里,这件事的复杂程度,远超你的想象。
你的一笔订单,可能被拆成几十笔甚至几百笔小单,分散在不同的时间点成交。
每一笔成交,都会有一个回报:成交价格、成交数量、成交时间。
你的系统需要把这些回报,一笔一笔地收集、汇总,然后更新你的持仓状态。
如果回报处理慢了,或者漏掉了某一笔,你的系统就会对自己的真实持仓产生误判。
误判持仓,然后发出新的信号,然后下新的单。
你猜会发生什么?
对,可能会重复买入,或者在已经卖完的情况下继续发出卖出信号。
这种错误,在测试环境里几乎不会出现。
在实盘里,它可以在几分钟内造成严重损失。
---
最后,我们来说经纪商对接。
这是执行系统里最"工程"的一个环节,但也是最容易被忽视的一个环节。
你的算法,需要通过某种接口,把订单发送给经纪商,经纪商再把订单送到交易所。
这个接口,叫做 API。
不同的经纪商,API 的规范不一样。有些用的是 FIX 协议,有些有自己的私有接口。
陈耀荣在书中强调,经纪商对接不只是技术问题,还是风险问题。
你需要测试:
网络延迟有多高?
断线重连之后,订单状态会不会丢失?
经纪商的系统崩溃了,你的算法会怎么反应?
这些问题,在你真正上线之前,必须一一验证。
因为市场不会等你。
网络断了,市场还在跑。
经纪商宕机了,你的持仓还在那里。
一个健壮的执行系统,必须能够处理这些异常情况,而不是在异常发生的时候,直接失控。
---
我们来做一个小结。
从信号到订单,这条路上有三道关:
第一道,选对订单类型。市价单还是限价单,取决于你的策略特性和市场流动性。
第二道,用对执行算法。TWAP 和 VWAP,不是装饰品,是减少冲击成本的真实工具。
第三道,做好系统健壮性。成交回报要准确,经纪商对接要稳定,异常情况要有预案。
策略是大脑。
执行系统是手脚。
大脑再聪明,手脚不听使唤,也是白搭。
---
但是,执行系统做好了,就万事大吉了吗?
还差一步。
最后一步,也是最关键的一步——
如果市场突然极端波动,你的仓位会不会失控?如果系统出了故障,你有没有应急预案?实盘上线,你敢一上来就全仓压注吗?
下一章,我们来看这本书最后也是最重要的部分:
风控与上线。
一笔错误的交易,到底能有多大的破坏力?
第 4 章 · 风控与上线:不要让一笔交易毁掉一切
你的策略设计好了,回测通过了,订单也能发出去了。
万事俱备。
然后——系统崩了。或者一笔单子方向搞反了。或者行情突然暴动,仓位直接爆掉。
你有没有想过:真正毁掉一个算法交易者的,往往不是策略,而是那个他以为"不会发生"的意外?
上一章我们讲了执行系统。
核心是什么?信号不等于订单。从策略发出信号,到真实成交,中间隔着滑点、流动性、算法拆单、经纪商接口——每一环都可能吃掉你的利润。我们说,执行是策略的最后一公里,走不好,前面全白费。
今天,我们来收尾。
第四章,也是这本书最后一章——
风控与上线。
---
先说一个真实的灾难。
二零一零年五月六日,美国股市。
下午两点四十五分,道琼斯指数在几分钟内暴跌将近一千点。
一千点。
然后又在几分钟内反弹回来。
这就是历史上著名的"闪崩"事件。
后来调查发现,导火索是一个自动化交易程序,在极短时间内疯狂卖出大量期货合约,触发了连锁反应。其他算法程序感应到异常流动性,纷纷撤单、跟随卖出——整个市场陷入了一场算法之间的踩踏。
你猜这场踩踏里,损失最惨的是谁?
不是那些大机构。
是那些没有风控的小账户。
那些程序一路跌停买入、或者一路涨停卖出,完全没有任何保护机制的账户。
等人类反应过来手动干预,钱已经没了。
---
陈耀荣在书中写道,风控不是策略的附属品,而是策略的生命线。
这句话,我想让你记住。
很多人做算法交易,把百分之九十的精力放在策略研究上,把风控当成最后一个"有空再加"的模块。
停。
这个顺序,是反的。
应该是:先有风控框架,再有策略上线。
---
**第一关:仓位上限**
什么是仓位上限?
简单说,就是你的系统在任何时候,单笔、单品种、单方向,最多能用多少资金。
听起来很基础。
但你知道多少人在这里翻车吗?
场景是这样的:你的策略在某个品种上连续发出买入信号。逻辑很清晰,信号很强。系统一路加仓。
然后行情反转。
没有仓位上限的系统,会一直加、一直加,直到账户爆掉。
陈耀荣的核心观点是:仓位上限不是保守,是生存。
他在书中给出了一个思路——把账户资金分成三层:
第一层,单笔交易上限。每一笔单子最多动用账户的百分之几。
第二层,单品种总敞口上限。对同一个标的,不管开了多少笔,总仓位不能超过某个比例。
第三层,全账户风险敞口上限。所有持仓加起来,账户承受的最大潜在亏损,不能超过一个阈值。
三层保护,层层设防。
任何一层触发,系统自动停止加仓,甚至开始减仓。
这不是在限制你赚钱。
这是在保证你明天还能继续玩。
---
**第二关:止损止盈系统**
止损,很多人都知道要做。
但止盈呢?
这里有一个认知误区——很多人觉得止盈是"保守",是"提前锁定利润,错过更大的行情"。
错了。
止盈的本质,是保护你的策略不被极端行情破坏。
想象一个场景:你的策略是做短线均值回归。某天市场出现单边暴涨,你的策略判断"涨太多了,要回调",于是做空。
结果没有回调,继续涨。
没有止损,你扛着。
继续涨。
还在扛。
然后爆仓。
止损的存在,就是给每一笔交易一个"最大容忍边界"。超过这条线,不管你的逻辑多完美,先出去,保住子弹,再说。
陈耀荣在书中特别强调:止损不是承认失败,是承认不确定性。
这一句话,值得反复听。
市场永远有你不知道的信息。你的模型永远是对现实的简化。止损,是你对这个事实最诚实的回应。
---
**第三关:故障应急**
这一关,是业余选手和机构选手差距最大的地方。
什么叫故障应急?
就是:当你的系统出问题的时候,你有没有一套预案?
系统崩溃了,怎么办?
网络断了,怎么办?
经纪商接口超时,订单不知道有没有成交,怎么办?
行情数据出错,策略基于错误数据发出了一堆乱单,怎么办?
这些场景,听起来很极端。
但它们都发生过。
二零一二年,美国骑士资本集团。
一次软件部署失误,导致系统在四十五分钟内自动发出了数百万笔错误订单。
四十五分钟。
损失:四亿四千万美元。
四亿四千万。
公司直接濒临破产,最终被收购。
陈耀荣在书中写道,每一个算法交易系统上线之前,必须有一份"紧急预案清单"。
这份清单要包括:
第一,如何在三十秒内手动停止所有自动交易;
第二,如何快速查看当前所有持仓状态;
第三,如何在系统失联的情况下,通过其他方式平仓;
第四,出现异常订单时,第一时间联系经纪商的流程。
这不是杞人忧天。
这是职业素养。
---
**第四关:实盘渐进上线**
好,假设你的风控框架搭好了。
可以上线了吗?
不。
还有一步:渐进上线。
什么叫渐进上线?
就是不要第一天就把全部资金交给系统。
陈耀荣给出的建议是一个"阶梯式"路径:
第一阶段,模拟盘跑满三十天,观察系统在实盘行情下的表现,和回测有没有明显偏差。
第二阶段,用百分之十的资金上实盘,跑两周。
第三阶段,如果表现正常,扩大到百分之三十,再跑一个月。
第四阶段,逐步提升到目标仓位。
为什么要这么慢?
因为回测和实盘之间,永远有你没预料到的差异。
滑点比你想的大。
某些品种流动性比你想的差。
你的系统在某些市场状态下,行为和预期完全不同。
这些问题,你必须用小仓位去暴露,而不是用全仓去发现。
发现得越早,代价越小。
---
**业余 vs 机构:差距在哪里?**
说到这里,我们来直接对比一下。
业余算法交易者,通常是这样的:
花大量时间调参,追求最高的回测收益率。
风控是事后加的,或者根本没有。
系统第一天就全仓上线。
出了问题,手忙脚乱。
机构是这样的:
策略研究和风控框架同步开发。
上线之前,有专门的压力测试,模拟极端行情下的系统表现。
实盘上线有严格的审批流程。
有专门的风控团队,独立于策略团队,全天监控系统运行状态。
差距在哪里?
不是聪明程度。
不是策略水平。
是对"失控"的敬畏。
机构知道,市场随时可能出现你没见过的情况。他们的全部努力,就是在那个情况出现的时候,损失可控,系统可以继续运行。
业余选手觉得,只要策略够好,就不会有那个情况。
然后那个情况出现了。
---
**当下的映射**
今天,个人量化交易的门槛越来越低。
Python 开源库、免费的历史数据、低佣金的券商接口——这些工具,让普通人也能搭出一个像模像样的算法交易系统。
但工具的普及,不代表风险的降低。
恰恰相反。
越容易上手,越多人跳过了那些"麻烦"的步骤——风控框架、故障预案、渐进上线。
结果就是:更多的人,用更低的门槛,在更短的时间内,把钱亏光了。
陈耀荣在书中说的一句话,我觉得是整本书最重要的提醒:
算法交易系统的目标,不是最大化收益,而是在可控风险下,持续稳定地运行。
持续。
稳定。
可控。
这三个词,才是终点。
---
**整书收束**
回头看这本书,我们走了一条完整的路。
第一章,我们从零开始——如何把一个模糊的交易想法,变成干净的数据和可运行的代码。
第二章,我们踩进了回测的陷阱——过拟合、数据窥探、样本外测试,告诉我们历史数据上的胜利,不等于真实市场的胜利。
第三章,我们打通了执行系统——信号到订单,不是一步,是一条充满摩擦的链条。
第四章,我们在终点站停下来,谈风控——因为所有的努力,都可能被一次没有保护的失控清零。
陈耀荣真正想告诉我们的,其实是一件事:
算法交易不是找到一个"必胜公式",然后躺着数钱。
它是一套严肃的工程——设计、验证、执行、保护,缺一不可。
市场不会因为你的代码写得漂亮就手下留情。
但如果你把每一关都认真对待,它也不会轻易把你淘汰出局。
策略是入场券,风控才是留场证。—— 陈耀荣,算法交易
关于进阶系列
陈耀荣在华尔街深耕三十年,横跨策略研究与系统开发两端,是少数既能写代码又真正在实盘中经历过多轮市场周期的从业者。这本《算法交易》并非学院派的理论推演,而是他把三十年踩过的坑、走通的路提炼成一套可操作的完整方法论。在算法交易工具日益普及、散户也能接触量化平台的今天,这本书的价值不在于提供现成策略,而在于帮你建立一套真正经得起实盘检验的思考方式。
查看进阶系列全部投资笔记 →本篇 1 句最值得抄进笔记的话
- 策略是入场券,风控才是留场证。—— 陈耀荣,算法交易