← 返回教程库

「我们优化过参数」这句话,听着像优点其实是警告

最后更新 2026-08-19
📚 量化与 AI 投研 📖 量化避坑 ⏱ 约 22 分钟 R2 · 注意风险
你将学到
  • 说得出为什么「优化过参数」在别的行业是褒义、在这里是中性偏负,关键差别在于有没有可以反复验证的新反馈
  • 认得出这句宣传语的三种常见变体(试了多少组、用了什么先进算法、一直在持续优化),并说得出每一种各自暴露了什么
  • 拿到一句「我们优化过参数」,能当场问出三句反问,并听得出什么样的回答算加分、什么样的算露怯

对方给你介绍一套东西,讲到一半,语气里带着点自豪:「这套策略的参数我们是优化过的,跑了上万组组合筛出来的最优解。」

你会本能地觉得这是个加分项。听起来这帮人认真、有算力、不是拍脑袋定的数——比起一个随口说「我就用的 20 日均线」的人,这明显更专业。

而如果这话是在一个懂行的人面前说的,你会看到一个很微妙的反应:他不会点头,他会往后靠一下,然后问一句你完全没想到的问题。

这一篇讲的就是这个落差。同一句话,在卖方嘴里是成果,在买方耳朵里应该是一条待核实的信息,而且是偏负面的那一类。 我不会在这里重讲参数优化的技术机制——那件事 参数高原与参数尖峰过拟合:调参这个动作本身,就是一台噪音制造机 两篇已经拆得很细了,你想搞懂「为什么会这样」应该去读它们。这一篇只处理一件事:当这句话被当成宣传语说出口的时候,它到底在传递什么信息,以及你该怎么接。

先约定一下用词。参数在这里指的是一套交易规则里那几个可以拧的旋钮——看几天的均线、涨到多少算贵、亏多少就走人、最多同时拿几只。优化参数就是把这些旋钮的各种组合都试一遍,从中挑出在历史上表现最好的那一组。整个过程不需要你会写代码就能理解:它就是一个大规模的试错,然后留下最好看的那次。

同一句话,在两个行业里意思是反的

先打个比方

一家装修公司跟你说:这套方案我们改了六十版。

你的第一反应多半是好事。改六十版,说明人家精益求精。

但先别下结论,问一句:这六十版是改给谁看的?

如果是每改一版就拿给业主看、业主说「这面墙太压抑」、下一版就调整,那么这六十版是真的在打磨——因为每一版都撞到了一个来自外面的、公司自己造不出来的反馈。六十次反馈,六十次修正,方案确实会越来越合身。

如果是设计师自己关在屋里改,改到自己看着顺眼为止,那这六十版的性质完全不同。它测的不是这套方案好不好,是这位设计师什么时候会觉得满意。 改到第六十版他停手了,不是因为方案对了,是因为他累了或者觉得够好看了。这六十版里没有任何一版接触过真实的业主。

两种情况说出来是同一句话——「我们改了六十版」。区别只在于中间有没有一个你控制不了的东西在给你打分

还有一个更扎心的版本

有人跟你说:这道题的答案我猜出来了,我试了一万次。

一万次试出来的答案,和一次就答对的答案,写在纸上一模一样。你没法从答案本身分辨这两个人。但你对这两个人的能力评价,应该差得很远——第二个人是懂题的,第一个人只是有耐心。

而这里还有一层更麻烦的:如果这道题只有一份答题卡,用完就没了,那么第一个人试的那一万次,把答题卡也一起耗掉了。 他现在给你的这个答案,是在答题卡上蹭过一万遍之后剩下的东西。你想验一遍,没卷子了。

历史行情就是那份用一次少一次的答题卡。 它只有一份,谁都不能再造一份出来。

所以两个行业的差别在哪

在有真反馈的地方,优化是美德。写代码的人反复调,因为每改一次都能重新运行、看它对不对;调音师反复拧,因为每拧一次都能重新听;工厂反复试产,因为每试一批都能重新测。这些领域有一个共同点:你可以无限次地问「现在对了吗」,而每次回答你的都是一份新的、干净的事实。

