跳到正文

线段的画线规则:起始检查、特征序列与结束点怎么确认 ​

本页说明 Struct Guide 如何从笔序列计算线段:什么样的输入通过起始检查、结束点怎样取得确认依据,以及虚线和实线各表示什么状态。以下是本工具的实现规则,用来核对这三类问题:

“明明已经有三笔了,为什么还没有线段?”

“特征序列、缺口,这些词具体对应哪些笔、哪些价格?”

“结束点在前面,为什么实线到后面才出现?”

下文按起始检查、特征序列与两条确认路径、确认与显示的顺序展开。线段的输入来自笔;笔怎样连接、怎样确认,见笔的画线规则。

一、本工具怎样从笔序列计算线段? ​

Struct Guide 使用当前笔序列计算线段,序列末端可能包含待确认笔。候选线段至少覆盖三笔,方向名称取自第一笔:第一笔向上称为向上线段,第一笔向下称为向下线段;方向名称只标识连线方向。

工具先处理 K 线包含关系、识别分型并连接笔,再把笔序列作为线段计算的输入。这是计算依赖关系,不能把任意三笔连线直接当作一条线段;还须检查共同区间、端点与确认条件。

二、起始检查:三笔还要有共同区间 ​

一笔的区间由两个端点价格确定:较大值为区间高点,较小值为区间低点。区间统一按 [最低价, 最高价] 书写。

工具取前三笔区间高点的最小值、低点的最大值,检查前者是否严格大于后者。只有交集具有非零宽度,才通过这项起始检查。

输入笔端点价格区间
第1笔10 → 18[10, 18]
第2笔18 → 12[12, 18]
第3笔12 → 20[12, 20]

高点最小值为18,低点最大值为12,18 > 12;前三笔共同覆盖 [12, 18]。在只有这三笔的例子里,工具以虚线连接起点10与第三笔终点20,等待后续确认依据。

线段起始:前三笔必须有共同区间三条输入笔的共同区间为 [12, 18]。虚线连接起点与第三笔终点,表示待确认候选线段。
线段起始:前三笔必须有共同区间

只在一个价格上相触,不通过。 例如连续端点为 10 → 18 → 8 → 10,三笔区间是 [10, 18]、[8, 18]、[8, 10]。高点最小值与低点最大值都是10,交集只剩一个价格点,未满足严格大于条件。这个例子仅核对输入笔的区间检查,不替代笔本身的连接条件。

这里检查的是候选起始处的前三笔,不要求之后每一笔都与这三笔共享同一个区间。前三笔条件不足时,工具不会在该起点补画待确认线段。

尚未生成第一条线段时,工具可以继续检查后续起始位置;已有已确认线段之后,下一段必须从共同端点衔接,不能跳过中间的笔制造断点。

三、特征序列:把笔的区间排成比较序列 ​

工具从输入笔中选出与候选线段反向的笔,把每一笔的端点区间记作一个特征元素,再按时间排列。可以借用三根 K 线比较的方式理解高低点检查,但这些元素是笔的区间,不是新的行情 K 线。

候选线段特征元素取自检查的局部形态
向上线段向下笔的端点价格区间中间元素高点、低点均严格高于两侧
向下线段向上笔的端点价格区间中间元素高点、低点均严格低于两侧

表中向上/向下只标识连线方向。两组高低点比较必须同时成立,相等不满足严格比较。

特征元素也会合并,但方向从哪里来? ​

工具按候选线段方向处理包含:向上取两元素较高的高点、较高的低点,向下取较低的高点、较低的低点,同时保留所选价格的真实来源端点。包含判定计入边界相等。

这里的取值公式与 K 线包含处理相似,方向来源与合并边界却不同:特征元素采用候选线段方向,不套用原始 K 线的前项参照或序列开头兜底规则,也不能跨候选分界合并。

为什么不能把所有元素一次合并后再找结束点? ​

对每一个候选结束位置,工具分别构造左右序列。左侧合并后的末个元素作为 F1;右侧按时间逐项处理,取得两个标准元素 F2、F3 后,就检查这个完整窗口,不用更晚的元素回头改写该窗口。

