缠论线段划分规则图解:特征序列、笔破坏与结束确认
看线段时,最容易卡住的往往是这几处:三笔已经有了,怎么还没连成段;特征序列到底挑了哪些笔;结束点明明在前面,为什么实线到后来才出现。下面用图把 Struct Guide 缠论助手(以下简称插件)的处理过程一步步展开。
线段计算依据原文规则实现;原文未明确的处理细节,由插件公开说明实现约定。 下面既列出检查条件,也说明缺少参照时的处理、两条路径的取舍和更新后的显示变化。
“明明已经有三笔了,为什么还没有线段?”
“特征序列、缺口,这些词具体对应哪些笔、哪些价格?”
“结束点在前面,为什么实线到后面才出现?”
先看前三笔,再看旧段怎样结束。两条结束确认路径分别放在3.1和3.2里,后面接着说实线、虚线怎样显示。如果想先查一笔为什么能连接,见笔的画线规则。
1. 插件怎样从笔序列计算线段?
插件拿已经接出的笔继续算线段,尾部那一笔也可能还在等待确认。候选线段至少要有三笔,方向按第一笔记:第一笔向上,就按向上候选检查;第一笔向下,就按向下候选检查。方向在这里只描述连线。
从原始 K 线到线段,中间要经过包含处理、分型识别和接笔。下面从这些笔开始,先看看哪三笔能作为一段的起点。
2. 起始检查:三笔还要有共同区间
先把一笔两端的价格写成 [最低价, 最高价]。比如10到18这一笔,区间就是 [10, 18]。
再把前三笔放在一起,找它们共同经过的那一段价格:高点取最小值,低点取最大值。前者必须严格大于后者,共同区间才有宽度。
| 输入笔 | 端点价格 | 区间 |
|---|---|---|
| 第1笔 | 10 → 18 | [10, 18] |
| 第2笔 | 18 → 12 | [12, 18] |
| 第3笔 | 12 → 20 | [12, 20] |
这三笔里,高点最小是18,低点最大是12,18 > 12,所以共同区间是 [12, 18]。先有这三笔时,插件从10连到第三笔终点20,画虚线,接着等后面的确认条件。
如果只碰在一个价位,就不通过。看 10 → 18 → 8 → 10:三笔范围分别是 [10, 18]、[8, 18]、[8, 10],共同部分只剩10,宽度为零。这里单独演示三笔的区间检查,每条笔本身仍须满足连接条件。
起始检查只看开头这三笔,后面的笔不用每一条都留在同一个区间里。如果开头三笔不满足,插件就不会从这里画出待确认线段。
还没找到第一条线段时,可以继续往后找起点。前面一段已经确认后,下一段就要从共同端点接上,不能跳过中间的笔另起一段。
3. 线段结束的两条确认路径
旧段在哪里结束,插件会同时看下面两条路径:
- 路径一:特征序列确认——特征分型成立后,再区分前两个元素有无缺口;有缺口时,还须等待第二特征序列的确认条件。
- 路径二:第一笔破坏后的成段确认——第一反向笔已造成笔破坏,再检查后续反向笔是否满足成段确认条件;笔破坏本身不等于旧线段结束。
不论走哪条路径,旧段的基本结构和结束价也都要满足要求。
3.1 路径一:特征序列确认
这条路径先挑反向笔,把区间排好,再比较它们的高低。先跟着下面这张图看怎样挑。
插件怎样选取特征元素?
看图中向上候选这一组,先挑出向下的笔。每一笔都取两个端点之间的价格范围,再按先后顺序放好。接下来,插件会比较这些笔的区间,图里的区间框并不是行情 K 线。
图的上层保留了连续的笔,蓝色是挑出来的部分。20 → 14 这一笔,记成 [14, 20];25 → 18 记成 [18, 25];28 → 22 记成 [22, 28]。向下候选反过来,挑向上的笔,过程画在下半部分。
下面的 E1、E2、E3 按抽取顺序编号。这一组没有相邻包含,可以直接看到三个区间。实际计算还要处理包含和候选分界,再挑出用于比较的 F1、F2、F3;抽取出三项本身,还不能确认旧段结束。
| 候选线段 | 特征元素取自 | 检查的局部形态 |
|---|---|---|
| 向上线段 | 向下笔的端点价格区间 | 中间元素高点、低点均严格高于两侧 |
| 向下线段 | 向上笔的端点价格区间 | 中间元素高点、低点均严格低于两侧 |
比较时,高点和低点两组都要满足,相等不通过。表里的向上、向下仍只指连线方向。
特征元素也会合并,但方向从哪里来?
选出的区间里如果有包含,也要合并。先看被合并元素之前的非包含元素:高低点都抬高,按局部向上处理,取较高的高点、较高的低点;高低点都降低,按局部向下处理,取较低的高点、较低的低点。相等也计入包含,留下的价格各自保留来源端点。
第一、第二特征序列共用这套局部方向规则,不固定跟随候选线段方向。序列开头如果没有前置非包含元素可作参照,插件才沿用传入的初始方向;这是缺少参照时的起始约定,不用后来的元素倒推方向。
第一序列构造候选窗口时,假设转折点两侧不能跨界合并。左侧元素可以给右侧提供局部方向参照,但不会因此并入右侧的价格和来源笔。第二特征序列正常处理包含,不套用这条分界限制。
下图两组用的是同样的 A=[10,20]、B=[12,18],只换前置参照 P。上半图从 P 到 A 高低点都抬高,合成 AB=[12,20];下半图高低点都降低,合成 AB=[10,18]。决定取值的是 P 与 A 的局部关系,P本身不并入AB。
为什么不能把所有元素一次合并后再找结束点?
插件每尝试一个结束位置,就把它暂当作分界。左侧合并后留下的最后一项作为 F1;右侧按时间处理,等得到两个标准元素 F2、F3,就用这三项比较。这个窗口检查完,不用更晚的元素回头改写它。
结束位置跟着 F2 的价格来源找:向上候选找高点来自哪条笔的端点,向下候选找低点来源。如果包含合并把这个极值移到了更晚的笔,插件会放弃旧窗口,按新的假设转折点重新检查两侧,不能继续借用新转折点之前的价格来构造 F2。接着还要看能否确认。
分型成立后,怎样区分缺口?
三项的高低关系满足分型后,再看 F1、F2 的价格范围有没有隔开。
这里比较的是这个候选位置旁边挑出的 F1、F2、F3,不一定是整条序列最早的三项。
- 向上线段:F1 最高价 < F2 最低价,记为有缺口。
- 向下线段:F1 最低价 > F2 最高价,记为有缺口。
- 边界相等归入无缺口。
这里看的只是两个特征区间之间有没有空隙,和原始 K 线是否跳空是两项检查。
| 检查结果 | 插件接下来的行为 |
|---|---|
| 局部形态成立、前两个元素无缺口 | 取得候选结束点,结合旧段基本结构与结束价方向校验 |
| 局部形态成立、前两个元素有缺口 | 保留候选,等待反向第二特征序列形成对应分型 |
| 第二序列确认前,原方向先出现严格更极端的端点 | 原候选失效,继续考察后续位置 |
看下图两组向上候选:蓝线是取来比较的向下笔,灰线是中间的向上笔。每个元素都来自一条笔,没有包含要合并。两组 F2 的高低点都比两侧高,只差 F1 高点与 F2 低点之间有没有空隙。
3.1.1 无缺口:第一序列分型成立后确认
向上旧段按下面三步检查:
- 第一序列的顶分型成立。 取得三个标准特征元素 F1、F2、F3;F2 的高点与低点都严格高于两侧。只有 F1、F2 时,还不能确认。
- F1、F2 无缺口。 F1 最高价 ≥ F2 最低价,相等也归入无缺口。
- 结束点通过整体校验。 取 F2 最高价的真实来源位置作为旧段结束点;此前旧段须至少三笔、前三笔严格重叠、末笔方向与旧段一致,且结束价高于起点价。
三项都满足,旧段就能转为实线,不用再等第二特征序列,也不用额外等下一笔。留意结束位置:F3 到位时才知道条件齐了,但线仍结束在前面 F2 的高点来源处。
把下图从左往右看:10 → 20 → 12 → 25 → 15 → 22 → 13。挑出的 F1=[12,20]、F2=[15,25]、F3=[13,22],中间高点25 > 20、22,低点15 > 12、13,两组都通过;再看20 ≥ 15,前两项无缺口。到13这一步,确认条件齐了,旧段仍结束在较早的25。
换成向下旧段,就看第一序列底分型,F1 最低价 ≤ F2 最高价归入无缺口,结束位置取 F2 低点的真实来源。整体条件通过后,旧段确认结束。
3.1.2 有缺口:等待第二特征序列确认
有缺口时,先把结束点留下,继续等。插件从这个候选点开始,按反方向选取笔、处理包含,再比较第二组特征序列。
| 原候选线段 | 第一序列的局部形态 | 反向候选 | 第二序列取哪些笔、等待什么 |
|---|---|---|---|
| 向上线段 | 顶分型 | 向下 | 取向上笔区间,等待底分型 |
| 向下线段 | 底分型 | 向上 | 取向下笔区间,等待顶分型 |
插件在这里采用的检查方向是:向上旧段等第二序列底分型,向下旧段等顶分型。例如 [20, 25]、[15, 24]、[18, 27] 这三项,中间高点24、低点15都比两边低,满足底分型比较。
第二序列仍按时间往后处理,一旦首次满足分型条件,就保留这次确认,不让更晚的包含合并回头撤销它。等的过程中,还要看旧候选有没有先失效;碰到某个价格,或者单条反向笔变长,都还不足以替代这组检查。
先看下图上半部分。F1=[5,10]、F2=[20,30]、F3=[15,25] 已经通过顶分型比较,但 10 < 20,前两项之间有缺口。所以这时只能把30留作候选,还不能确认旧段结束。
下半部分接着往后走。候选点之后的向上笔依次给出 T1=[20,25]、T2=[15,24]、T3=[18,27]。中间高点24、低点15都比两侧低,第二序列底分型成立。到 T3 终点27,旧段才取得确认依据,结束位置仍在30。 在这之前,向上端点25、24、27都没严格高于30,候选没有先失效;旧段的整体条件也要通过。
3.2 路径二:第一笔破坏后的成段确认
这条路径从第一反向笔看起。它先要满足笔破坏条件,再往后等反向笔满足成段确认条件。也就是说,发生笔破坏以后,旧段还可能需要继续等待。
这一步与前面的特征序列分别检查。向上旧段要满足:
- 候选前的旧段至少三笔,前三笔严格重叠,最后一笔与旧段同向。
- 第一条向下笔的终点,低于或等于旧段中某条较早向上笔的顶点;这条较早向上笔与第一条向下笔之间至少隔着两笔。比较的是后底与前顶,不要求跌破旧段此前的底。
- 从候选端点开始至少已延伸出三笔,后续向下笔终点再次严格低于第一条反向笔终点,且在此之前,与旧段同向的向上笔没有严格高于候选结束价。
向下旧段把高低方向反过来。看等号时,留意下面两处差别:
- **笔破坏与结束确认:**第2项允许价格相等;第3项要求后续反向笔严格越过第一反向笔终点,仅回到该终点还不能确认结束。
- **候选失效位置:**确认之前,与旧段同向的笔严格越过候选结束价,候选才因此失效;仅回到该价格,不会因此失效。向上旧段检查是否严格更高,向下旧段检查是否严格更低。
数据还没够,就继续等。这条路径把结束位置放在第一反向笔开始之前的那个真实端点,不要求第一特征序列先出现常规分型。笔破坏可以取等号,后面的结束确认仍要严格越过第一反向笔终点。
看下图,前面是 10 → 20 → 14 → 25,共同区间为 [14, 20]。第一反向笔从25到18,18 ≤ 较早前顶20,已经满足笔破坏比较;18虽然还高于前底14,也没有关系。被比较的前顶20所在笔与第一反向笔之间,正好隔着 20 → 14、14 → 25 两笔。
接下来分两种后续:先到22、再到16,16严格低于第一反向笔终点18,旧段就确认结束在25;如果还没确认,先到26,高于候选价25,那么25处的结束假设失效。图里第二、三幅分别画了这两种结果。
3.3 两条路径都有结果时,怎样选择?
插件分别检查两条路径,再按下面的顺序选择:
- **一条已确认、另一条还在等:**采用已确认的结果,待确认候选不会把它挡住。
- **两条都已确认:**比较结束点在笔序列里的位置,优先采用位置更早的有效结束点。这里比较的是结束点位置,不是谁先取得确认依据。
- **两条都待确认:**优先保留位置更早的候选,继续等待。同一位置上,两条路径都已确认时采用特征序列的结果。
选出的结束点仍须通过线段整体检查。这个取舍顺序是插件的实现约定。 第71课说明了假设转折点及其检验方法,但在本页核对的第67、71、78课中,没有找到“两条路径分别得到不同结束点时,应按位置还是确认时间排序”的明确规定。
这也会带来一种看起来像“实线往回改”的情况。例如:
0 → 10 → 5 → 30 → 20 → 25 → 8 → 15 → 6
先看25处:第一反向笔25→8,8 ≤ 较早前顶10,满足笔破坏。随后8→15→6,6严格低于第一反向笔终点8,中间15也未高于25。走到6时,25处取得确认依据,插件先采用这个结束点;更早的30处仍在等待第二特征序列。
再追加 →16 →9 →18。30处的第一序列已有顶分型,但F1=[5,10]与F2=[20,30]之间有缺口,10 < 20,所以要看后续第二序列。图中四条向上笔给出 [20,25]、[8,15]、[6,16]、[9,18]。中间两项包含,按前置非包含元素确定的局部向下方向合成 [6,15]。
整理后是 [20,25]、[6,15]、[9,18]:中间高点15低于两侧25、18,低点6也低于两侧20、9。到18,第二序列底分型成立,30处取得确认依据。 在此之前,向上端点25、15、16、18均未高于30,候选没有先失效。
此时两条路径都确认,插件改用位置更早的30,并从那里重新检查后续线段的衔接。图中把结束点25、30和取得确认依据的时点6、18分别标出,核对时要分开看。
因此,即使前面的笔没有改变,只追加后续数据,也可能因更早候选后来得到确认而调整已有划分。 这和原方向出现严格更极端的端点、使候选失效,是两种不同的处理。
4. 确认与显示:结束点位置与实线出现时间
最后再看旧段的基本结构和两端价格:向上段的结束价必须高于起点,向下段必须低于起点。这一遍没过,就放弃这个候选,接着往后找。
| 线型 | 显示规则 |
|---|---|
| 实线 | 当前输入下通过确认检查的线段 |
| 虚线 | 已通过起始检查、仍待确认的线段;先以第三笔终点作为绘制端点,之后只由同方向更极端的笔端点推进 |
虚线有时停在前面,后面几笔却还在参与计算。线画到哪里,和插件已经看到哪里,可以不同。
比如旧段结束在25,是后面走到13才确认的:实线会在那时出现,但终点仍留在25,不会挪到13。看某一条线是否符合规则,除了线型何时变化,也要回到候选位置和后续笔一起看。
4.1 输入更新时怎样核对?
实线表示这条线段在当前输入和候选选择下通过了确认检查,不表示它以后一定保持原样。只追加后续数据,也可能让更早的候选取得确认依据,插件会按两条路径的取舍顺序重新选择结束点,再检查后续衔接。
另外,实时 K 线也可能改变前面的分型、笔端点或确认状态;底下的笔变了,线段就得跟着重新检查,见笔的更新说明。
换周期、复权、历史范围或笔模式,也会换一组输入。实时页面跟着 K 线更新重算;结构回放则用增量计算,从受影响的位置往后检查。重算之后,原有条件没变的线段仍可能保持原样。
想看一条线从虚线变实线,可以做结构回放,同时记住结束点在哪里、确认发生在哪一步。
4.2 面板有哪些相关设置?
线段图层默认打开,改过并保存后会沿用你的设置。关图层只隐藏线,计算仍继续。面板没有单独的缺口开关,也没有“严格/宽松线段”;严格/宽松选的是笔模式,笔变了才会影响线段,见参数总览。
5. 画线规则速查
| 核对项 | 插件的实现规则 |
|---|---|
| 输入 | 使用笔序列,末端可能包含待确认笔 |
| 起始检查 | 前三笔高点的最小值严格大于低点的最大值;交集只剩一个价格点不通过 |
| 方向与衔接 | 名称取自第一笔,只标识连线方向;已有已确认线段后,从共同端点连续衔接 |
| 特征元素 | 取候选方向的反向笔区间;两套序列均按前置非包含元素确定局部合并方向;第一序列候选分界两侧不跨界合并 |
| 第一序列分型 | 向上候选检查顶分型,向下检查底分型;高低点两组均严格比较 |
| 缺口 | 向上比较 F1 高点与 F2 低点,向下比较 F1 低点与 F2 高点;相等为无缺口 |
| 第二序列 | 有缺口时,向上旧段等待反向序列底分型,向下旧段等待反向序列顶分型;同时检查候选是否先失效 |
| 两条路径 | 已确认结果优先于待确认候选;都已确认时,取位置更早的有效结束点,不按确认时间排序 |
| 结束点 | 取真实来源端点;候选前笔结构、末笔方向与结束价方向须通过校验 |
| 虚线端点 | 第三笔终点作为初始位置,后续只由同方向更极端的笔端点推进 |
| 更新边界 | 更早候选后来取得确认,也可能重选结束点并重查后续衔接;基础笔或输入设置变化时同样重新核对 |
快速查某个条件可以用上表;想和其他软件对照,建议先把笔序列对齐,再比较这些处理步骤。
6. 常见问题
6.1 已经三笔,为什么还没有线段?
先看前三笔是否有一段带宽度的共同区间,再看能否从上一段端点接上。这里数的是笔,不能拿原始 K 线数量代替,见起始图解。
6.2 为什么虚线端点不跟着最新反向笔移动?
因为反向笔主要在帮助判断旧段何时结束,虚线仍指着当前候选终点。只有同方向的后续笔出现更极端端点,才会把虚线移到那个新端点。两条检查路径见特征序列和第一笔破坏后的成段确认。
6.3 为什么结束点在前面,实线却到后来才出现?
结束点在候选处,确认却要等后续笔。所以后面条件齐了,线会变实,但终点仍留在前面。有缺口时,还要继续等第二序列,见特征序列确认。
6.4 发生笔破坏,就能确认原线段结束吗?
还不能。这条路径要继续看反向笔能不能满足成段条件、原候选有没有先失效,见第一笔破坏后的成段确认。另一条特征序列路径单独检查分型和缺口;条件没齐时,旧段继续等。
6.5 插件对笔与线段分别检查哪些条件?
图上两者都是线,计算时用的材料和确认方式却不同:
| 对比项 | 笔 | 线段 |
|---|---|---|
| 计算输入 | 包含处理后的标准 K 线与顶底分型 | 已生成的笔序列 |
| 连接与划分 | 顶底分型连接,须通过价格、间隔及不共用标准 K 线等检查 | 先查前三笔共同区间,再查两条结束确认路径 |
| 确认依据 | 合法反向笔提供前一笔的确认依据 | 特征序列确认,或第一反向笔造成笔破坏后的成段确认 |
所以,看到三笔只是检查的起点,后面还有区间和结束条件要看。笔自身怎样连接,见笔的画线规则。
只想看线段时,可以关掉其他图层,把画面留清楚些;关闭显示不影响内部计算。中枢矩形则用已经确认的线段来计算区间。
如果想查图上某一段,可以先从它开头的三笔看起,再沿着两条路径找结束依据;矩形的位置有疑问,接着看中枢画线规则。
6.6 前面的笔没变,为什么已有实线仍会调整?
可能是位置更早的候选后来也得到了确认。两条路径都确认时,插件按结束点位置选择,而不是固定保留先取得确认依据的那一个。因此,只追加数据也可能重选结束点,并重新检查后续线段。具体例子见两条路径怎样选择。
