通达信岛形反转公式要处理的对象,是两个方向相反的跳空缺口把一段 K 线夹在中间形成的孤岛。孤岛本身的长相不特殊,特殊的是它两侧各留下一个方向相反的缺口,这才是形态的骨架。把这句话翻译成可计算的条目,就落到两根相邻 K 线的高低点比较上。
下面按形态定义、缺口条件、参数化、误判场景、验证方法这个顺序讲,写法以通达信金融终端个人版为准。
一、形态定义:两个方向相反的缺口夹出一段孤岛区
跳空缺口在价格序列里的判定条件是明确的:两根相邻 K 线之间出现一段没有被覆盖的价格区间。向下缺口出现在后一根的最高价低于前一根的最低价时,向上缺口出现在后一根的最低价高于前一根的最高价时。缺口之外那一段没有成交覆盖的价格区间,就是当根留下的空档。
岛形反转把这个条件用两次。底部形态里,先出现一个向下缺口,隔若干根之后再出现一个向上缺口,两个缺口之间那段 K 线被单独隔开,成为孤岛。顶部形态方向反过来,先向上缺口、后向下缺口。
形态的成立条件有三个,缺一个都算不上:两个缺口方向相反;两个缺口之间至少有一根 K 线;两个缺口之间的间隔不超过设定的上限。第三条容易被漏掉,一旦不限间隔,两段相隔很远的缺口也会被算作同一个形态。
二、通达信岛形反转公式里缺口条件怎么落笔
通达信岛形反转公式把缺口写成相邻两根极值的比较,写法短,但两处的方向不能写反。向下缺口比较的是本根最高与前一根最低,向上缺口比较的是本根最低与前一根最高。前一根的值用 REF 带回一根。
向下缺口:HIGH<REF(LOW,1) 向上缺口:LOW>REF(HIGH,1)
这两行是最小骨架,放进公式管理器就能过语法。把两个条件再各加一个窗口条件,就得到可用的形态判断。
{底部岛形反转:窗口内先有向下缺口,当根出现向上缺口}
GAPDN:=HIGH<REF(LOW,1);
GAPUP:=LOW>REF(HIGH,1);
{COUNT 统计 N 根窗口内满足 GAPDN 的周期数}
ISLAND:=GAPUP AND COUNT(GAPDN,N)>=1;
COUNT(GAPDN,N) 返回最近 N 根里向下缺口出现的周期数,结果大于等于 1 就表示窗口内出现过向下的缺口。参数 N 与缺口宽度门槛的取值放到下一节展开。
三、缺口宽度与孤岛持续周期做成参数
裸的比较条件对缺口宽度没有要求,一根 K 线的高低价差很小,也可能构成缺口。把宽度做成参数,用百分比门槛过滤掉细小的空档。宽度用缺口那一侧的价格作分母,向下用前一根最低价,向上用前一根最高价。
{缺口宽度按百分比过滤,参数 G 表示门槛}
WIDTHDN:=(REF(LOW,1)-HIGH)/REF(LOW,1)*100;
WIDTHUP:=(LOW-REF(HIGH,1))/REF(HIGH,1)*100;
GAPDN:=HIGH<REF(LOW,1) AND WIDTHDN>=G;
GAPUP:=LOW>REF(HIGH,1) AND WIDTHUP>=G;
孤岛的持续周期用窗口参数 N 控制。N 取小,形态要求两个缺口贴得近;N 取大,中间允许夹更多 K 线。参数的取值没有通用答案,把 N 从 5 调到 20,同一段行情里被识别出的形态数量会跟着变,需要按想看的是短促形态还是宽松形态来定。
两个参数要一起调。宽度门槛调高之后,通过筛选的缺口数量下降;把窗口放大,能补回一部分。调参的时候一次只动一个,另一个固定,才看得出是哪一个在起作用。
四、误判场景对照表
缺口条件在价格序列上成立,不等于形态在行情里成立。下面这几类情形会让条件成立而形态不成立,按现象对照处理。
| 现象 | 含义 | 处理 |
|---|---|---|
| 缺口出现在除权除息的那一根 | 价格序列被除权调整,缺口是调整动作造成的,不是相邻两根交易留下的空档 | 检查当前复权设置,切换复权方式后在同一段上再算一遍 |
| 缺口落在上市后的前几根 | 上市初期的价格区间与之后不同,缺口来自首日定价 | 把上市初期的样本排除在统计区间之外 |
| 缺口落在长期停牌复牌的首根 | 复牌首根的价格跳空来自停牌期间累积的信息 | 把复牌首根单独标注,不与其它样本合并统计 |
| 开盘跳空,盘中把缺口补掉 | 日线上两根之间留了空档,分时上这一段被行情走过 | 用分时或分钟周期复核同一段,看缺口是否被回补 |
| 日线上有缺口,周线上没有 | 缺口是否成形随周期变化,周线的一根对应多个交易日 | 同一段在日线与周线上分别算,记录两次结果 |
这张表里前三条与数据本身有关,后两条与观察的周期有关。数据类的要从样本里剔除,周期类的要换到另一个周期上复核。
五、除权除息、复权设置与停牌复牌这几组假缺口
除权除息那一根容易误认。软件显示价格时按复权处理,把除权造成的价格台阶抹掉或者保留,处理方式不同,同一段里缺口出现的位置也不同。同一段行情在不复权与前复权下算出来的缺口数量可能不一致,这是显示口径的差别,行情本身没有变。
遇到这种情形,先记下当前复权设置,再切换另一种方式重算同一段。两种设置下都成立,才算数据层面的缺口;只在一种设置下成立,先当作待确认样本,不要直接计入形态统计。
新股上市初期的首根,与长期停牌复牌后的首根,属于同一类。这两根的价格跳空有明确来源,不是相邻两根交易形成的空档。把它们并入缺口统计,会让结果偏。做法是在数据准备阶段给这两类根打标记,算形态时按标记排除,标记规则写在表头备注里。
盘中回补这一类要在更细的周期上看。日线的两根之间留有价格空档,分时上这一段可能被行情走过,缺口就被填上了。同一段在日线与分时上结论不一致时,以实际想研究的那个周期为准,两处结论分别记录。
六、用 COUNT 和多周期对照做验证
通达信岛形反转公式写完,验证分两步走。第一步在公式管理器里点「测试公式」,先过语法;第二步把公式挂到主图上,看信号落在哪几根。语法通过不等于逻辑对,第二步才是看逻辑的地方。
{窗口内缺口的数量与最近一次缺口距当前几根}
GAPCNT:COUNT(GAPDN,N);
BARLAST:BARSLAST(GAPDN);
COUNT 给的是窗口内向下缺口的数量,BARSLAST 给的是最近一次向下缺口到当前根的距离。两个数一起看,能分辨「窗口内只有一个缺口且离得近」与「窗口内有多个缺口且离得远」这两种情形。形态要求的是前者,后者在数量上就露了出来。
第二步是多周期对照。同一段行情在日线与周线上各算一遍,看缺口是否同样成立。日线上成立、周线上不成立的一段,说明这个缺口没有跨过一个完整的周线周期,形态的级别要另作标注,不能与日线成立的那一批混在一起统计。
还可以把信号根之后的若干根单独看一遍:信号出现之后,价格朝缺口方向延续了多长,在多少根之内回到孤岛区。这一段不写进公式判断,只作为事后核对,记到复盘表对应的一列。
七、适用版本、验证顺序与边界
这篇的写法以通达信金融终端个人版为准。REF、COUNT、BARSLAST 在公式管理器里可以直接测试;不同版本的参数录入方式与提示措辞可能有差异,遇到报错先按提示行号回到源码核对,对不上就以官方版本说明为准。
把上面的内容收成一份可执行的顺序:
- 在公式管理器里新建公式,把缺口条件的两行先写进去,点「测试公式」过语法
- 加上窗口参数与宽度参数,用参数表分开录入,不要写死在源码里
- 挂到主图上看信号落在哪几根,逐根对照 K 线确认缺口方向没写反
- 切换复权设置,同一段再算一遍,记录两次结果是否一致
- 在日线与周线上分别算同一段,记录缺口是否同样成立
- 把上市初期、停牌复牌首根这两类样本从统计区间里排除,再看形态数量
边界:缺口条件只是价格序列上的一个比较,形态成立不代表别的东西成立。参数取值、复权口径、样本范围定下来之后,结果才是可重复的。
本文只作技术研究口径,不涉及也不构成对任何标的的判断。同一段行情,复权设置换一次、窗口参数挪一格,通达信岛形反转公式给出的结果就不一样,不把这些口径先固定下来,算出来的形态又怎么对得上号呢?
站内还有 量价形态与信号拆解 的其他条目,主图副图指标 里讲信号怎么挂到图上,回测与风险口径 里讲结果怎么复核,可对照查看。
