Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

K线包含和分型处理

首先我们回顾一下在缠中说缠原文中对顶底分型的定义:

  • 顶分型:第二个K线高点是相邻三个K线高点中最高的,而低点也是相邻三个K线低点中最高的
  • 底分型:第二个K线低点是相邻三个K线低点中最低的,而高点也是相邻三个K线高点中最低的

但是K线并不总是那么标准,相邻的两个K线可能存在包含关系,所以禅师引入了包含关系的处理,把原始的K线序列经过处理后,变成没有包含关系标准K线序列。

如果完全按照原文中的规则进行包含处理和识别分型,也并没有什么歧义,但是在最终的图形中会出现分型顶点前后出现毛刺的情况(也就是分型顶点并不是最高最低点)。

很长的一段时间我们都在寻求一种处理算法,要求能规避掉这些毛刺的出现,今天这篇文章也是为这个目的而生,这里会努力提出一套新的处理算法,并且在fqchan01中来实现这套算法。

大家还记得我们以前定义过一个叫做WAVEOPT的笔控制参数吗,在fqchan01中我们也沿用这个定义。我么用WAVEOPT个位数上的数字来控制选用哪种包含的处理算法。

  • 如果个位数上是0,就采用原文中的包含处理方法,不做任何修饰。
  • 如果个位数上是1,就采用第一种修正算法。
  • 如果个位数上是2,就采用第二种修正算法。

也就是在这里我们会提出两种修正算法。我们先从三种方法都有的处理逻辑开始阐述,然后再分别阐述三种处理逻辑的不同部分。

起始K线的方向和包含处理

当处理包含关系的时候,做向上处理还是做向下处理,要先定义什么是向上什么是向下,缠师是这样定义的:

假设,第n根K线满足第n根与第n+1根的包含关系,而第n根与第n-1根不是包含关系,那么如果 ,那么称第n-1、n、n+1根K线是向上的;如果 ,那么称第n-1、n、n+1根K线是向下的。

很显然,在这个定义中,如果n=0那么是不是就玩不下去了,所以我们还是需要一个定义来没有遗漏且精确地描述出K线方向的判断:

K线包含关系处理规则(第一种修正算法)

基本定义

  • 为第 根K线,其高点为 ,低点为

初始方向确定(n=0时)

  1. 查找最小的 使得 无包含关系
  2. 方向判定:
    • 方向向下
    • 方向向上

后续K线处理(n>0时)

假设 已处理, 为待处理K线:

情况1:前包含关系

条件: 包含

  • 方向继承:
    • 向上 → 向上,做向上包含处理
    • 向下 → 向下,做向下包含处理
情况2:后包含关系
  1. 单根包含

    条件: 仅包含

    • 这也是方向继承
    • 向上 → 向上, 作向上包含处理
    • 向下 → 向下, 作向下包含处理
  2. 多根包含

    条件: 包含

    • 时:
      • 向上 → 向上, 作向上包含处理
      • 向下 → 向上, 作为独立K线处理(特殊K线)
    • 时:
      • 向下 → 向下, 作向下包含处理
      • 向上 → 向下, 作为独立K线处理(特殊K线)

至此,我们把K线方向的判断和包含处理做了完整的定义。

K线包含关系处理规则(第二种修正算法)

这里我们还要提出另外一种包含处理方法,他和第一种修正方法基本一样,区别只是后包含关系中的第2种情况处理方式不同,下面我给出精确的定义。

如果 后包含 , x>1:

  • 时:
    • 向上 → 向上, 作向上包含处理
    • 向下 → 向上, 做向下包含处理,原 的包含K线取消(特殊K线)
  • 时:
    • 向下 → 向下, 作向下包含处理
    • 向上 → 向下, 做向上包含处理,原 的包含K线取消(特殊K线)

相信这样的定义已经完整了,可以根据喜好选择其中一种处理方式作为主要的划分手段。