跳到正文

K线包含关系详解:为什么要处理、怎么合并 ​

Struct Guide 在识别分型前,会先处理相邻 K 线的包含关系。本页用数字和示意图说明本工具怎样判断、合并,以及如何把计算结果对应回原始 K 线。

核对图上标记时,你可能遇到这样的困惑:两根 K 线明明都在,计算时却合成了一根;“向上取高高、向下取低低”又具体取了什么值?下面按包含判断、合并取值、方向判定和标记位置逐步说明,边界条件集中列在实现约定清单。

一、什么样的两根K线构成包含? ​

Struct Guide 用最高价和最低价表示一根 K 线的覆盖范围,文中统一写成 [最低价, 最高价]。

相邻两根 K 线,如果一根的范围完全覆盖另一根——最高价不低于另一根,同时最低价不高于另一根——插件就把它们作为包含关系处理。边界相等也计入包含,包括高点相同、低点相同或两端都相同。

例如:

  • A 的最高价是 18,最低价是 10,范围为 [10, 18]。
  • B 的最高价是 16,最低价是 12,范围为 [12, 16]。

B 的两端都在 A 的范围内,所以 A 包含 B。反过来,若 B 是 [9, 19],就是 B 包含 A。判断包含不要求较大的范围一定在左侧。

高点相同也要检查:A [10, 18]、B [12, 18],B 的最低价更高、最高价相等,工具仍将它们作为包含关系处理。

包含关系图解:覆盖、相等与只重叠的区别四组独立例子使用相同价格比例。竖框仅表示高低价范围,不表示开盘价、收盘价或实体。
包含关系图解:覆盖、相等与只重叠的区别

最后一种情况用来区分“包含”和“重叠”:A [10, 18]、B [12, 20] 虽然有重叠,但 B 的最高价与最低价都严格高于 A,不构成包含。有重叠不等于有包含。

二、为什么先处理包含,再找分型? ​

本工具的分型比较有明确的输入要求:使用处理后的标准 K 线,不直接拿原始柱子代替。标准 K 线只是计算用的高低价记录,不是网站新增的行情数据。

以 A [10, 18] 和 B [12, 16] 为例:A 的最高价更高,最低价却更低。工具不能把它们归入“高低点同时抬高”或“高低点同时降低”的相邻关系,于是先按合并规则把它们压成一个区间。

消除相邻包含后,插件才取连续三根标准 K 线,检查中间一根的最高价和最低价是否同时严格高于两侧,或同时严格低于两侧。具体条件见分型识别规则。

因此,“必须先处理”指的是 Struct Guide 识别流程中的前置步骤。在原始 K 线上也可以比较数字,但跳过这一步,核对的就不是本工具实际使用的输入序列。

三、怎么合并:两根变一根 ​

工具先确定合并方向,再分别计算新的最高价和最低价:

合并方向新的最高价新的最低价
向上合并两根最高价取较大值两根最低价取较大值
向下合并两根最高价取较小值两根最低价取较小值

“向上/向下”在这里仅为合并规则的名称,决定取较大值还是较小值,不表示对行情的判断。

仍用 A [10, 18] 和 B [12, 16]:

  • 向上合并:最高价取 max(18, 16) = 18,最低价取 max(10, 12) = 12,结果为 [12, 18]。
  • 向下合并:最高价取 min(18, 16) = 16,最低价取 min(10, 12) = 10,结果为 [10, 16]。
包含处理:高低价怎样合并合并方向先按前置数据确定。相同的包含输入,在向上和向下两个独立示例中分别得到不同区间。
包含处理:高低价怎样合并

图中两行是不同方向条件下的独立示例,不是在一次计算中任选一种结果。插件按下一节的规则确定方向,也不是把两根 K 线简单取并集或交集。

四、合并方向怎么定? ​

有前置参照时 ​

Struct Guide 先取已处理序列中紧邻包含对左侧的那根标准 K 线作为参照,再与包含对的左项比较。这根参照可能已经由多根原始 K 线合并而来,并不要求它是一根未合并的原始柱子。

左项与参照的比较工具采用的合并方向
最高价、最低价同时严格抬高向上
最高价、最低价同时严格降低向下
未满足上述两项比较最高价:左项不低于参照时取向上,否则取向下

表中方向只标识合并取值方式。第三行是代码的兜底分支;在已消除相邻包含的常规输入中,参照与左项会先满足前两行之一。

完整例子:参照 P 是 [5, 15],A 是 [10, 18],B 是 [12, 16]。先比较 P 与 A:18 > 15,10 > 5,高低点同时抬高,所以 A、B 按向上规则合并为 [12, 18]。

换一个参照 P [13, 21],其余不变:18 < 21,10 < 13,高低点同时降低,所以结果改为 [10, 16]。