在只有一份历史的地方,情况正好翻过来。你能问的那个问题永远是「在这段已经发生过的行情上,现在好看了吗」。你问一万遍,回答你的还是同一段行情。优化的次数越多,你越不是在逼近真相,而是越贴合这一段的形状——包括这段行情里那些纯属偶然、以后再也不会照原样出现的部分。

于是同一个动作,评价方向反了:在有反馈的行业里,改的次数越多越好;在只有一份历史的地方,改的次数越多越可疑。

这就是为什么懂行的人听到「我们优化过参数」会往后靠。他不是觉得对方在骗人,他是听见了一个数字的分母——而对方刚才只报了分子。

这句话对掏钱的人意味着什么

它把过程当成了成果

装修公司不会在宣传册上印「我们画过草稿」。草稿是过程,成果是房子。没人会把打草稿这件事本身当卖点。

「我们优化过参数」被当成卖点,说明说这话的人把中间步骤误当成了终点。参数优化在一套方法的开发流程里是很靠中间的一环,它后面还应该跟着一长串验证动作。一个人如果最想让你知道的是他优化过,那大概率意味着后面那串东西他没有、或者不觉得重要。

判断一个人做过多少功课,看的不是他强调什么,是他强调的东西在流程里站在哪个位置。 站得越靠前,说明他能拿出来的越少。

它是唯一一句你不该主动说的话

这句话有个很独特的性质:它是自曝,而且是唯一一种卖方会心甘情愿自曝的信息。

一份业绩报告上的数字,多多少少可以挑口径、挑时间段来打扮(报告里哪些数字是化过妆的 里讲了六种手法)。但「我优化过多少轮」这个数,没有任何美化空间——它就是试验次数,而试验次数越大,同一个成绩的含金量越低。

于是就有了一个很荒诞的画面:卖方拿着一个越大越难看的数字,当成越大越气派的东西说出来。他以为你在听「我们有算力」,你该听到的是「我的分母很大」。

它暴露的其实是关系,不是技术

再往下一层:一个人愿意把「优化过参数」当卖点讲,说明他默认你不懂

这不是恶意,多数时候只是习惯——这句话在他过去的对话里屡试不爽,说完对方就点头了,那他自然会一直说下去。但对你来说,这个信号本身有用:你正在被当成一个不会追问的听众对待。 而一个默认你不追问的人,在别的地方也不会主动交代那些你不问就发现不了的东西。

至于为什么一套真能挣钱的方法,压根不需要靠这类话术来说服你,卖策略的人,为什么自己不用它赚钱 那篇专门讲这个身份问题;而免费送到你手上的那些,为什么连这句话都懒得说,免费的策略为什么不值钱 讲的是另一头。这三篇是一组,我尽量不越界。

机制层:为什么在这里,试得越多结果越好看却越不可信

到这里可以简单说一下底下发生了什么。这一节我讲得很浅,因为它不是本篇的重点。

参数优化的过程,本质是把回测跑很多很多遍——每换一组参数就重跑一次历史,记下成绩,最后把成绩最高的那组交给你。开源交易框架 freqtrade 的相关文档在开头就是这么描述的,它甚至加了一句自嘲,说这个搜索会烧光你所有的处理器核心、让笔记本听起来像战斗机,而且依然很慢。

关键在于这个「最高」。一堆成绩里的最大值,天生就比这堆成绩的真实水平偏高。 哪怕这一万组参数全都毫无道理,只要历史行情里存在随机波动——它一定存在——那么这一万个成绩里的最高那个,也会因为运气而好看。你试的组合越多,「纯靠运气冒出一个漂亮成绩」的概率就越高。

所以「我们试了一万组,选出了最好的一组」这句话,在统计上等价于:我从一万个数里挑了最大的那个给你看。 挑最大值这个动作本身不产生任何信息,它只产生一个偏高的数。

