通达信HHVBARS和LLVBARS怎么用?高低点位置、窗口移动与并列值排查

发布日期:2026年10月15日。想知道最近的窗口高点离现在几根,应该看极值的位置,不是把最高价直接当周期数。HHVBARS和LLVBARS返回窗口内极值到当前的距离,窗口滚动后旧高低点被移出,距离可能突然变小,即使当前根没有创新高或新低。
适用环境:支持这两个函数的通达信公式编辑环境。本文依据官方用户红宝书,源码与数表为原创教学模型,未做具体客户端实测。先使用独立测试指标,数据并列、样本不足及不同版本的边界必须在实际环境核对。
一、返回距离,不是最高价或最低价
HHVBARS(X,N)求N周期内X最高值到当前的周期数;LLVBARS(X,N)对应最低值。与HHV、LLV的极值数值区分开:一个结果通常是周期距离,另一个结果保持X本身的单位。当前根恰为唯一极值时,极值到当前的距离为0。
TOPAGE:HHVBARS(HIGH,3);
LOWAGE:LLVBARS(LOW,3);
这里N=3表示三个计算周期;日线、周线和分钟图的单位不同,不能一律写成三天。示例只输出位置,不给出开仓、止损或收益结论。
二、先用没有并列值的模型手算
为隔离位置问题,下表对同一条X序列同时找高低值。每个完整三根窗口的最大、最小值都唯一。先列出窗口,再找到极值所在根,最后用当前根编号减去它的编号。
| 当前根 | 三根X窗口 | HHVBARS(X,3) | LLVBARS(X,3) |
|---|---|---|---|
| D3 | 10,14,11 | 1 | 2 |
| D4 | 14,11,12 | 2 | 1 |
| D5 | 11,12,9 | 1 | 0 |
D4的最高值14位于D2,距离2根。到D5,D2移出窗口,窗口最高值变为D4的12,距离缩为1根。这次变化来自窗口边界,不是D5的9突破了此前高点。两种原因应分别记录。
三、N=0不代表所有可能的历史
官方说明N=0从第一个有效值开始统计。它依赖可供计算的有效数据范围,不意味着自动拥有上市以来全部数据。补充历史包、切换周期或改变加载范围后,起点和极值位置都可能改变。
不能只看图上显示的几十根便断言函数只计算了这些根,也不能把已有数据起点当作上市日。应同时保存加载范围、数据完整性及当前极值日期,再比较相同输入下的结果。
四、并列极值不要擅自认定取最近一次
本次核对的官方条目没有明确列出多个相同最高值或最低值时的选点规则。因此本篇不承诺一定取最早或最近那个。遇到并列高点,先制作含两个相同极值的最小测试序列,在自己的版本中记录输出。
还要检查显示精度:两个价格看起来相同,底层数值未必相等。复权、指数计算或小数显示都可能影响判断。未厘清这些差异前,不把“距离不是我想的那个点”归咎于软件错误。
五、定位错位按三个层次检查
- 固定品种、周期、复权和完整窗口长度。
- 单独输出X及HHV/LLV数值,先确认找的是HIGH、LOW还是自定义序列。
- 用唯一极值样本验证距离,再专门测试并列和缺失值。
- 检查是否又用REF移动了结果,避免把上一根的位置输出当当前结果。
- 把窗口移出造成的跳变与当前极值更新分开,保存两种情形的输入表。
函数可以用于定位已知窗口内的数据,不等于确认未来仍然有效的转折点。未完成K线及依赖公式的风险仍需单独审查,不能凭一次位置计算就保证整套指标没有未来数据。
来源与相关教程
原始依据为通达信用户红宝书《通达信公式-全部函数.docx》的HHVBARS、LLVBARS条目。本文只核对定义和原创算术,不补造并列值处理或客户端测试。相关入口:教程中心、HHV与LLV极值数值、REF与同根对齐、有效数据与样本范围。




