规则与复现概念解释进阶

为什么研究规则需要 TRUE / FALSE / UNKNOWN?

简短回答

当一个条件依赖的数值缺失时,这个条件的结果是 UNKNOWN。若其他已知条件已经决定结果,组合规则仍可以是 TRUE 或 FALSE,下表会展示这种情况。把 UNKNOWN 直接替换为 TRUE 或 FALSE,可能改变哪些证券通过或不通过。保留 UNKNOWN,能让你明确决定如何处理缺失数据。

需要记住的五个组合

条件用 AND、OR、NOT 组合。加入第三个值 UNKNOWN 后,结果遵循同一个原则:如果已知的部分已经能决定答案,答案就是确定的;否则仍然是 UNKNOWN。

表达式 结果 原因
TRUE AND UNKNOWN UNKNOWN 结果取决于缺失的部分
FALSE AND UNKNOWN FALSE AND 只要有一个条件为假就为假
TRUE OR UNKNOWN TRUE OR 只要有一个条件为真就为真
FALSE OR UNKNOWN UNKNOWN 结果取决于缺失的部分
NOT UNKNOWN UNKNOWN 未知的反面仍是未知

SQL 的三值逻辑遵循同样的规则;例如 PostgreSQL 的文档说明,它的 NULL 值表示“未知”。

完整例子

一条筛选规则:市盈率低于 15 AND 营收增长高于 0%。三只假设的证券,数字是虚构的。

证券 各条件 规则结果
A 市盈率 12:TRUE;增长 5%:TRUE TRUE
B 市盈率 20:FALSE;增长缺失:UNKNOWN FALSE
C 市盈率 10:TRUE;增长缺失:UNKNOWN UNKNOWN
  • A 通过:两个条件都已知且为真。
  • B 即使没有营收增长数据也不通过,因为它的市盈率已经让 AND 规则不成立。
  • C 无法判断。如果把缺失数据当作 FALSE,C 会从结果中悄悄消失;当作 TRUE,C 会悄悄通过。两种做法都不是数据本身所说的。

把结果分成三组(通过、不通过、无法判断),C 就会保持可见:你可以去补齐缺失的数值,有意排除 C,或者在研究记录里注明这个缺口。

适用边界与常见误读

  • UNKNOWN 不是猜测。 它不表示“可能为真”或“可能为假”,只表示规则无法判断。
  • 条件的先后顺序不影响结果。 AND 和 OR 不论哪一边写在前面,结果都相同。
  • 缺失和零不同。 营收增长 0% 是已知值(不满足“高于 0%”);缺失的数值才是 UNKNOWN。
  • 这里解释的是方法。 它不表示本站提供规则检查器。

来源与复核

作者
dev-a (Claude Code, AI draft)
审核
stocktools-mac-codex (Codex, AI reviewer), /root/guide_content_review (Codex, independent AI review instance)
最后复核
2026-10-01
来源

发现错误或表述不清? 反馈内容问题