K线形态量化难点,卡在描述层与计算层之间那道缝。说出口的是「缩量回踩」「平台整理」这类模糊词,写进公式却要变成一组带参数的判断,中间的映射没有现成答案。本文以通达信金融终端个人版为准,不同版本的函数命名与入口措辞可能存在差异;公式里的参数值均为示意,需要按自己的数据区间调整。

描述层说的是感觉,公式层要的是可复现定义

「缩量回踩」这四个字里压着三件事:成交量比之前一段时间缩小,价格从某个高点回落,回落到某条均线附近。每一件事单独拿出来,都还要补一句「跟哪一段比、比到什么程度、以哪一根为基准」。描述层把三件事当成一个整体说出来,听的人凭经验补齐细节;公式层没有这种默契,参数字段缺一个就没法算。这就是K线形态量化难点里最先冒头的一处:需求本身还没被写成条件。

把模糊词摊开,能看清公式层要补哪些空。

描述层说法        量化层要补的字段
缩量回踩          成交量参照哪一段均量、缩小到什么比例以内
平台整理          区间取哪一根到哪一根、振幅除以什么、阈值取多少
放量突破          放量以哪根均量为基准、倍数取多少算突破

这张表里的每一行,落到公式都要指定一个根数 N 和一个阈值。N 和阈值定下来,判定结果就固定了;没定下来,同一段行情换个人写公式,选出来的结果就不一样。量化不是把模糊词照抄进代码,而是先决定用哪个可复现的数值替掉它。

描述层这些词也不是凭空冒出来的。它们来自看盘时对价格形态的经验归类,把多次见到的形状归到一个名目下,方便交流。这种归类对人有价值,代价是同一个名目在不同人的经验里对应的边界并不重合。写公式时先要做的,正是把这些名目重新切开,找出几个人都认可、并且能用数值描述的判定点。

形态是价格序列的相对关系,不是单点取值

再往下一层,是形态本身的构成方式。K线形态描述的是若干根 K 线之间的相对关系:区间的高低点在哪里,收盘价相对哪条均线在什么位置,成交量相对前一段是放大还是收敛。它不由某一根 K 线的单点取值决定,拿一个点位去套形态,方向就不对。

相对关系带来两个后果。形态必须绑定一个区间,区间起止不同,算出的相对关系就不同。判定结果是一个区间内的整体结论,不是逐根累积的开关量。这两点叠在一起,构成了K线形态量化难点里第二处不好绕开的地方:没法只给一个函数就得到「是不是平台」,必须连同区间一起交给公式。

把相对关系落到公式,常用两种处理。一种是把区间内的价格除以某个基准做归一化,让不同价位的形态能放在一起比较;另一种是保留原始数值,直接比高低点之差。前者适合跨标的选择,后者适合在固定标的上看形态的伸缩。两种处理不会给出相同的结果,选哪一种取决于要回答什么问题,选之前先想清楚比较的对象是什么。

三处难点:起止点、相似度、容差

把上面的铺垫收拢,形态量化会撞上三件事。

  1. 起止点怎么定。区间从哪一根算起、到哪一根结束,直接改变高低点和振幅。可以用固定根数 N 来框,也可以用条件触发来定起点,两种口径算出的结果不能直接互比。
  2. 相似度怎么量化。两个形态像不像,比的是形状还是幅度,要提前选一个。比形状就做归一化,比幅度就保留原值,选错方向,结果会朝不同方向偏。
  3. 容差怎么设。价格数据带噪声,判定条件留不留余量、留多少,决定了边界附近的样本算不算命中。容差取零,边界会变脆;容差放宽,又会把不属于该形态的样本拉进来。

这三处没有标准答案,只有口径到位和不到位的分别。把口径写进注释,下一次改参数时才知道自己动的是哪一层。

把「平台整理」写成一段可计算的公式

拿「平台整理」做一个具体例子。它的近似算法是:在一个 N 根 K 线的区间里,最高价与最低价之差,相对于这段时间的均价,落在一个阈值之内。写成公式是下面这样。