方向怎样判定:先比较参照 P 与包含对左项 A两组例子的 A、B 相同,只有前置参照不同。方向仅为合并取值方式,不能根据 A、B 的大小任意选择。
方向怎样判定:先比较参照 P 与包含对左项 A

序列开头没有参照时 ​

本工具比较包含对左右两项的高低价均值,即 (最高价 + 最低价) ÷ 2:

  1. 右项均值高于左项,取向上;低于左项,取向下。
  2. 均值相同,再比较收盘价:右项收盘价不低于左项时取向上,否则取向下。

例如 A [10, 18]、B [12, 16] 的均值都是 14。若 A 收盘价为 13、B 为 15,工具取向上;若 A 为 15、B 为 13,取向下。这是序列开头的实现约定,不是独立的用户设置。

五、处理之后,图上发生了什么? ​

计算序列可能变短,原始K线不变 ​

每合并一次,计算序列就少一项;没有包含时则不减少。例如,100 根原始 K 线处理后可能只剩 80 根标准 K 线。这个数量只是举例,不是固定压缩比例。

网站上的原始 K 线仍全部保留。核对分型的三根比较时,数的是标准 K 线,不能直接用原始柱子的数量替代。

工具会继续检查相邻包含 ​

插件按原始 K 线的先后顺序逐根处理。新的一根加入后,若与左项包含,就合并这两项;合并后先回查它与左侧相邻项,仍包含就继续处理。检查结束后,再读入下一根原始 K 线。

所以,计算序列中的一项可能对应一组原始 K 线,不一定只由两根组成。重新加载数据或最后一根原始 K 线更新后,包含组合也可能随重新计算改变。

标记映射到合并后价格的原始来源 ​

顶分型对应合并后最高价的来源,底分型对应合并后最低价的来源。这里找的是合并后实际取到的价格,不是一律取整组原始 K 线的最大值或最小值。例如向下合并后最高价取 16,来源就是原始最高价为 16 的那根。

如果组内多根原始 K 线提供了相同的对应价格,工具取最早出现的一根。因此标记不一定落在合并组的最后一根。

标记位置图解:计算用标准 K 线,坐标回到原始来源四根原始 K 线合成三根标准 K 线。A、B 并列提供最高价 18,顶分型标记取最早来源 A;原图的四根 K 线仍保留。
标记位置图解:计算用标准 K 线,坐标回到原始来源

图中 A、B 的最高价都是 18。它们向上合并为 [12, 18],与 P、C 一起满足顶分型的严格比较。最高价 18 最早来自 A,因此标记映射到 A;合并后的最低价 12 则来自 B。高、低价来源分别记录。

六、Struct Guide 的实现约定清单 ​

核对项本工具的实现规则
相等边界最高价相同或最低价相同计入包含,两端相同也计入
不包含两项最高价与最低价同时严格抬高,或同时严格降低;仅有区间重叠不构成包含
方向参照使用已处理序列中包含对左侧紧邻的标准 K 线,按高低价关系判定
序列开头无参照时先比较高低价均值,均值相同再比较收盘价
连续处理合并后回查左侧相邻项,完成检查后继续读入后续原始 K 线
价格来源高、低价分别对应回原始 K 线;并列的对应价格取最早来源
分型比较高低价均严格比较;中间项与任一侧对应价格相等时,不满足相应分型条件
是否可关闭包含处理没有独立关闭选项;显示图层的开关不改变这一步计算

这些边界用于核对 Struct Guide 的识别结果。不同工具输出不同时,应先确认输入数据与各自规则,不仅凭连线外观认定原因。更多核对步骤见画线差异核对顺序。

七、常见困惑 ​

包含处理会修改行情网站的原始K线吗? ​

不会。合并只发生在计算用的序列里,Struct Guide 不会因此改写网站原始 K 线。

核对分型时,该看原始K线还是标准K线? ​

看图时使用网站的原始 K 线;核对分型条件时使用处理后的标准 K 线,再按价格来源找到图上对应的柱子。两者的数量和位置不必一致。

包含关系需要自己判断或手动合并吗? ​

不需要。Struct Guide 读取 K 线后自动执行包含处理,再识别分型并计算笔、线段和中枢。手动核对只用于理解工具为什么画在某个位置。

为什么高点或低点相同也会被合并? ​

本工具的包含判断包含相等边界,与分型的严格比较是两套条件。不要把分型中“相等不成立”的条件套用到包含判断上。

不同工具的包含处理结果一样吗? ​

不一定。核对时应分别查看相等边界、开头方向、连续合并和并列价格来源等约定,也要保持数据范围一致。本页只记录 Struct Guide 的实现,不代表其他软件使用相同规则。

要核对某个位置,先打开分型图层,再将显示范围切换为“全部分型”,按本文规则检查输入序列;“全部分型”是标记集合,并不是标准 K 线的替代图表。完整条件见分型识别规则,设置说明见画线规则与参数总览。