这件事的完整推导在 过拟合:调参这个动作本身,就是一台噪音制造机,包括为什么参数个数不是关键、取值精度和试过的品种同样在放大自由度。而「怎么区分一组参数是站在一片平地上还是站在一根针尖上」,是 参数高原与参数尖峰 的活。你要是想真正搞懂机制,去读那两篇;这一篇往下讲的是你在饭桌上能用的东西。

三种变体,各自糟在哪

「我们优化过参数」很少以原句出现。它通常穿着下面三件外衣里的一件,而三件的难看程度不一样。

变体一:「我们试了上万组参数」

这是最糟的一种,因为它是唯一一句把分母主动报出来的。

说这话的人想传递的是规模感,而你该做的是把这个数摆到它该在的位置:这个成绩是一万个候选里选出来的最好那个。 一万这个数越大,这句话的含金量越低。

而且还有一层:轮数堆得多,并不意味着搜得更好。 freqtrade 的文档里有一句很实在的经验之谈,说轮数堆过某个量级之后,最好的结果基本就不再明显改善了——具体那个量级以你手上那个版本的文档为准,重要的是这个形状:收益递减,而代价不递减。 它甚至提供了一个提前停止的选项,连着若干轮没有改善就自动收手,免得白烧机器。

工具的作者知道多跑没用,所以做了个开关让你早点停。而拿轮数当卖点的人,报的恰恰是这个作者觉得该省下来的部分。

更极端的情况是搜索空间根本装不下这么多轮。文档里专门讲过一个提示信息,大意是「这个点之前已经算过了」——出现它说明可用的组合基本被试遍,程序找不到没试过的点了。文档给的例子非常干净:一个取值只在十几个整数之间的参数,如果它是那一块空间里唯一的参数,那么跑上千轮的绝大多数轮次都是在重复劳动。

从这里能引出一把很粗糙但很好用的尺子:轮数这个数单独看没有意义,要看它和「一共有多少种可能」的比例。 空间只有十几种、你跑满十几轮,那不叫优化,叫穷举,所谓最优就是这十几个数里的最大值;空间大到几亿种、你跑了两千轮,你连表面都没刮干净,但交出去的仍然是两千次里的最大值。两种情况都不构成「找到了规律」。

变体二:「我们用的是很先进的优化算法」

这句话听起来是技术实力,实际方向正好反了。

更聪明的搜索算法,能力是更快地找到这段历史上的最高点。而这段历史上的最高点里,本来就掺着噪音堆出来的部分。搜索效率提高,意味着贴合历史偶然性的速度也一起提高。先进算法替对方省下的是电费和时间,不是风险。

如果对方说的是某个具体算法的名字,你也不必去查那是什么。你只需要问一句:这个算法优化的目标是什么? 答案基本都是「历史上的某个成绩指标」。而只要目标是历史成绩,算法再聪明也只会更快地跑向那个方向——它没有任何机制去分辨某一次提升来自规律还是来自巧合,因为在数据里这两者长得一模一样。

顺带说一句,「换一个评价口径重跑」这个动作,本身也是一层搜索。所谓评价口径,就是「拿哪个分数来评判好坏」:按总收益不好看,就换成夏普比率(把收益和波动放在一起算的一个分数,同样的收益、一路颠簸得越厉害分越低);夏普也不行,就换成收益跟最大跌幅的比值。每一个口径单独看都合理,它们只是不同的评价角度。问题出在用法上——挑出一个能把结论撑起来的口径,和挑出一组好看的参数是同一类操作,只是它几乎从不被算进试验次数里。因为在感觉上,换口径像是「换了把更合适的尺子」,不像「又试了一次」。

变体三:「我们一直在持续优化」

这句话最讨巧,也最容易骗过认真的人,因为它听起来像负责任的态度。

它的实际含义是:这套东西没有真正的样本外了。

样本外是指一段完全没有参与过调整的数据,用它来考一遍,看这套规则在没见过的行情上还成不成立。它的价值全部来自「没参与过」这四个字。而一旦有人看了样本外的结果,回头改了改规则,再考一次,那段数据就已经参与了选择——它变成了第二个样本内,而这个过程完全不留痕迹,代码里不会有一行写着「我在这上面调过」。