候选坐标取 F2 的真实极值来源:向上取高点来源,向下取低点来源;不直接取合并组最后一笔的位置。取得局部形态与坐标后,还需要以下确认检查。

四、缺口与两条确认路径 ​

特征序列路径:先区分有没有缺口 ​

这里的 F1、F2、F3 是上节候选窗口中的三个标准元素,不一定是整条序列最早的三个元素。

  • 向上线段:F1 最高价 < F2 最低价,记为有缺口。
  • 向下线段:F1 最低价 > F2 最高价,记为有缺口。
  • 边界相等归入无缺口。

缺口只描述两个元素区间的关系,不是对原始 K 线是否跳空的判断。

检查结果工具接下来的行为
局部形态成立、前两个元素无缺口取得候选结束点,结合旧段基本结构与结束价方向校验
局部形态成立、前两个元素有缺口保留候选,等待反向第二特征序列形成对应分型
第二序列确认前,原方向先出现严格更极端的端点原候选失效,继续考察后续位置

下图以向上候选为例。蓝色直线是特征序列中的向下笔,灰色直线是其间的向上笔;本例每个特征元素来自单条笔,无须包含合并。两组 F2 的高低点都严格高于两侧,区别在 F1 高点与 F2 低点之间。

线段确认:区分前两个元素是否有缺口蓝色向下笔依次对应 F1、F2、F3。比较 F1 高点与 F2 低点;有缺口时须等待第二特征序列条件,无缺口也仍需后续校验。
线段确认:区分前两个元素是否有缺口

有缺口时,第二特征序列到底等什么? ​

工具从候选端点开始,按反向候选取特征元素并处理包含,再按时间查找符合条件的三元素分型。两次检查的方向不同,不能把第一序列的分型方向直接照搬给第二序列。

原候选线段第一序列的局部形态反向候选第二序列取哪些笔、等待什么
向上线段顶分型向下取向上笔区间,等待底分型
向下线段底分型向上取向下笔区间,等待顶分型

表中向上/向下只标识连线方向。这是本工具代码的实现约定:向上旧段等待第二序列底分型,向下旧段等待第二序列顶分型。 例如向上旧段的第二序列为 [20, 25]、[15, 24]、[18, 27],中间高点24和低点15均严格低于两侧,满足底分型比较。

第二序列按时间处理新元素;首次满足分型条件后,不用后来的元素通过包含合并回头改写该次检查。等待期间,工具还核对候选端点是否先失效;仅仅触及某个价格,或某一条反向笔继续延伸,都不能代替第二序列的条件。

直接破坏:另一条独立检查路径 ​

除了特征序列路径,工具还独立检查第一条反向笔及后续端点。以向上旧段为例,需同时满足:

  1. 候选前的旧段至少三笔,前三笔严格重叠,最后一笔与旧段同向。
  2. 第一条向下笔的终点,严格低于此前一条向下笔的终点。
  3. 后续向下笔终点再次严格低于第一条反向笔终点,且在此之前,同向笔没有严格高于候选结束价。

向下旧段使用镜像比较。相等不满足严格比较;数据不足时继续等待。这条路径取第一反向笔之前那条笔的真实终点,不要求第一特征序列先形成常规分型。

两条路径都产生候选时,工具优先处理候选端点在笔序列中位置较早的那一个,不是比较哪个确认事件发生得更早。同一位置优先采用已确认的特征序列结果;若该路径仍等待,直接破坏路径已经确认,则可以结束等待。候选仍须通过下一节的整体校验。

五、确认与显示:结束点位置与实线出现时间 ​

候选检查通过后,工具还核对线段基本结构与结束价相对起点的方向:向上线段结束价必须更高,向下必须更低。失败时放弃该候选,继续搜索,不能只凭一个局部形态就画成实线。

线型显示规则
实线当前输入下通过确认检查的线段
虚线已通过起始检查、仍待确认的线段;先以第三笔终点作为绘制端点,之后只由同方向更极端的笔端点推进

反向笔仍参与确认计算,但不一定拖动虚线端点。绘制到哪里,与计算已经检查到哪里,是两件事。