{ 平台整理的近似写法(示意,参数按需调整) }

区间振幅 = (HHV(H,N) - LLV(L,N)) / MA(C,N) * 100;
平台成立 = 区间振幅 <= 8;

{ N 取区间根数,阈值取百分数 }

这段公式把模糊词换成了三个可调项:区间根数 N、振幅的计算分母,以及阈值。N 取 20 与取 60,得到的是两种不同的区间;分母换成区间最低价,振幅的数值会变大。阈值从 8 调到 5,被判定为平台的区间会变少。改完参数,在同一段数据上重新选一次,命中集合的变化就是参数的效果。

参数     调整方向        命中集合的变化
N        20 到 60        区间拉长,短平台被并入更长的区间
阈值     8 到 5          判定收紧,命中数量减少
分母     均价换最低价    振幅数值整体变大,判定相应放宽

这张对照表说明参数的调整方向,不说明哪种取值更好。取值要和观察的目的绑定:想抓短促的横盘,就把 N 压小;想在更长的区间上找平衡,就把 N 放大。方向定了,再谈具体数值。

公式只是把口径固定下来,不保证这个口径贴合某段行情的实际走势。参数选择依赖数据区间,换一段数据后结论可能不同。

换周期之后,同一个形态的判定会变

周期是另一处容易忽略的变量,也是K线形态量化难点里容易被轻轻带过的一层。同一段行情,日线与周线上算出的 N 根区间,覆盖的时间跨度不同,高低点和均量的取值也不同。日线上判定成立的平台,切到周线可能因为区间被拉长而不再成立;反过来,周线上收敛的形态,在日线上会被拆成若干段小波动。

这种差异不是错误,是对不同观察尺度的如实反映。它带来一个操作上的要求:写形态条件时把周期写进口径,验证时在同周期内比较。把日线算出的阈值直接搬到周线,或者把周线的判定结果拿到日线里对照,比较的基础就不一致。

数据长度也参与这件事。周线上取 N 根区间,需要的历史比日线长。上市时间不长的标的,或者中间停牌较多的标的,数据起点不足,公式在早期区间会返回空值或跳过。把这段空值当成「形态不成立」还是「没有数据」,是两种不同的处理,记录口径时要写清楚,否则同一条公式在两只标的上会给出无法对齐的结果。

怎么验证,以及量化不了的部分

验证方法很直接:把条件挂到选股或副图,改一个参数,看命中的标的集合怎么变,再换一个区间重跑一次。集合的变化方向能帮你判断参数是在收紧还是在放宽。具体到通达信,可以在公式管理器里先点「测试公式」确认没有语法错误,再挂副图看输出。

下面这张表收拢几种排查时会对上的现象。

现象或提示 含义 处理
改参数后命中集合几乎不动 该参数在这段区间不敏感,或阈值离数据分布很远 换区间重跑,确认参数是否真的起作用
日线成立、周线不成立 两种周期的区间跨度不同,口径不一致 把周期写进口径,同周期内比较
边界样本时有时无 容差取零,判据在临界值附近跳动 给容差留一点余量,并记录取值
公式报错或输出为空 区间根数超过数据长度,或函数名与版本不符 先点「测试公式」,再核对数据长度

每验证一轮,把区间、周期、根数与阈值一起记下来。下次复现时能对上,改动才算留了痕。只记公式不记参数,过一段时间回头看,自己也认不出当时用的是哪一版口径。

量化不了的部分要承认。有些形态的成立与否跟盘口细节、消息面、板块联动有关,这些信息不在价格序列里,公式取不到。还有一些形态的边界本身就是渐变的,硬切一刀就会误伤边界样本。承认这些,比把公式调得更复杂更接近真实。这也是K线形态量化难点的一个收束:能量化的是可复现的那部分,剩下的交给人工判断,而人工判断不在公式的职责范围内。

本文只作技术研究口径,不涉及也不构成对任何标的的判断。

站内还有 通达信新手入门问答、通达信公式编写教程、量价形态与信号拆解 的条目,入门、编写与形态信号三块可对照查看。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。