
1. 项目概述为什么你需要一份“大全”如果你在通达信里折腾过指标公式肯定有过这样的经历想给某条线换个醒目的颜色翻遍手册也找不到那个该死的颜色代码想画个箭头标记买卖点却不知道用哪个图标函数或者想实现一个稍微复杂点的逻辑面对一堆函数名根本分不清哪个是算均线、哪个是算涨跌幅的。网上的资料要么零零散散要么版本老旧甚至互相矛盾。最后宝贵的复盘和策略验证时间全耗在了这些基础信息的查找和试错上。这份“通达信指标公式颜色代码、图标、函数大全”就是来解决这个痛点的。它不是一本死板的说明书而是一个从一线实战中沉淀下来的“速查手册”和“避坑指南”。我把自己这些年写公式、改源码、调试指标过程中高频使用的、容易出错的、以及那些官方文档语焉不详的细节全部整理了出来。无论你是刚入门的新手想快速上手画出自己的第一个指标还是有一定经验的老手希望提升公式的效率和美观度这份大全都能让你像查字典一样快速定位到你需要的东西把精力真正聚焦在策略逻辑本身而不是浪费在语法和参数上。2. 核心思路如何构建一份真正好用的大全一份好的工具手册绝不能是简单的罗列。直接扔给你几百个函数名和代码跟看天书没区别。我的核心思路是“场景化归类”和“实战化注解”。2.1 按使用场景重新组织内容通达信的公式系统很庞大但我们的使用场景是高度集中的。我不会按照字母顺序或者官方分类来排列那样效率太低。我会分为几个核心模块视觉定制模块这是最直观的需求。把所有关于“颜色”和“图标”的内容放在一起。颜色不仅给出代码更会说明在K线图、副图不同背景下的显示效果差异图标则会区分哪些是系统内置的哪些需要特殊函数绘制并附上实际显示效果的描述。数据获取与计算模块这是指标的骨架。将函数按功能重排比如“行情数据函数”开高低收、成交量、“引用计算函数”引用其它指标、周期数据、“逻辑判断函数”IF、CROSS等、“数学统计函数”MA、SUM、STD等。让找函数变成“按图索骥”。绘图与输出模块这是指标的皮肉。专门讲解DRAWICON,DRAWTEXT,DRAWLINE等绘图函数的高级用法和搭配技巧比如如何避免文字重叠、如何画延伸的射线。2.2 为每个条目注入实战经验这是本大全区别于任何官方文档的关键。每一个颜色代码、图标符号、函数我都会加上“实战笔记”。对于颜色代码我会注明“COLORRED红色在副图白色背景下很醒目但在主图红色阳线上几乎看不见建议慎用”“COLORLIBLUE淡蓝色画长期趋势线视觉上最舒适不刺眼”。对于函数绝不只写语法。比如REF(X, N)引用N周期前的X值我会强调“这是未来函数不它是通达信最常用也最安全的回溯函数。但要注意在公式开头用REF(CLOSE, 10)和用REF(C, 10)计算效率没区别但后者更简洁。”再比如MA(CLOSE, 20)我会补充“这是简单移动平均但通达信计算时对上市不足20天的股票会怎么处理答案是有多少天算多少天不会返回无效值这点在编写选股公式时很重要。”对于图标我会说明“DRAWICON函数用的图标编号在通达信不同版本经典版、金融终端版上可能有细微差异测试时务必在目标版本上进行。”这样编排的目的是让你拿到手就能用用了就能生效极大降低调试成本。3. 颜色代码详解不只是好看更是信息分层颜色在指标公式里绝不是为了花哨。它是信息分层和视觉预警的关键手段。一套严谨的颜色方案能让你在瞬息万变的市场中更快捕捉到信号。3.1 基础颜色与自定义RGB通达信的颜色系统分为三类系统预设颜色常量这是最常用的比如COLORRED红、COLORGREEN绿、COLORBLUE蓝、COLORBLACK黑、COLORWHITE白。还有COLORCYAN青色、COLORMAGENTA洋红等。实战注意COLORGREEN在A股市场通常代表下跌用于标记卖出信号或空头区域非常直观。但避免在绿色背景的副图上使用会导致看不见。亮度调节颜色在基础色后加LLight或DDark如COLORLIRED亮红、COLORDGREEN暗绿。亮色更醒目适合标记关键突破点暗色用于辅助线或背景区域避免喧宾夺主。自定义RGB颜色这是进阶用法格式为COLOR六位十六进制数如COLORFF8000表示橙色。你可以用任何取色工具获取你喜欢的颜色的RGB值需转换为16进制。重要技巧自定义颜色在个性化方面无敌但存在兼容性问题。你精心调配的颜色在别人的电脑上可能因为显示器色差或软件主题不同而显示差异。因此重要信号建议优先使用系统高对比度颜色如亮红、亮黄个性化颜色用于辅助线或装饰。3.2 颜色应用场景与搭配心法趋势线长期趋势用COLORLIBLUE淡蓝或COLORGRAY灰色稳重不抢眼短期趋势或通道线用COLORLIGRAY浅灰或COLORCYAN青色。买卖信号买入信号强烈推荐COLORRED红或COLORMAGENTA洋红卖出信号用COLORGREEN绿。可以搭配DRAWICON画上箭头颜色与箭头方向一致。区域填充用FILLRGN函数填充两个指标线之间的区域时颜色应选择半透明感强的如COLORLIGRAY浅灰、COLORLIGREEN浅绿。COLORBLACK黑填充要慎用会覆盖K线。踩坑记录我曾用COLORRED填充超买区域结果在红K线密集区整个图面一片血红完全无法分辨。后来改用COLORLIRED亮红并降低填充透明度通过STICKLINE函数的宽度参数间接实现效果就好多了。提示颜色使用的最高原则是“服务逻辑清晰第一”。避免在一幅图上使用超过4种主要颜色否则会显得杂乱干扰决策。4. 图标函数全解析让信号“跳”出来图标是比颜色和文字更强烈的视觉信号。正确使用图标能让你的买卖点、警示位一目了然。4.1 核心图标函数DRAWICON这是最常用的图标绘制函数。语法是DRAWICON(条件, 位置, 图标编号)。条件当这个条件成立时画图标。位置通常是某个价格比如CLOSE收盘价、LOW*0.99最低价下方1%等。图标编号这是关键。通达信内置了数十种图标编号从1开始。4.2 常用图标编号与选用指南下面是一个实战中提炼出的高频图标编号速查表图标编号常见图形推荐使用场景实战技巧1红箭头向上买入信号、金叉、突破最经典的买入图标辨识度极高。2绿箭头向下卖出信号、死叉、破位最经典的卖出图标与1号对应。3黄钻石重要警示点、关键价位不如箭头激进用于提示需要关注的位置。4红五角星强势启动点、主升浪起点视觉冲击力强用于标记自认为确定性高的机会。5绿五角星风险预警点、趋势可能终结与4号对应标记高风险区域。6, 7圆形图标一般性标记、辅助点比较中性用于标记如成交量异动等次要信号。23, 24笑脸/哭脸情绪化标记、策略验证点用于回测时直观标记盈利/亏损交易点增加趣味性。深度解析DRAWICON函数画出的图标是一个“点状”标记。它的问题是当信号在短时间内连续出现时图标会堆叠在一起难以分辨。解决方法是加入过滤条件。例如不是一出现金叉就画图标而是要求金叉同时伴随成交量放大CROSS(MA1, MA2) AND VOL REF(VOL,1)*1.5这样能大幅减少无效标记让真正的关键信号凸显出来。4.3 高级图标与自定义除了DRAWICON还有DRAWTEXT_FIX可以固定位置显示文字或简单图形但灵活性不高。真正的自定义图标需要用到BMP位图文件通过DRAWICON引用外部文件路径实现。但这涉及到文件路径依赖公式移植性极差除非是做完全自用的个性化面板否则不推荐。注意图标是给人看的不是给机器算的。过度使用图标会导致图表杂乱。一个核心原则是只在经过多重条件过滤后的、具有高置信度的关键位置放置图标。宁缺毋滥。5. 核心函数库深度拆解上数据与引用函数是指标的灵魂。我将超过百个函数分为几个核心组并挑出最常用、最容易用错的进行详解。5.1 行情数据函数一切的源头这些函数直接获取最基础的市场数据。CLOSE/C,OPEN/O,HIGH/H,LOW/L,VOL/V收盘、开盘、最高、最低、成交量。缩写和全称等效用缩写让公式更简洁。AMOUNT成交额元。常用于分析大盘或高价股比成交量更准确。ADVANCE,DECLINE上涨家数、下跌家数。用于编制市场广度指标判断整体情绪。关键细节VOL在通达信里默认是手数而很多Level-2数据或付费接口可能提供的是股数或真实成交额。编写公式时心里要有数进行跨市场或跨数据源比较时可能需要单位换算。5.2 引用与回溯函数穿越时空的钥匙这是编写任何逻辑公式的基础。REF(X, N)引用N周期前的X值。这是最重要的函数之一。例如REF(CLOSE, 1)就是昨收。几乎所有技术指标如涨跌幅、动量的计算都离不开它。深度理解REF不是未来函数。它只是在当前时刻去读取历史记录中固定位置的数据。未来函数指的是引用“未来”的数据如ZIG波峰波谷函数REF是绝对安全的。MA(X, N)求X的N周期简单移动平均。算法是(X1X2...XN)/N。计算原理剖析通达信在计算上市初期的MA时例如上市第5天计算MA(C,5)它不会返回空值而是用前5天的收盘价计算。这保证了指标的连续性但也要意识到上市初期的均线意义有限。EMA(X, N)指数平滑移动平均。给予近期价格更高的权重反应更灵敏。与MA的核心区别EMA的计算依赖前一天的EMA值是一个递归过程。公式为今日EMA α * 今日收盘价 (1-α) * 昨日EMA其中α2/(N1)。这意味着EMA没有MA的初期计算问题但从第一个周期开始就包含所有历史数据的权重影响尽管很微小。EMA常用于MACD、KDJ等指标。HHV(X, N),LLV(X, N)求N周期内X的最高值、最低值。常用于计算布林带、轨道线或寻找近期压力支撑。实战陷阱在计算“过去20天最高价”时HHV(HIGH, 20)和HHV(CLOSE, 20)结果不同。前者是20个最高价中的最大值后者是20个收盘价中的最大值。通常分析价格突破时用HHV(HIGH, 20)更合理因为它包含了上影线的试探。6. 核心函数库深度拆解下逻辑与绘图6.1 逻辑判断函数让指标“思考”CROSS(A, B)A从下方向上穿越B。金叉、死叉的判断核心。例如CROSS(MA5, MA20)表示5日均线上穿20日均线。极易出错点CROSS函数在穿越发生的当根K线返回值为1真之后均为0。很多人用它作为持续持仓信号这是错误的。它只是一个瞬时信号。持续持仓需要结合其他条件例如CLOSE MA20。IF(条件, 返回值A, 返回值B)条件成立则返回A否则返回B。这是公式里的“如果...那么...否则...”。嵌套使用复杂的逻辑需要嵌套IF。例如IF(CLOSEOPEN, IF(VOLREF(VOL,1), 1, 0.5), 0)表示如果是阳线再看是否放量放量返回1不放量返回0.5如果是阴线则返回0。清晰的缩进和注释对复杂嵌套至关重要。AND,OR,NOT逻辑与、或、非。用于组合多个条件。优先级在通达信公式系统中NOT优先级最高其次是AND最后是OR。当表达式复杂时强烈建议使用括号()来明确优先级避免歧义。例如A AND B OR C与A AND (B OR C)意义完全不同。6.2 数学统计与绘图函数从计算到呈现SUM(X, N)求N周期内X的总和。常用于计算均量线SUM(VOL, N)/N或累积指标如OBV能量潮的雏形。STD(X, N)求N周期内X的标准差。是布林带宽度计算的核心衡量价格波动率。DRAWTEXT(条件, 位置, ‘文字’)在图表上标注文字。比图标承载更多信息。排版技巧文字内容尽量简短。可以使用\n进行换行但兼容性不一定好。更可靠的方法是用多个DRAWTEXT语句通过微调位置参数如LOW*0.98和LOW*0.96来实现上下排列。DRAWLINE(条件1, 价格1, 条件2, 价格2, 扩展)画直线段。常用于连接两个重要高低点形成趋势线或通道。参数“扩展”的妙用当扩展参数为1时线段会向右无限延伸形成射线。这对于画趋势线、预测未来可能的支撑压力位非常有用。但记住这仅仅是视觉上的延伸没有计算意义。STICKLINE(条件, 价格1, 价格2, 宽度, 是否实心)绘制柱状线。功能极其强大不仅可以画成交量柱还能画彩色K线、在副图绘制自定义的带状区域。高级应用用STICKLINE可以实现条件填充。例如在MACD指标中用红色柱状线表示DIF在DEA之上绿色表示之下STICKLINE(MACD0, 0, MACD, 2, 0), COLORRED; STICKLINE(MACD0, 0, MACD, 2, 0), COLORGREEN;。这里的宽度参数2和是否实心参数0共同控制了柱子的粗细和外观。7. 公式编写实战从零构建一个多空隧道指标光说不练假把式。我们用一个融合了多种函数和绘图技巧的“多空隧道”指标作为实战案例将前面所有知识串联起来。这个指标旨在可视化价格的短期强弱通道。7.1 指标逻辑设计思路计算两条包络线上轨由近期最高价的移动平均构成下轨由近期最低价的移动平均构成。价格在上轨上方运行视为强势区多头隧道在下轨下方运行视为弱势区空头隧道之间为震荡区。用不同颜色填充区域并用图标标记价格突破轨道的瞬间。7.2 源码逐行解析{ 多空隧道指标 - 主图叠加 } N:20; { 定义周期参数可调整 } M:2; { 通道宽度系数可调整 } { 核心计算计算轨道 } HH : MA(HHV(HIGH, N), N); { 步骤1先求N周期最高价再对其求N日均线使轨道更平滑 } LL : MA(LLV(LOW, N), N); { 步骤1先求N周期最低价再对其求N日均线 } UPPER : HH * (1 M/100); { 上轨在HH基础上上浮M% } LOWER : LL * (1 - M/100); { 下轨在LL基础上下浮M% } { 绘制轨道线 } UPPER线:UPPER, COLORLIRED, LINETHICK2; { 画上轨线亮红色粗线 } LOWER线:LOWER, COLORLIGREEN, LINETHICK2; { 画下轨线亮绿色粗线 } { 区域填充根据收盘价位置填充不同背景色 } FILLRGN(CLOSE UPPER, UPPER, CLOSE), COLORLIRED; { 收盘价高于上轨填充红色区域 } FILLRGN(CLOSE LOWER, LOWER, CLOSE), COLORLIGREEN; { 收盘价低于下轨填充绿色区域 } { 注意FILLRGN填充的是两个数值之间的区域这里用收盘价和轨道线构成区域边界 } { 突破信号标记 } 突破上轨:CROSS(CLOSE, UPPER); { 收盘价上穿上轨 } 突破下轨:CROSS(LOWER, CLOSE); { 收盘价下穿下轨 } DRAWICON(突破上轨, LOW*0.99, 1); { 在上轨下方标记红色向上箭头 } DRAWICON(突破下轨, HIGH*1.01, 2); { 在下轨上方标记绿色向下箭头 } { 动态标题显示 } DRAWTEXT_FIX(1, 0.005, 0, 0, ‘多空隧道(‘ NUMTOSTR(N,0) ‘,’ NUMTOSTR(M,0) ‘)’) COLORWHITE; { 在画面左上角固定位置显示指标名称和当前参数 }7.3 编写与调试心得分步测试不要一次性写完所有代码。可以先画出HH和LL两条线确认计算逻辑正确。再加上UPPER和LOWER看通道宽度是否合理。最后再添加填充和图标。参数优化N和M是关键。N决定通道对价格反应的灵敏度N越小通道越窄越灵敏噪音也越多。M决定通道的宽容度用于过滤假突破。需要通过历史回测寻找适合你交易品种的参数。性能考量本例中使用了HHV、LLV、MA嵌套计算量中等。如果应用于全市场实时选股需注意效率。对于更复杂的公式可以考虑使用REF来引用前一周期的计算结果避免重复计算。8. 高频问题与避坑指南实录这里汇集了我自己和众多股友在编写通达信公式时踩过的“坑”以及解决方案。8.1 公式编译与语法错误问题“行1: 缺少分号”、“未定义的标识符”。排查99%的语法错误源于粗心。检查所有语句是否以分号;结尾。检查所有变量和函数名是否拼写正确区分大小写。检查括号()是否成对出现。问题公式能编译但画不出线或显示异常。排查首先检查输出语句是否被正确执行。在公式末尾临时加一句测试输出:CLOSE, COLORWHITE;如果连收盘价线都画不出说明公式逻辑可能在某处中断如除零错误。使用DRAWTEXT在图上打印关键变量的值进行调试例如DRAWTEXT(ISLASTBAR, CLOSE, NUMTOSTR(你的变量, 2))在最后一根K线上显示变量值。8.2 未来函数与信号闪烁问题回测时信号完美实盘时信号却消失或后移“信号闪烁”。根源使用了包含未来数据的函数如ZIG之字转向、PEAK、TROUGH、BACKSET等。这些函数在K线未完成时其返回值可能不确定等K线走完后才修正。铁律用于实盘交易决策的指标和选股公式绝对禁止使用任何未来函数它们会制造“胜率100%”的假象。坚持使用REF、HHV、LLV等仅依赖历史已确定数据的函数。8.3 效率优化与卡顿问题公式加载缓慢拖动K线图时卡顿。优化策略减少循环引用避免在公式中使用需要逐K线迭代大量计算的复杂逻辑。简化绘图减少DRAWICON、DRAWTEXT的数量特别是避免在每根K线都触发的条件下绘制。用STICKLINE替代多个DRAWLINE。使用中间变量对于重复使用的计算结果赋值给一个变量。例如MA20:MA(C,20);之后所有用到20日均线的地方都用MA20而不是重复计算MA(C,20)。分公式加载将复杂的策略拆分成“预警公式”和“显示公式”。预警公式只做核心条件判断简洁高效显示公式负责复杂的绘图可以单独加载不影响交易信号触发速度。8.4 兼容性与移植性问题自己电脑上好好的公式发给别人或换台电脑就不显示或错乱。解决避免绝对路径和外部文件不要引用D:\\\\xxx.bmp这样的图标文件。慎用冷门函数或常量某些函数可能在老版本通达信中不支持。尽量使用最核心、最通用的函数集。注明参数与版本在公式开头用注释说明测试通达信版本如“通达信V7.6”以及关键参数的默认值。掌握这些颜色、图标和函数的细节并理解其背后的设计逻辑与陷阱你就能从“公式的搬运工”变为“策略的创造者”。这份大全的价值不在于你背下了多少代码而在于当你有任何关于指标可视化和逻辑实现的想法时能在这里快速、准确地找到解决方案让技术真正为你的交易决策赋能。