结束点坐标来自候选位置,确认依据来自后续笔。因此,实线可能到后面才出现,但仍结束在前面的候选坐标;工具不会为对齐确认发生时间,把结束点移到最后一笔。“显示得晚”本身不能作为端点画错的依据,也不能仅凭这项说明排除其他错误。

输入更新时怎样核对? ​

正常追加笔且原有确认依据仍成立时,不会仅因出现更晚的数据就把已确认线段拖到最新位置。但线段依赖输入笔;实时 K 线更新可能改变基础分型、笔的端点或确认状态,进而需要重新核对线段依据。具体边界见笔的画线规则。

切换周期、复权、历史范围或笔模式,也可能改变原有输入。实时页面在 K 线数据变化后重新计算;结构回放使用增量计算,回到受影响的位置检查依赖对象。重新计算不等于每条已确认线段一定变化,应核对输入笔和原确认依据是否改变。

需要查看形成过程时,可按结构回放核对方法查看线段事件,分别记录结束点位置与转为实线的位置,不用最终截图代替过程记录。

面板有哪些相关设置? ​

线段图层默认打开,保存过的设置优先;关闭图层只隐藏连线,不停止计算。当前没有单独的缺口确认开关或“严格/宽松线段”选项。严格/宽松是笔的模式,通过输入笔序列影响线段;设置总览见画线规则与参数总览。

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

核对项本工具的实现规则
输入使用笔序列,末端可能包含待确认笔
起始检查前三笔高点的最小值严格大于低点的最大值;交集只剩一个价格点不通过
方向与衔接名称取自第一笔,只标识连线方向;已有已确认线段后,从共同端点连续衔接
特征元素取候选方向的反向笔区间;按候选方向合并包含,不跨候选分界合并
第一序列分型向上候选检查顶分型,向下检查底分型;高低点两组均严格比较
缺口向上比较 F1 高点与 F2 低点,向下比较 F1 低点与 F2 高点;相等为无缺口
第二序列有缺口时,向上旧段等待反向序列底分型,向下旧段等待反向序列顶分型;同时检查候选是否先失效
两条路径特征序列与直接破坏分别检查;候选端点位置较早者优先,同位置按确认状态选择
结束点取真实来源端点;候选前笔结构、末笔方向与结束价方向须通过校验
虚线端点第三笔终点作为初始位置,后续只由同方向更极端的笔端点推进
更新边界原依据保持时不因后续数据出现就移动结束点;基础笔或输入设置改变后重新核对

以上是本工具的实现选择。比较其他工具的线段前,应先核对输入笔与以上条件,不能只凭结果不同就判定原因。

七、常见问题 ​

已经三笔,为什么还没有线段? ​

三笔数量足够只是起始检查的一部分。先查前三笔是否有非零宽度的共同区间,再查能否从前一段端点连续衔接。原始 K 线数量也不能直接替代笔数;详见起始检查。

为什么虚线端点不跟着最新反向笔移动? ​

绘制端点与已检查到的位置是两件事。反向笔可以参与特征序列和直接破坏检查,虚线仍指向当前绘制端点;只有同方向更极端的后续笔端点才推进它。

为什么结束点在前面,实线却到后来才出现? ​

结束点坐标来自候选位置,确认依赖后续笔。工具不会为与确认发生时间对齐而把结束点挪到最后一笔。有缺口时还可能等待第二序列分型,见缺口与两条确认路径。

出现一条反向笔,就算线段被笔破坏了吗? ​

不会仅凭一条反向笔出现就确认结束。直接破坏路径还要检查旧段基本条件、第一条反向笔与后续端点;特征序列路径要检查局部形态与缺口。条件不足时继续等待,笔数变化不等于确认结果。

笔、线段与中枢在图上怎样区分? ​

Struct Guide 用连接线显示笔和线段,用矩形显示中枢。计算时先生成笔序列,再计算线段;中枢使用已确认线段检查区间。三者是不同图层与计算对象。只想核对线段时,可在面板关闭其他图层,关闭显示不停止内部计算。

Struct Guide 自动执行起始检查、候选选择和确认计算。核对某一段时,先固定输入笔与模式,再按本文的共同区间、两条确认路径和结束价校验逐项检查;区间计算见中枢的画线规则。

笔的画线规则 · 中枢的画线规则 · 画线规则与参数总览