「持续优化」这四个字,翻译过来就是这个动作被无限次地重复了。持续优化和保有干净的样本外,在同一段数据上是互斥的,你只能选一个。这条纪律具体怎么划、为什么它反直觉,样本内与样本外 那篇讲得最透。

还有一层更难察觉的:持续优化的人往往并不觉得自己在作弊。他觉得自己在改进,在跟上市场的变化,在负责任。这也是为什么这个变体最危险——它的动机是干净的,后果却和刻意粉饰一样。

你该反问的三句话

现在到了能用的部分。听到「我们优化过参数」,你有三句话可以问。这三句都不需要你懂任何计算过程,你只需要照着念,然后听对方怎么答。

要先说清楚的是:判断这套东西值不值得信的那套通用追问,不在这一篇里。 时间区间、成本口径、资金规模那几问是 看到「年化 30%」,你该问出哪五个问题 的活。这里的三句,专门对付「优化过参数」这一句宣传语,问的是这次优化本身干净不干净

第一句:「把这些参数上下挪几格,结果会怎么样?」

这一问在防的是:这组参数是站在一片平地上,还是站在一根针尖上。

道理很朴素——一份菜谱如果写着「盐 3 克,多放 0.2 克就难吃」,那它记录的多半不是烹饪规律,是某位厨师某一天的一次偶然。真正的规律,附近应该是连成一片的。参数也一样:把它左右挪几格,成绩不塌,说明它可能在讲一件真事;一挪就塌,说明它讲的是这段历史的私事。

像样的回答长什么样:对方能说出邻近取值的表现大致如何,或者更好——他会告诉你他没有用搜出来的那个最优值,而是往回退了一点、选了一片区域的中间。这个回答的分量很重,因为它说明这个人知道最优点是最不能碰的那个点。

露怯的回答长什么样:「我们用的就是最优的那组啊。」——这句话本身就是答案。他只看了排行榜第一行,而排行榜第一行恰恰是最容易被运气顶上去的那一行。

至于这件事底下的完整机制,就是 参数高原与参数尖峰 那一篇。你不需要会做,你只需要知道有这么个东西,好在对方答不上来的时候心里有数。

第二句:「你一共试过多少种版本?不只是参数,包括换过的品种、换过的时间段、试了又扔掉的想法。」

这一问在防的是:真实的分母比他报的大得多。

大多数人被问到试验次数,只会去数程序跑了多少轮。但下面这些动作全都在增加碰运气的机会:换品种试试、把起点从五年前挪到三年前、换一个评价口径、以及最隐蔽的那一种——在网上翻了十套公开策略,挑了历史成绩最高的那套。最后这个动作里一个参数都没调,但它踩在别人已经筛过一轮的结果之上,又筛了一轮。

所以这一问真正的杀伤力在后半句:「试了又扔掉的想法」有多少个。 那些被扔掉的版本从不出现在任何一份报告里,可它们全都真实地消耗过同一段历史。

像样的回答长什么样:一个愿意给你估个数的人——哪怕是「大概十几个大方向吧」——说明他知道这个数是成绩的一部分。更好的回答会主动带上一句「所以这个成绩你要打个折看」。

露怯的回答长什么样:「就这一套,我们没试别的。」这句话在绝大多数情况下不成立。一套规则从想法到定型,中间必然被改过很多次,只是没人记账。答「就这一套」的人,要么是没意识到那些改动也算,要么是知道但不打算说。

这一问的另一半用处:把「试了多少次」和「留下了几套」放在一起。如果对方试过几十套策略、最后留下了给你看的这一套,那你看的其实是一份幸存者名单里的第一行。这跟一屋子人扔硬币、把连中十次的那位请上台是同一个结构——你只是没看见被藏起来的那九百九十九个人。这类污染在 数据窥探 里讲得更系统。

第三句:「这套参数定下来之后,有没有在一段完全没参与过的数据上考过?考过几次?」

