通达信K线实体和上下影线怎么算?MAX、MIN、ABS公式与异常检查

MAX MIN ABS拆解K线实体与上下影线的原创流程示意,非软件截图
原创K线数值关系示意,非行情或软件截图。

发布日期:2026年10月11日。上涨与下跌K线的实体上端不同,因此直接用HIGH-CLOSE计算上影线,只在部分情形下正确。可以用MAX和MIN先确定开收盘价的上下端,再用ABS计算实体长度,用总长度关系检查是否写反。

适用环境:提供同一根OPEN、HIGH、LOW、CLOSE数据且支持MAX、MIN、ABS的通达信公式环境。函数定义按官方红宝书核对;本文为原创数值分解模型,未做客户端实测,不构成形态选股或买卖建议。

一、先确定实体上下端,再计算长度

TOP:=MAX(OPEN,CLOSE);
BOTTOM:=MIN(OPEN,CLOSE);
BODY:ABS(CLOSE-OPEN);
UPPER:HIGH-TOP;
LOWER:BOTTOM-LOW;
RANGE:HIGH-LOW;

MAX(A,B)在当前计算位置比较两个值,MIN(A,B)同样是两值比较;ABS去掉差值的正负方向。BODY是实体长度,不包含涨跌方向;若还要区分方向,应另外保留CLOSE与OPEN的比较,不能从绝对值反推出阴阳线。

二、三根原创K线逐项复核

类型 O/H/L/C 实体 上影 下影 总长
上涨模型 10 / 13 / 9 / 12 2 1 1 4
下跌模型 12 / 13 / 9 / 10 2 1 1 4
开收相等 10 / 12 / 8 / 10 0 2 2 4

在第二行,HIGH-CLOSE等于3,但其中有2属于实体,不能都算上影线;正确上影线是13-MAX(12,10)=1。开收相等时实体长度为0,并不意味着最高价和最低价也相同。

在同根OHLC合法且口径一致时,UPPER+BODY+LOWER应等于RANGE。这是代数核对关系,不是对真实行情数据质量的证明;浮点数显示有舍入时也不必强行要求屏幕末位完全相同。

三、MAX不是最近N根的最高值

MAX(OPEN,CLOSE)比较当前根的开盘与收盘;HHV(HIGH,N)取一个窗口内的最高值。把HHV替换进实体上端,会把其他K线的高点带入当前根,改变问题本身。多根窗口的概念参见HHV与LLV周期说明,不要因为两者中文都含“最大”就混用。

四、出现负影线时先查数据,不要先取绝对值

通常同根数据应满足HIGH不小于OPEN与CLOSE,LOW不大于OPEN与CLOSE。如果计算出负影线,先检查是否混了上一根字段、复权口径、品种或自定义数据源。直接把UPPER外面包一层ABS,可能只是隐藏了不一致。

DATA_OK:HIGH>=MAX(OPEN,CLOSE)
    AND LOW<=MIN(OPEN,CLOSE)
    AND HIGH>=LOW;

这个输出仅检查三组数值关系。它不验证来源真实性、数据完整性、复权正确性,也不是过滤异常行情的完整算法。应先记录原始OHLC再决定如何处理异常,不能把被强行变成正数的影线当作合法数据。

五、计算占比前处理零区间

如果HIGH=LOW,总长度为0,BODY/RANGE就会遇到除零。本文不提供看似通用的占比公式:先明确零区间应标记无效、单独分类还是跳过,再选择相应保护方法。不要未经确认就把“除零返回什么”当成跨版本保证。

基础语法见选股公式入门;条件分支与分母保护的限制见IF计算排错教程;完整入口见通达信教程中心。实体或影线长度只是描述数据,不证明后续上涨概率或盈利能力。

来源与限制

原始依据:通达信用户红宝书MAX、MIN、ABS与行情字段条目。计算公式和表格为原创推导;未验证特定市场、复权方式、盘中变动或手机版表现,不作胜率和兼容性承诺。