
简介通达信精准卖点指标公式源码面向使用通达信软件进行股票技术分析的个人投资者、量化策略爱好者及有一定看盘经验的交易者核心解决卖出时机难判断、容易错过高点或过早离场的问题。指标以均价、动态主线、布林上下轨和确认线等为基础融合PPR/PR1压力支撑位、DMA动态均价、标准差通道等算法构建升势周期、底部质变、涨升、转势提前等多层次信号并在主图上用不同颜色和带状区域直观呈现便于识别冲顶、变盘和转势节点。指标信号层次丰富通过红色、绿色、黄色等多色线条与带状区域同时呈现主线、确认线、转势提前线等关键要素方便快速定位潜在卖点。资源包为1个doc文件大小仅522KB文档内附完整公式源码与关键参数说明复制到通达信公式管理器新建指标即可直接使用适合希望完善卖出策略并理解指标运算逻辑的学习者。目前已有144人学习下载无论用于盘中实时监控还是收盘复盘都能提供明确的参考依据。1. 精准卖点指标公式源码到底在算什么信号在通达信里复盘一只已经走弱的票总能找到一个当时该走的位置价格不再创新高、量能接不上、短期均线开始拐头。但这些特征分散在价格、成交量、均线三张图里等反应过来往往已经跌了两三天。doc文档里那份精准卖点指标的源码要解决的就是把这类特征合并成一个明确信号直接在K线图上画出来。卖点信号本质上是上涨动能衰竭的统计表达从阶段高点回落到一定比例、短均线下穿长均线、上涨时量能萎缩多个条件同时成立时给出提示。这套逻辑不依赖收费数据源通达信自带的HIGH、LOW、CLOSE、VOL和MA、HHV、CROSS、FILTER这些函数就能写完。适合想把卖出规则固定下来的短线交易者也适合刚开始接触通达信指标公式、需要一份可调参数模板的人。任何卖点指标都不是最高点提示器最高价是事后才能确认的公式只能在顶部走出来之后给确认信号。下面按信号设计、源码实现、导入回测的顺序把这件事讲透。2. 设计通达信卖出指标公式四个数据维度与未来函数边界先定规则再写源码。买卖类指标公式写得慢的都慢在信号定义上什么样的K线才算卖点参数为什么取这些值。通达信公式语言能拿到的原始数据就四类开高低收、成交量、流通股本、以及由它们派生出来的均线和统计量。卖点信号应该从价格、均线、量能、资金四个维度分别提取条件再合成一个判断。2.1 高点回落与均线死叉价格维度的卖点骨架价格维度解决趋势从哪一刻开始转弱。日线图上上升趋势结束的常见形态是价格不再创阶段新高或者创出新高后迅速跌回前期平台。通达信里用 HHV(HIGH,N) 取最近N根K线的最高价再与当前价比较周期高点:HHV(HIGH,10); 回落幅度:(周期高点-CLOSE)/周期高点*100;HHV(HIGH,10) 包含当根K线所以盘中最后一根K线的HIGH还在变化回落幅度会跟着动回看历史时每根K线都是定值这是回测与实盘信号差异的一大来源。回落幅度是百分比默认看10日高点一旦超过阈值就进入观察区间。观察周期N越小对短线顶部越敏感N越大波动过滤得越干净代价是信号更滞后。均线维度负责确认趋势方向最常用的是短周期均线下穿长周期均线即死叉。这里要注意CROSS(a,b)的语义是a从下方向上穿过b死叉要写成 CROSS(慢线,快线)反过来的CROSS(快线,慢线)是金叉快线:MA(CLOSE,5); 慢线:MA(CLOSE,10); 死叉:CROSS(慢线,快线);MA(CLOSE,M) 是M周期收盘价简单平均参数越小对价格越敏感。日线级别上5日与10日组合大约对应一周到两周的持仓节奏把慢线改成20日信号更晚但能过滤掉反弹途中的假死叉。价格与均线两个条件放在一起含义是价格已经从阶段高点回落且均线结构确认转弱。2.2 量缩、长阴与收盘位置量能维度的衰竭确认均线死叉一定是滞后的价格先于均线变化。能稍微提前的信号来自成交量上涨过程中量能递减说明接盘意愿在下降这是顶部区域最常见的量价背离形态。通达信里量能基准直接用VOL的均线五日均量:MA(VOL,5); 量缩:VOL五日均量*0.85; 长阴:(CLOSEOPEN) AND (OPEN-CLOSE)/(HIGH-LOW)0.5;VOL单位是手和流通股本CAPITAL配合还能算换手率。量缩定义为当日成交量低于5日均量的85%是宽松的预警条件长阴要求收盘低于开盘且阴线实体占整个振幅的一半以上表示空头在当天占据明显优势。振幅(HIGH-LOW)在涨停或一字板时会等于0公式里对分母做保护是后面导入阶段最常见的修改点。资金维度在免费通达信里拿不到逐笔大单数据很多流传源码里的内外盘差和L2字段在普通账户下会输出无效值。现实做法是用收盘位置做资金流向的代理收盘价越贴近当日最低价说明尾盘抛压越重。收在低位:(CLOSE-LOW)/MAX(HIGH-LOW,0.01)0.3;MAX(HIGH-LOW,0.01)把分母下限垫到0.01元避免一字板除零。0.3表示收盘价位于当日振幅的下30%区间。这个条件单看几乎每天都会出现只有和量缩、长阴叠加才构成缩量下跌且空头占优的衰竭特征这也是后面副图打分公式的基础。2.3 通达信公式的运行顺序与未来函数识别通达信公式语言是逐K线计算的序列语言。每一句要么是中间变量用:赋值只参与计算不画线要么是输出语句用:冒号赋值会画在图上。语句按先后顺序引用前一句定义的变量后一句才能用。输出语句可以写在任意位置但写多了绘图区会乱所以规范做法是全部计算用:只留最后几行输出。这套语言里最大的坑是未来函数。ZIG、TROUGH、PEAK、BACKSET这些函数引用当前K线之后的数据回看历史时每个拐点都标得又准又早实盘中信号却会漂移甚至消失。市面上不少标榜精准卖点的指标公式源码故意用ZIG来制造回看漂亮的假象导入时公式管理器会在测试提示里标出含有未来函数看到这个提示就要警惕。自己写公式时只用HHV、LLV、MA、REF、CROSS这类不跨未来的函数。如果想避免盘中信号抖动就把确认条件整体延迟一根K线REF(信号,1)取值上一根K线的结果代价是晚一天确认换来的是信号一旦出现就不会再消失。日线级别的买卖决策晚一天往往可以接受。3. 精准卖点指标源码实现主图标记、副图确认与参数表信号规则定好之后就是把它写进通达信公式语法。下面给两份可直接粘贴的源码一份主图、一份副图参数全部放在开头方便在公式管理器的参数列表里直接调整不想要参数区的把数字写进语句里也能跑。3.1 主图源码HHV高点回落与CROSS死叉的卖出标记{精准卖点-主图} N:10; {高点回溯周期} M1:5; {快线均线周期} M2:10; {慢线均线周期} R:3; {回落阈值, 单位%} 快线:MA(CLOSE,M1); 慢线:MA(CLOSE,M2); 周期高点:HHV(HIGH,N); 回落幅度:(周期高点-CLOSE)/周期高点*100; 死叉:CROSS(慢线,快线); 死叉距离:BARSLAST(死叉); 确认卖点:(死叉距离3) AND 回落幅度R AND 快线慢线; DRAWTEXT(确认卖点,HIGH*1.02,卖),COLOR00FFFF; DRAWICON(确认卖点,HIGH*1.06,2); STICKLINE(确认卖点,CLOSE,OPEN,3,0),COLOR00FF00;核心逻辑在确认卖点这一句BARSLAST(死叉)返回上一次死叉到当前的K线数死叉当根为0之后递增。死叉发生后3根K线内只要回落幅度突破阈值R、并且快线仍在慢线下方就确认为卖点。之所以留3根K线的窗口是为了解决死叉当天还没跌够、第二天跌够了却不再提示的漏洞。如果3根K线内始终没等到回落阈值这轮观察作废等下一次死叉重新开始。DRAWTEXT在K线上方写一个卖字DRAWICON的第三个参数是图标编号2在多数通达信版本里是红色向下箭头不同版本的图标表略有差异画出来不对时把编号在1到40之间逐个试一下。STICKLINE把确认卖点当根K线的实体涂成绿色三段输出共用同一个确认卖点箭头、文字、涂色会出现在同一根K线上。提示盘中实时计算时最后一根K线的HIGH、CLOSE都在变化确认卖点可能先出现再消失。收盘后数据定型信号才稳定做盘中判断时把语句改为 REF(确认卖点,1)只看上一根已收定的K线。3.2 副图源码量能衰竭打分与信号过滤{精准卖点-副图} N2:5; {量能均线周期} 振幅:MAX(HIGH-LOW,0.01); 五日均量:MA(VOL,N2); 量缩:VOL五日均量*0.85; 长阴:CLOSEOPEN AND (OPEN-CLOSE)/振幅0.5; 收低:(CLOSE-LOW)/振幅0.3; 抛压分:IF(量缩,1,0)IF(长阴,1,0)IF(收低,1,0); 警惕区:抛压分2; 衰竭信号:FILTER(警惕区,3); STICKLINE(抛压分1,0,抛压分,2,0),COLOR00FFFF; DRAWTEXT(衰竭信号,3.2,衰竭),COLOR00FF00;抛压分是把三个布尔条件相加得到的0到3的整数分分数为3说明量缩、长阴、收低同时成立是空头特征最完整的一天分数为2就进入警惕区。FILTER(警惕区,3)的意思是警惕区一旦触发之后3根K线内不再重复提示避免连续阴跌阶段每天画一次衰竭。STICKLINE按分数画彩色柱子柱子高度就是分数本身副图纵轴0到3的刻度直接可读DRAWTEXT里的3.2是文字锚定在纵轴3.2的位置如果同一副图里还有别的输出这个数字要按坐标范围调整。注意抛压分只是量能维度的打分不能单独当卖点用。它和主图的确认卖点配合一个看趋势结构一个看当天多空力量两者都满足时信号的可靠性才够。3.3 参数速查表与主图副图联动建议参数默认值建议范围作用调大或调小的影响N105-30高点回溯周期调大捕捉大级别顶部调小贴近短线波动M153-10快线均线周期调小更敏感假信号增多M21010-30慢线均线周期调大信号更晚稳定性提高R32-8回落幅度阈值调小触发频率变高调大过滤更严N253-10量能均线周期调大量缩判断更平滑反应变慢主图和副图如果各自独立调参两处参数会越改越不一致。常见做法是把副图的抛压分当作主图确认卖点的附加条件写成确认卖点 AND 抛压分2但抛压分的数值范围是0到3直接在主图里画线会贴在股价上正确的做法是只引用它参与判断不做画线输出画线仍然留在副图。这类把价格、均线、量能放进同一个公式做多因子打分的方式在量化指标公式源码里很常见好处是信号能解释坏处是参数一多就容易过拟合第一版建议只用默认参数跑一个月再说。4. 从doc源码到通达信公式管理器导入步骤、语法报错与回测doc文档里的公式源码不是拿来就能用的。排版、标点、编码三道关都要过一遍才能顺利进公式管理器。4.1 doc公式源码清洗成纯文本并导入公式管理器doc里复制出来的代码最常见的两个毛病全角标点和行首空格。Word的自动更正会把半角冒号、分号、括号替换成全角字符通达信公式解释器只认半角第一轮报错基本都来自这里。行首空格一般不影响解析但全角空格会直接报非法字符。处理流程在doc里选中源码部分复制后粘贴到Windows自带的记事本用记事本的编辑→替换把全角冒号、分号、逗号、括号统一替换成半角中文注释不用动另存为txt编码选ANSI文件名随意通达信中按 CtrlF 打开公式管理器选技术指标公式点新建名称填字母缩写如JZMM绘图方法选主图叠加或副图把txt内容粘贴进公式区点测试公式看到测试通过再点确定在K线界面直接输入JZMM回车即可加载。提示如果doc里是截图形式的源码不要照着截图手敲截图里的标点看不清手敲最容易把英文括号打成中文括号。能复制文本就复制文本。4.2 通达信指标公式的常见语法报错排查测试时的提示对应问题处理方式缺少分号行尾分号被doc改成全角或换行被合并成一行从报错行往上查半屏把中文标点改回半角变量未定义变量名拼写不一致或大小写写错通达信对定义顺序不敏感重点查名字是否完全一致除数为零HIGH-LOW或某个分母出现0值分母包一层MAX(...,0.01)含有未来函数源码里出现ZIG、TROUGH、BACKSET等实盘使用要承受信号漂移建议直接换掉信号在盘中消失最后一根K线数据未收定用REF(信号,1)延迟到次日确认除了字符问题输出语句过多也会导致画面异常。主图公式里如果出现两条以上以:结尾的价格线输出新建时绘图方法必须选对副图公式同时有0到3的抛压分和百分比类输出纵轴会互相挤压。规范做法是中间过程全部用:定义输出只保留画文字、画图标和画柱子的语句。4.3 用历史回测验证卖点信号的有效性信号写完先回测再谈使用。简单做法分三步把卖点条件整理成条件选股公式在功能→选股器→条件选股里选定历史阶段执行得到近一年的全部触发日期再在个股日线界面做数据导出右键历史数据→数据导出勾选日期、收盘价、成交量最后对每个信号出现后的5日、10日涨跌做统计。import pandas as pd df pd.read_csv(export.csv, parse_dates[date]) df df.sort_values(date).reset_index(dropTrue) signal df[signal].astype(bool) for hold in (5, 10): right, wrong 0, 0 for idx in df.index[signal]: if idx hold len(df): continue ret df.loc[idx hold, close] / df.loc[idx, close] - 1 if ret 0: right 1 else: wrong 1 print(f持有{hold}日: 卖出后下跌占比 {right / (right wrong):.1%}样本 {right wrong})导出文件里没有signal列需要在Excel里按条件选股结果的日期把signal标记为1或者用同样逻辑在Python里对收盘价重算。卖出后5日或10日下跌说明这笔卖出做对了下跌占比高于60%指标才有实战价值。同时还要看信号数量一年触发20次以上才谈得上可用一年只出两三个信号结构上再完美也难有指导意义。回测时每个顶部附近都出现了信号并不等于信号只出现在顶部统计整体触发率和连续亏损次数比盯着几个漂亮案例更可靠。5. 三个让精准卖点指标更稳的过滤技巧前三章的源码能跑通之后剩下的工作全部是减少假信号。下面三个过滤手段按重要性排序第一个必须加后两个按自己的持仓习惯取舍。5.1 用FILTER和BARSLAST消除连续重复信号确认卖点出现后经常连续几天都满足回落条件直接画线会连出三四个卖字。通达信的标准做法是FILTER去重卖点:FILTER(确认卖点,5);FILTER(信号,N)在信号第一次为真时输出1之后N根K线内即使信号再为真也输出0。N取5日线就是一周内只提示一次。想更灵活就改用BARSLAST看间距距上次卖点:BARSLAST(去重卖点); 新卖点:确认卖点 AND 距上次卖点10;BARSLAST返回上一次条件为真到当前的K线数把间距条件单独放开适合至少隔两个星期才允许出现新卖点的规则。两个函数都不引用未来数据盘中可以放心用。5.2 用换手率阈值排除无量死叉与放量出货误判换手率在通达信里用 VOL/CAPITAL*100 计算CAPITAL是流通股本单位是手所以成交量除以流通股本再乘100就是百分比。把换手率加进过滤条件能解决两类误判换手率太低的死叉经常发生在缩量阴跌途中卖出后容易踏空反弹换手率太高的死叉往往出现在放量出货之后信号成立但位置已经偏低。换手:VOL/CAPITAL*100; 有效卖点:去重卖点 AND 换手2 AND 换手12;2%和12%是按普通主板个股习惯给出的初始值次新股和北交所股票换手率整体偏高要按个股历史分位数调整。换手低于2%时成交量本身都不可靠指标数值的相关性会明显下降。5.3 把卖点条件改写成条件选股公式做全市场扫描卖点指标不一定只画在自己持仓的K线上。在公式管理器里新建条件选股公式把主图源码里的计算部分和5.2的换手定义整体复制过来最后一行改成选股输出就能在收盘后扫全市场选股:确认卖点 AND 换手2;条件选股公式只要求一个输出数值大于0就视为命中。盘中用实时行情跑一遍得到的是当日风险名单为了规避最后一根K线未收定导致的抖动可以把条件改为 REF(确认卖点,1) AND 换手2让系统只认上一根已收定的K线。选股公式和主图指标共用同一套计算段改参数时只改一处即可收盘后执行一次输出的列表可以直接导出Excel留档。本文还有配套的精品资源点击获取