通达信压力支撑与空间时间主副图指标公式源码拆解

发布时间:2026/9/17 6:05:13
通达信压力支撑与空间时间主副图指标公式源码拆解 简介这份《空间与时间及压力与支撑》通达信指标公式源码文档面向有一定公式编写基础的技术分析爱好者与通达信用户聚焦主图指标中价格空间、时间周期与压力支撑位的量化表达。压缩包内仅 1 个 doc 文档体积约 720KB全部内容围绕主图源码展开含可直接引用的公式代码与函数注释便于在通达信中对照调试。源码以高位价、低位价连线标注价格区间用 CONST 固定高点周期与底点周期并通过 DRAWTEXT_FIX 把底点到高点幅度、近期低点到当前幅度、高点到当前周期等信息固定在图表上同时借助 CALCSTOCKINDEX 调用 999999 大盘数据计算大盘高低位幅度与当前涨跌幅度形成个股与大盘的对照视角。源码中还涉及分段日期条件、高价分级带与 DRAWBAND 色带绘制等细节。目前已有 67 人学习适合作为公式改写与指标排错的参考底稿。1. 从三张图来回切到一张主图看清空间、时间与压力支撑盘中问得最多的三句话是「上面压力在哪」「还有多少空间」「什么时候可能变盘」。多数人的做法是主图挂 BOLL 看通道副图挂 MACD 数时间再拿光标把前高前低量一遍三张图切完行情已经走掉一段。空间与时间及压力与支撑通达信指标公式源码要解决的就是把这套判断压缩进主图和副图两张画布主图用台阶线标出近端与远端的压力支撑副图把价格在区间里的相对位置换算成 0 到 100 的坐标同时在关键 K 线上打时间窗口标记。它不发买卖信号不做选股只负责给出行情当前所处的坐标。适合已经会写基础公式、希望图表信息密度更高、又不愿意依赖重绘类指标的通达信用户。下面从公式语言里压力支撑到底怎么算出来开始把源码一节一节拆开。2. 通达信指标公式源码里压力与支撑的计算底层逻辑2.1 赋值、输出与绘图三类语句的区别通达信公式每行以分号结尾花括号{}里的内容是注释可以跨行。写公式前先把三类语句分清楚否则最容易犯的错就是把中间变量写成了输出变量图上多出一堆乱线。赋值用:只参与计算不出图输出用:会在当前窗口画出这条线绘图函数如DRAWICON、DRAWTEXT、STICKLINE本身不产生新的数据线只在满足条件的位置画图形。{注释写在花括号里可以跨行} N:20; {局部变量只在公式内部使用} 压力:REF(HHV(H,N),1),COLORRED; {带冒号输出图上会画出这条线} DRAWTEXT(C压力,L*0.98,压),COLORRED; {纯绘图不产生新线}REF(HHV(H,N),1)的执行顺序是HHV(H,N)先算出最近 N 根 K 线的最高价REF再把这个结果往前推一根把当日排除掉。这一步不能省。如果直接把HHV(H,N)当压力线输出当天创了新高压力线立刻等于当天最高价这条线就永远贴着 K 线跑失去压力的含义。设置N的时候20 大致对应一个月的交易日60 对应一个季度120 对应半年取值越大线越粗越稳但被击穿后的参考价值衰减也越快。2.2 压力位与支撑位的四种取法对比同样是画一条压力线取法不同稳定性差别很大。下面这张表是实际写公式时最常遇到的四种路线各自的适用场景和翻车点都很明确。取法核心函数优点缺点适合的行情前高前低HHV/LLVREF数值确定不漂移箱体震荡时频繁刷新趋势与宽幅震荡均线类MA/EMA平滑连续单边行情里滞后中长期趋势筹码密集WINNER/COST反映持仓成本依赖历史数据完整性长期横盘后突破形态趋势线DRAWLINE 摆动点直观贴近人工画线依赖点位确认明确的上升下降通道前高前低是最基础也最不容易出错的路线代价是它只认极值不认成交量。均线类的EMA在通达信里是递归计算起点数据会影响前若干根 K 线的值所以回看很久以前的均线数值时要留个心眼。筹码类函数依赖流通盘和历史成交分布遇到长期停牌或者次新股WINNER的返回值会失真。形态线的问题在于摆动点的判定条件一旦放宽画出来的线就会随行情反复改位置。2.3 空间参数与时间参数的取值以及未来函数这条红线空间维度的参数主要就是区间长度N和位置阈值。位置阈值常用 20 和 80 作为超卖超买分界这两个数字来自区间位置的天然分布换成 15/85 会让信号更少但更极端。时间维度的参数相对固定斐波那契序列 5、8、13、21、34、55 是行业里沿用最广的一组也可以按需换成 3、7、11 这类质数序列但不要同时混用两套序列否则标记会糊成一片。提示ZIG、PEAK、TROUGH这类摆动类函数会随新 K 线重新计算历史值历史信号会跟着变。用了它们的公式任何回看都不可信。HHV、LLV、BARSLAST、REF、MA这些是确定性的同一根 K 线上的值不会因为后来的行情改变。判断一个公式有没有踩到重绘有个简单办法把图表滚动到最后几根记住某个历史标记的位置再插一根新 K 线或者换一台机器重新下载数据看那个标记有没有挪位置。挪了就是用到了重绘函数。3. 压力与支撑主图指标公式源码与逐行拆解3.1 主图公式完整源码下面这段是可以直接粘进公式管理器的主图叠加公式。它同时给出近端、远端两档压力支撑再叠一层箱体上下沿并在突破和跌破的位置打图标。{压力与支撑主图 参数 N20 M60} N:20; {近端窗口约一个月} M:60; {远端窗口约一个季度} P1:REF(HHV(H,N),1); {近端压力不含当日的前N周期最高价} S1:REF(LLV(L,N),1); {近端支撑不含当日的前N周期最低价} P2:REF(HHV(H,M),1); {远端压力} S2:REF(LLV(L,M),1); {远端支撑} 压力近:P1,COLORRED,LINETHICK2; 支撑近:S1,COLORGREEN,LINETHICK2; 压力远:P2,COLORYELLOW,LINETHICK1; 支撑远:S2,COLORCYAN,LINETHICK1; {箱体判定N周期收盘价标准差除以均价小于3%视为横盘整理} 平台:STD(C,N)/MA(C,N)0.03; 箱顶:IF(平台,HHV(H,N),DRAWNULL),COLORMAGENTA; 箱底:IF(平台,LLV(L,N),DRAWNULL),COLORMAGENTA; {向上突破箱顶} BX:CROSS(C,HHV(H,N)) AND 平台; DRAWICON(BX,L*0.99,1); DRAWTEXT(BX,L*0.97,破箱),COLORRED; {向下跌破箱底} DY:CROSS(LLV(L,N),C) AND 平台; DRAWICON(DY,H*1.01,2); DRAWTEXT(DY,H*1.03,破底),COLORGREEN;3.2 台阶线、箱体与突破标记分别用了哪个函数四档压力支撑用的是最朴素的做法——直接输出变量。通达信会把这些值连成一条台阶状的线数值只在条件触发时跳变视觉上就是一条条水平段比DRAWLINE画斜线更符合压力支撑的语义。如果一定要画成无限延伸的水平线可以换成STICKLINE在触发点加粗效果更醒目。箱体的核心是STD(C,N)/MA(C,N)0.03这句。STD是 N 周期收盘价的标准差除以均价得到相对波动率。3% 这个阈值是可以调的调小到 2% 只会识别出极窄的横盘调大到 5% 会把温和上升的趋势也误判成箱体。IF(平台,HHV(H,N),DRAWNULL)里的DRAWNULL是通达信的「空值」关键字条件不满足时返回空图上就断开不画这是控制线段断点的标准写法。CROSS(C,HHV(H,N))表示收盘价上穿 N 周期最高价配合平台条件只有在横盘状态下才算有效突破。DRAWICON的第三个参数是图标编号1 是向上箭头2 是向下箭头。DRAWTEXT里的文本要用单引号包住位置参数取L*0.97是为了让文字落在 K 线下方避免遮挡。3.3 公式管理器导入与主图叠加的三步打开通达信的公式管理器快捷键是 CtrlF。在「技术指标公式」分类下新建一个公式名称填「压力与支撑」画线方法选「主图叠加」。主图叠加和副图指标的区别就在这里选错了公式会跑到下方独立窗口去。把上一节的源码整段粘贴进编辑框点「测试公式」右下角提示编译成功后点「确定」。回到 K 线图在主图区域右键选择「主图指标」里的「压力与支撑」线就叠加上去了。如果图上看不到任何变化先检查是不是把公式建到了「条件选股公式」分类里那一类公式不会在图上画线。4. 空间与时间副图指标公式源码与共振标记4.1 空间位置副图把价格换算成 0–100 的坐标主图给的是绝对值副图给的是相对位置。这两者配合起来才有用主图告诉你压力在 12.8 元副图告诉你当前价位处在近 60 天区间的 87% 位置两个信息叠加判断就立体了。{空间位置副图 参数 N60} N:60; HI:HHV(H,N); {区间上沿} LO:LLV(L,N); {区间下沿} 位置:IF(HILO,(C-LO)/(HI-LO)*100,50),COLORWHITE,LINETHICK2; 超买:80,COLORRED,DOTLINE; 中轴:50,COLORGRAY,DOTLINE; 超卖:20,COLORGREEN,DOTLINE; 上方空间:(HI-C)/C*100,COLORYELLOW; {到区间上沿还剩多少百分比} 下方空间:(C-LO)/C*100,COLORCYAN; {到区间下沿还有多少百分比}IF(HILO,...,50)这个保护不能省。当区间内最高价等于最低价也就是出现一字板或者长期停牌后的第一根 K 线时除数HI-LO会变成 0通达信会返回无效值整条线会断掉。给个 50 的中性值兜底图形才连续。上方空间和下方空间两个输出的意义在于同样是位置 80如果上方空间只剩 3%那就是贴着天花板了如果上方空间还有 15%说明区间上沿本身离得远。这种位置高但空间足的情况是很多人只看位置指标会漏掉的。4.2 时间窗口副图BARSLAST 数关键节点后的周期数时间维度的做法是找到最近的极值点数它后面过了多少根 K 线落在斐波那契序列上就打标记。{时间窗口副图 参数 N60} N:60; LOWBARS:BARSLAST(LLLV(L,N)); {最近一次创N周期新低到现在的周期数} HIGHBARS:BARSLAST(HHHV(H,N)); {最近一次创N周期新高到现在的周期数} FIB:LOWBARS5 OR LOWBARS8 OR LOWBARS13 OR LOWBARS21 OR LOWBARS34 OR LOWBARS55; DRAWICON(FIB,L*0.995,1); DRAWTEXT(FIB,L*0.98,T),COLORWHITE; 低位周期:LOWBARS,NODRAW; 高位周期:HIGHBARS,NODRAW;BARSLAST返回的是上一次条件成立到当前周期的间隔数条件成立的当根返回 0下一根返回 1以此类推。这里用LLLV(L,N)作为「创阶段新低」的判定。注意NODRAW的作用是把变量输出成数值但不画线这样鼠标悬停时能在数值栏看到具体的周期数图上又不会多出两根线来干扰。注意BARSLAST找的是最近一次满足条件的 K 线。如果行情在这 N 根里创了两次新低它只认最近的那次前面的时间窗口就消失了。想要保留多个窗口得改成对每根创新低的 K 线单独计数。4.3 日线周线共振标记跨周期引用的写法单一周期的时间窗口容易给出太多标记用跨周期过滤一下只保留日线和周线都在低位的时刻噪声会少很多。通达信支持在公式里直接引用其他周期和其他指标的值语法是指标名.变量名#周期。{日周共振标记挂在主图上} 日位:空间位置.位置; {引用同周期副图的位置值} 周位:空间位置.位置#WEEK; {引用周线周期的位置值} 月位:空间位置.位置#MONTH; 共振低:日位20 AND 周位30; 共振高:日位80 AND 周位70; DRAWICON(共振低,L*0.98,1); DRAWTEXT(共振低,L*0.95,日月共振),COLORRED; DRAWICON(共振高,H*1.02,2); DRAWTEXT(共振高,H*1.05,高位共振),COLORGREEN;跨周期引用有个前提被引用的副图指标必须先存在于公式管理器中否则引用会报「未定义的标识符」。周线引用在日线图上取的是当前日线所属那一周的周线值所以同一周内的 5 个交易日周位的数值是一样的这也是它天然起过滤作用的原因。月位这里只是取来备用如果觉得条件太苛刻可以把共振低改成日位和周位两个条件不要三层一起上。5. 空间时间参数调优、跨周期验证与公式报错排查5.1 三个值得动手调的参数参数不是越多越好这套公式里真正需要按品种调整的只有三个。参数默认值调大的后果调小的后果建议场景N近端窗口20压力支撑更稳反应变慢反应快假信号多大盘股 25–30小盘股 15–20箱体阈值0.03更多震荡被识别为箱体只认极窄横盘高波动品种 0.04–0.05位置阈值20 / 80信号变少更极端信号密集短线 15/85波段 20/80N的调整要跟品种的换手率匹配。换手率低的品种20 根 K 线里价格变化本来就小前高前低被反复刷新线会一直跳换成 30 之后台阶线会稳定很多。箱体阈值在高波动品种上必须放宽否则几乎永远识别不出平台箱顶、箱底两条线会一直是空的。5.2 用跨周期引用做一次共振验证调完参数别急着用先做一次简单验证把同一套参数分别挂在 15 分钟和日线上看共振标记是否出现在你认为合理的位置。{验证公式挂在日线主图上对比两个周期的位置} 短位:空间位置.位置#MIN15; 长位:空间位置.位置; 差值:ABS(短位-长位),COLORYELLOW; 背离低:短位20 AND 长位50; DRAWTEXT(背离低,L*0.96,短超卖),COLORWHITE;ABS取绝对值差值这个输出越大说明短周期和长周期的位置分歧越大。在上涨途中短位掉到 20 以下而长位还在 50 以上往往对应回调而非趋势反转这正是这套指标想表达的「空间没走完、时间先到了」的状态。把这段验证公式跑上一段时间再回去决定箱体阈值和位置阈值要调成多少比拍脑袋定参数靠谱。5.3 公式管理器里最常见的四类报错报错提示真实原因处理办法未定义的标识符跨周期引用的指标名写错或指标还没建先在公式管理器建好被引用的副图参数个数不对函数括号里的参数数量或类型不符对照函数说明注意REF需要两个参数输出变量重名两个输出用了同一个名字改掉其中一个注意中文名也算图形显示为空除数为零或条件永远不成立给除法加IF保护放宽条件试算最容易忽略的是最后一条。(C-LO)/(HI-LO)这种写法在遇到一字板或者数据缺失的 K 线时会直接返回无效值图上表现为整条线在某个位置断掉而且断点会随着数据下载情况变化。养成在每一处除法外头套一层IF的习惯能省掉大量排查时间。另一类高频问题是公式建在了错误分类下画线方法选了「副图」结果公式能编译通过但主图上看不到——回到公式管理器的属性页里改一下画线方法就行。本文还有配套的精品资源点击获取