这一问在防的是:答案是从答案里抄出来的。

前半句很多人问得出来,真正的分水岭是后半句「考过几次」。看过一次样本外的方法和看过七次的方法,你对它的信任程度应该完全不同——而在报告上,这两者长得一模一样。

像样的回答长什么样:明确的切分方式(哪段用来定参数、哪段用来考、时间上不重叠),加上考的那一段的成绩,再加上一句老实话——「这个我在样本外上试过几次」。愿意主动交代这个次数的人,说明他知道这件事重要。

更值得加分的回答:对方给的不是一个平均成绩,而是把整段时间切成好几块、每块单独算一遍,然后告诉你有几块是赚钱的。这个做法在真实系统里是有的——Vibe-Trading 的验证模块就把回测区间切成若干段,每段单独算收益、夏普、最大回撤(账户从最风光那天往下缩水了多少)、胜率(赚钱的交易占全部交易的比例),最后除了平均值之外,还输出各段之间的差异有多大,以及「有多少段是赚钱的」这个一致率。

这个字段的意义值得你记住:一个平均年化很高但只有一段赚钱、其余全亏的结果,和一个平均年化中等但每段都小赚的结果,在只看均值的时候长得一模一样。 把一致率摆出来,它们立刻分出高下。所以你可以直接把这句话当成追问:「分段看的话,有几段是赚的?」

露怯的回答长什么样

  • 「用的是全部数据」——那么这份成绩是一份事后总结,不是一次检验,这一问到此结束。
  • 「我们一直在持续优化」——就是上面那个变体三,样本外已经被消耗掉了。
  • 「这个说来话长,你不做技术不好理解」——这不是解释,是挡箭牌。

关于怎么听懂各种绕开方式,以及被问住那一刻的反应为什么比答案本身更能说明问题,看到「年化 30%」,你该问出哪五个问题 后半段讲得比这里细,不重复了。

反过来:什么样的说法反而是加分的

这一节可能是全篇最有用的。因为光会挑刺没什么用,你得知道一个真做过功课的人会怎么谈论这件事

下面这几种表述,只要出现,性质就完全变了:

「我们优化过,但我没敢用搜出来的那组。」 前面说过,这句话说明他知道最优点是最危险的点。

「我们故意把可调的范围设粗了。」 这个思路在工具里是有对应做法的。freqtrade 处理小数类参数时默认限制小数位数,把连续区间切成有限的格点,文档给的理由非常干脆:比这更精细的取值,通常只会得到过拟合的结果。它不是在帮你找到更好的参数,是在拦着你找得太细。 一个主动把格子调粗的人,是在牺牲纸面上的最优,换取找到的东西更可能是真的。

「我们换了几个随机起点重跑,最优参数落在同一片区域。」 参数搜索的起点通常是随机撒的,文档明确写了:用不同的随机状态多跑几轮,很可能得到不一样的结果。所以这个检验成本极低而信息量极高——如果几次搜出来的最优参数各跑各的,而每一组的历史成绩又都很好看,那结论很清楚:这段历史里到处是局部高点,挑中哪一个纯看运气。

「参数定下来之后我们就锁死了,到今天没动过。」 这句话配上一个日期,是这一整篇里含金量最高的回答。因为从锁死那天到今天的这段实际表现,是一段不可能被篡改的样本外——时间是单向的,谁也没法回去重挑。

「优化结果我们是当成一份清单来挑的,不是直接抄的答案。」 正经工具确实是这么设计的:freqtrade 提供了把全部轮次列出来、按条件筛选、逐条查看某一轮细节的命令,允许你按「只看盈利的」「交易笔数不少于多少」这类条件过一遍。这些筛选功能存在本身就在说一句话:优化结果是一份需要人工挑拣的清单,不是一个可以直接搬走的答案。

注意这几句加分回答的共同点:它们全都是在说「我怎么防着自己」,而不是在说「我做得多努力」。 这是分辨专业和业余最省事的一条线。

优化本身没有罪

必须把话说回来,否则这篇会被用歪。

