Senzoukria · 术语表

目标函数(优化准则)

一次策略优化的目标函数,是优化器为了给各个参数组合排序而去最大化的那一个数,比如净利润、盈亏比、夏普比率或者 SQN。选哪一个,决定了哪个组合会胜出,也决定了胜出者大概会带着哪一种风险。

更新于 2026 年 9 月首次发布:2026年9月25日

本页目录
  1. 每个准则在奖励什么
  2. 同一个网格,两个胜出者
  3. 在 Senzoukria 里
  4. 常见错误
  5. 相关内容
  6. 同一栏目
  7. 其他语言版本
  8. 常见问题

每个准则在奖励什么

  • 净利润奖励规模和暴露:交易最多或者持仓最大的那个组合通常胜出,连带它的回撤一起。
  • 盈亏比奖励挑剔:一个交易极少、而且一笔都没亏的组合,得分是无穷大。
  • 每笔期望值奖励平均单笔很大,不管总共有多少笔。
  • 每笔夏普或索提诺奖励单笔结果的一致性。
  • SQN 把每笔夏普乘上交易笔数的平方根,所以它同时奖励一致性和样本量。
  • 自定义比率,比如收益除以回撤,奖励的是某个具体账户规则真正在意的东西。

同一个网格,两个胜出者

组合 A 做了 12 笔交易,盈亏比 4.0,净结果 +1,800。组合 B 做了 140 笔交易,盈亏比 1.4,净结果 +5,600。最大化盈亏比会选中 A;最大化净利润或者 SQN 很可能选中 B。而如果给每个组合都加上「至少 30 笔交易」的约束,A 在排序之前就被排除了。

约束和准则一样重要:没有它,选择会一路漂向那些样本极小、比率因为偶然而极端的组合。更隐蔽的问题是:在看到每个准则各自会选中哪个组合之后再去改准则,这本身就是一种数据窥探。准则属于那份写下来的假设,而不是属于看完结果之后的调整。

在 Senzoukria 里

自动回测的参数扫描和前推分析提供四个选择准则:SQN(默认,标注为把交易笔数考虑在内)、盈亏比、每笔期望值和每笔夏普。交易笔数少于 10 的组合会被赋予负无穷的分数,所以它永远不会被选中;而一个没有亏损交易、盈亏比为无穷大的组合,会被映射到一个很大的有限分数,这样排序仍然是确定的。

前推分析随后在每一个训练窗口内应用所选的准则,并在紧随其后的测试窗口上评估胜出者;而 Gauntlet 用一些不依赖这个准则的统计量来审判被选中的那条路径,比如置换检验的 p 值和去膨胀夏普。

常见错误

  • 优化净利润,然后对胜出者的回撤感到意外。
  • 在没有最少交易笔数约束的情况下优化盈亏比。
  • 挑一个能让自己偏爱的那个组合胜出的准则。
  • 把优化出来的那个数值读成对未来表现的估计;它是许多个数值里的最大值,天然偏高。

同一栏目

其他语言版本

常见问题

优化交易策略最好的目标函数是哪个?
不存在普适的最好。一个把平均结果、离散度和交易笔数结合起来的准则,比如 SQN,比盈亏比或者净利润更不容易挑中极小的样本。无论选哪个,它都应该反映这个账户真正在意的约束,并且应该在运行之前就定下来。
桌面端为什么拒绝交易笔数少于 10 的组合?
因为在寥寥几笔交易上算出来的比率会因为偶然而极端。三笔盈利交易就给出无穷大的盈亏比,而没有这道下限,这样的组合在几乎每一次扫描里都会被选中。
NEXT

继续阅读