你搜到一段通达信十字星公式,粘进编辑器跑出来几百条记录,翻回去看,图上那些明显是十字星的却一条都没有,反倒一堆小阳小阴混在里面。问题出在判定标准上:十字星不是「开盘等于收盘」这么一句就能写死的,它至少要有三个参数:容差多大算相等、两条影线各有下限、实体小到什么程度才叫小。这三个值定不下来,公式就只是在抄别人的口径。
一、开盘收盘的「相等」是带容差的相等
成交价以分为单位跳动,开盘与收盘恰好一模一样的交易日并不多。把条件写成 C=O,命中会稀得几乎为零;把条件放成「相差不超过一分钱」,命中的数量才回到可用范围。这一步的实质是把「相等」换成一个容差区间。
容差怎么给,先看价格的最小变动单位。A 股报价到分,一分钱是 0.01 元。对一只十几元的品种,0.01 元相对价格不到千分之一;对一只两三元钱的品种,0.01 元的相对比重就明显变大。用按元计的容差,低价品种会被放宽;用按比例计的容差,低价品种又会被收紧。两种量法各有利弊,选一种并写清楚,别在同一支公式里混用。
| 容差写法 | 表达式 | 适用与代价 |
|---|---|---|
| 固定容差 | ABS(C-O)<=0.01 | 跟着报价单位走,低价品种相对更松 |
| 相对容差 | ABS(C-O)/O<=0.001 | 跨价位可比,极低价品种容易被卡死 |
| 双条件 | 两者取或 | 兼顾两头,判据变复杂,复核要多一步 |
相对容差的分母还有一个选择:取今日开盘,还是取昨日收盘。十字星讲的是当天开盘与收盘的关系,分母取开盘更贴题;取昨收,就把跳空也算进了容差的分母里,跳空大的日子容差被放大。
二、实体要有上限,影线要有下限
只卡开收接近,会把一种线也收进来:一字线。一字线的四个价格全等,开收自然相等,可它既没有上影也没有下影,和十字星的外形正好相反。要把它排除,得给影线加下限。
阴线的上影是最高减开盘,下影是收盘减最低;阳线的上影是最高减收盘,下影是开盘减最低。因为十字星的开收接近,两个公式算出来的差别可以忽略,但写的时候统一用 ABS 包一层更省事:上影取 H-MAX(O,C),下影取 MIN(O,C)-L。这样阳线阴线共用一套判据,不用分支。
{ 十字星:容差 + 影线双下限 }
TOL:=0.01; { 开收容差,按元设定 }
K:=1.5; { 影线至少是实体的多少倍,设定 }
BODY:=ABS(C-O);
UP:=H-MAX(O,C); { 上影 }
DN:=MIN(O,C)-L; { 下影 }
XG:BODY<=TOL AND UP>=K*MAX(BODY,TOL) AND DN>=K*MAX(BODY,TOL);
表达式里用 MAX(BODY,TOL) 兜住实体为零的情形,实体为零时按一个容差计,避免左右两边都乘 0 导致条件恒成立。这个兜底不做,一字线会从影线条件这里漏进来,前面的排除就白做了。
三、和小实体阳阴线的边界在哪
实体小、影线也短的线,看起来是一根小阳线或小阴线,与十字星的区别只在于影线与实体的比例。比例阈值取多少,直接决定两类线怎么分。阈值取得低,十字星的范围变宽,小实体线被并进来;取得高,真正的十字星又被挡在外面。
判断的办法是把近期一段行情里自己认得出的几根线列出来,逐根算实体、上影、下影,看比例落在什么区间,再定阈值。这一步用副图输出三个中间量最直接:把 BODY、UP、DN 三条临时线画出来,对着图上一根一根核,比自己凭印象定阈值可靠。
还有一个容易忽略的边界:十字星与「长下影线」不是一回事。下影很长、上影几乎没有、实体在顶部的线,外形像一个倒 T,按上面的写法人会命中,因为它两条影线都满足下限。要单独区分,就再补一条对称性条件:上下影之间的比值落在一个区间内。
四、跳空与除权会改变判定
通达信十字星公式的判定用的是当日开盘与收盘,跳空本身不影响这两个值的关系。但跳空会影响另一样东西:容差的分母如果取昨收,跳空越大,容差被放得越宽,同一根线在跳空日更容易被判成十字星。分母固定取开盘,这个影响就不存在。
除权日的影响在另一处。未复权的价格序列在除权日会出现向下的跳空,当天的开收虽然只差一两分钱,但前收与开盘之间差了一大截。如果公式里还叠了幅度条件,比如要求当日涨跌幅在某个区间内,除权日会被误判。处理办法是把公式挂在前复权图上跑,或者在条件里排除除权日。
停牌复牌的日子同理。复牌首日的前收是停牌前最后一个交易日的收盘,中间的间隔公式并不知道,任何与昨收有关的分母都会失真。这类样本在统计里要单独标记。
五、周期与数据粒度带来的偏差
日线的开盘是集合竞价的结果,收盘是收盘集合竞价的结果;分钟线的开盘收盘是那一分钟内的首末成交。用同一套容差在日线与分钟线上跑,命中的是两种不同的形态。日线上一天只有一根线,分钟线上一天有几十根,后者里出现开收接近的机会自然多得多。
跨周期使用时,容差要跟着周期重定。分钟线的价格变动幅度小于日线,按元计的容差 0.01 元在分钟线上偏松,会命中大量窄幅震荡的线;相对容差稍好,但低价品种仍要单独看。参数与周期绑定,这一点在把公式搬到别的周期之前要先想清楚。
另一个偏差来自数据源。不同来源的日线数据,开盘价与收盘价取的是同一笔成交,但成交量与成交额的口径可能不同。十字星的条件不涉及成交量,这一项可以不管;如果公式里叠加了量能条件,就得分清用的是哪一套口径。
六、三段复盘:容差、影线、边界
通达信十字星公式写完之后,按三段复盘,能把参数调到可用的位置。
- 容差段:固定影线条件,只改容差,从一分钱开始逐档放大,看命中数量怎么变。数量在某档之后突然放大,说明那一档开始把小实体线收进来了。
- 影线段:固定容差,只改影线倍数,看一字线是否被彻底排除。还有残留,说明下限给得不够,或者兜底的 MAX 没加上。
- 边界段:把命中的记录按实体大小排序,看最大实体那几条是不是自己认得出的十字星。不是,就说明容差偏松。
三段做完,参数表里留下的就是这次分析的口径。日后要换宽严,只改参数,不动判据,改动前后也能对得上。
通达信十字星公式说到底是在给「像十字」这件事下定义。容差、影线倍数、对称性三个参数,定义了这支公式眼中的十字星。定义写清楚了,命中列表才有解读价值;定义含混,翻多少条记录也讨论不出结论。
站内还有 量价形态与信号拆解 的条目,讲单根 K 线的条件写法;指标资源选择与会员 讲怎么核对别人公式里的判定口径;通达信主图副图指标 讲把中间量输出到副图的办法。
本文只作技术研究口径,内容是 K 线形态的判定条件与参数设定,不涉及也不构成对任何标的的判断。文中容差与倍数均为示例设定,按自己的分析需要调整。