参数优化不是坏事,它是开发流程里正常的一环。 一套规则总得有个数,这个数总得从某个地方来。反对优化本身是荒唐的,就像反对设计师画草稿。

有问题的是三件事,你要分清:

一是位置。 优化是中间步骤,不是成果。把它放到宣传语的位置上,说明后面那串验证动作要么没做,要么在说话人心里不如这一步值钱。

二是分母。 试验次数是成绩的一部分,而它几乎从不被报出来。你要做的不是否定那个成绩,是在心里给它配上分母之后再看一眼

三是不可逆。 历史只有一份,用一次少一次,而消耗它的过程不留任何痕迹。这是它和其他行业最根本的差别。

还有一句要说在前面:上面这三句反问全部答得漂亮,也不等于你该投。 它只说明这个人诚实、算过账、知道自己在防什么。诚实的人一样会亏钱,市场不会因为谁做事严谨就给谁发奖金。这三问能帮你剔掉一批不该考虑的,剔不出哪一个值得考虑。

反过来,答不上来也不一定是骗子,更常见的情况是业余——真心相信自己那套东西,只是从没被人这样问过。但对你来说,这个区别的实际后果一样:你的钱不该为别人的业余买单。

至于拿到一份完整报告之后该按什么顺序看,那是 拿到一份策略业绩报告,先看哪几个地方 的活。这一篇只负责教你接住一句话。

⚠️ 风险提示

本文讲的是如何理解和追问「优化过参数」这类表述,不构成任何投资建议、买卖信号或收益承诺,也不针对任何具体产品、平台、机构或个人作出判断。文中引用的文档说明与源码字段,全部来自上述指定快照版本,是阅读文档与代码得出的机制说明,不是运行结果,具体行为以你手上那个版本为准;文中不给出任何可照抄的参数取值或阈值。回测结果不等于实盘结果,任何历史业绩都不预示未来收益。这三句反问全部通过,也只说明这次优化没有明显的结构性问题,它依然不能告诉你未来会怎样。 涉及委托他人管理资金的场合,还需要另外核实资质与合规安排,那属于本文范围之外的另一类尽调。完整风险提示见 免责声明

小结

  • 「我们优化过参数」在别的行业是褒义,在这里不是。差别在于有没有一个你造不出来的新反馈在给你打分——装修方案改六十版,得看是改给业主看的还是改给自己看的。
  • 这句话是自曝:它报的是成绩的分母,而分母越大,同一个分子越不值钱。说话的人以为你听到的是算力,你该听到的是试验次数。
  • 三种变体各自的问题:报轮数是把最难看的数当气派说,而且轮数堆过某个量级本来就不再改善;吹算法先进方向反了,越聪明只意味着越快贴合历史的偶然;说持续优化等于承认没有干净的样本外了,而且说这话的人通常真心觉得自己在负责。
  • 三句可以照念的反问:参数上下挪几格会怎样你一共试过多少种版本(含扔掉的想法)定下来之后在完全没参与过的数据上考过几次。第三句还可以追一句「分段看有几段是赚的」。
  • 加分的回答长什么样:不用搜出来的最优那组、故意把格子调粗、换随机起点重跑看最优点漂不漂、参数锁死之后的实际表现、把优化结果当清单挑而不是当答案抄。它们的共同点是在讲「我怎么防着自己」,不是在讲「我多努力」。
  • 优化本身没有罪,有问题的是位置(把中间步骤当成果)、分母(试验次数从不报出来)和不可逆(历史只有一份,用一次少一次且不留痕迹)。
  • 三问全过也不是通行证,它只帮你排除,不帮你选择。

一句话说完这篇:一个人告诉你他试了一万次才找到这个答案,你该听见的不是他有多努力,而是这个答案是从一万个里挑出来最好看的那个——而那张考卷,他已经用掉了。

内容有错、看不懂、或想看下一篇?告诉我们 →

本文为投资教育整理,不构成任何投资建议;不荐个股/基金、不预测点位、不承诺收益。关键数据与结论请结合权威来源自行验证,并见风险免责声明