从程序角度学缠论(五):线段

作者:大柳 · 首发:
原载作者博客,2020-12-30

接上篇《从程序角度学缠论(四):特征序列》

上篇文章完成了特征序列的合并与分型之后,我们直接连接所有找出的分型会发现:

这些情况该如何处理? 先看原文:

在标准特征序列里,构成分型的三个相邻元素,只有两种可能: 第一种情况: 特征序列的顶分型中,第一和第二元素间不存在特征序列的缺口,那么该线段在该顶分型的高点处结束,该高点是该线段的终点;特征序列的底分型中,第一和第二元素间不存在特征序列的缺口,那么该线段在该底分型的低点处结束,该低点是该线段的终点; 第二种情况: 特征序列的顶分型中,第一和第二元素间存在特征序列的缺口,如果从该分型最高点开始的向下一笔开始的序列的特征序列出现底分型,那么该线段在该顶分型的高点处结束,该高点是该线段的终点;特征序列的底分型中,第一和第二元素间存在特征序列的缺口,如果从该分型最低点开始的向上一笔开始的序列的特征序列出现顶分型,那么该线段在该底分型的低点处结束,该低点是该线段的终点;

强调,在第二种情况下,后一特征序列不一定封闭前一特征序列相应的缺口,而且,第二个序列中的分型,不分第一二种情况,只要有分型就可以。 上面两种情况,就给出所有线段划分的标准。显然,出现特征序列的分型,是线段结束的前提条件。 这个定义有点复杂,首先请先搞清楚特征序列,然后搞清楚标准特征序列,然后是标准特征序列的顶分型与底分型。而分型又以分型的第一元素和第二元素间是否有缺口分为两种情况。 显然,按照这个划分,一切同一级别图上的走势都可以唯一地划分为线段的连接,正如一切同一级别图上的走势都可以唯一地划分笔的连接。

—— 《教你炒股票 67:线段的划分标准》

其实,线段的划分,都是可以当下完成的,无非是如下的程序:假设某转折点是两线段的分界点,然后对此用线段划分的两种情况去考察是否满足,如果满足其中一种,那么这点就是真正的线段的分界点;如果不满足,那就不是,原来的线段依然延续,就这么简单。

—— 《教你炒股票71:线段划分标准的再分辨》

首先,线段和笔,都是有方向的,从顶开始的笔一定结束在底,同样,以向上笔开始的线段一定结束于向上笔,不可能一个线段,开始是向上笔,结束于一个向下笔。由于向上的笔的开始分型是底,而向下笔的结束分型也是底,换言之,一个线段,不可能是从底到底或从顶到顶,这是一个最基本的概念。 同样,正如同一笔不可能出现顶低于底的情况,同一线段中,两端的一顶一底,顶肯定要高于底,如果你划出一个不符合这基本要求的线段,那肯定是划错了。 由于图形不断延续,因此,除非是新股上市后最开始的一段,否则任何一段都是破坏前一段的,如果你的划分,不能保证前面每一段都是被后一段破坏,那么这划分肯定不对。线段的破坏是可以逆时间传递的,也就是说被后线段破坏的线段,一定破坏前线段,如果违反这个原则,那线段的划分一定有问 题。

—— 《教你炒股票78:继续说线段的划分》

在我看来,最关键的部分是67课和78课这两段,71课那是越看越懵的。

本文第一段指出的各种情况分述如下:

新的顶分型出现时,有三种情况:

  1. 前面没有线段:如果之前有底则连接底顶,向上新线段生成;否则,记录该点做为线段起点
  2. 前面的线段向上:新顶高于前顶时,线段延伸
  3. 前面的线段向下:新顶高于前底时,向上新线段产生,前线段终结

新的底分型出现时,也有三种情况:

  1. 前面没有分型:如果之前有顶则连接顶底,向下的新线段生成;否则,记录该点做为线段起点
  2. 前面是线段向下:新底低于前底时,线段延伸
  3. 前面是线段向上:新底低于前顶时,向下新线段产生,前线段终结

分析笔、线段这两种“线”在存储和计算是都有一个共同的特征,那就是只要记录该“线”终点的横坐标、纵坐标、类型(顶或底),就可以完全表达出该几何元素的特征了,并不影响在图表画线,由此得出线段的计算逻辑:

新的顶分型t出现时:
if 前点g不存在 then
    return g(t.x, t.y, t.type)
else if 前点g是顶分型 and t.y>g.y then
    replace(g, t.x, t.y) # 这里的含义是用t的属性覆盖g的,但g的唯一标识不变,以此来标识原g的延伸
    return g(x, y, type)
else if 前点g是底分型 and t.y>g.y then
    return g(t.x, t.y, t.type)

新的底分型t出现时:
if 前点g不存在 then
    return g(t.x, t.y, t.type)
else if 前点是底分型 and t.y<g.y then
    replace(g, t.x, t.y) # 这里的含义是用t的属性覆盖g的,但g的唯一标识不变,以此来标识原g的延伸
    return g(x, y, type)
else if 前点是顶分型 and t.y<g.y then
    return g(t.x, t.y, t.type)

从下面两图是由笔到线段的例子:

M15分钟下笔演化为线段

M1分钟下笔演化为线段

在“线段”这个层面,“当下”是指前线段终点到最新k线之间的走势,这段走势演化的可能性有两种:前线段延伸或转折。

缠析 —— 不用手画笔和线段,把力气花在看懂级别上。

介绍与下载:缠析 · 缠论自动画线工具(电脑版)

← 返回文章列表