news 2026/9/18 16:22:19

通达信卖点指标源码解析:均线死叉与量能衰竭的量化实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通达信卖点指标源码解析:均线死叉与量能衰竭的量化实战

简介:通达信精准卖点指标公式源码,面向使用通达信软件进行股票技术分析的个人投资者、量化策略爱好者及有一定看盘经验的交易者,核心解决卖出时机难判断、容易错过高点或过早离场的问题。指标以均价、动态主线、布林上下轨和确认线等为基础,融合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; 长阴:=(CLOSE<OPEN) 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; 长阴:=CLOSE<OPEN 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的自动更正会把半角冒号、分号、括号替换成全角字符,通达信公式解释器只认半角,第一轮报错基本都来自这里。行首空格一般不影响解析,但全角空格会直接报非法字符。

处理流程:

  1. 在doc里选中源码部分,复制后粘贴到Windows自带的记事本;
  2. 用记事本的"编辑→替换"把全角冒号、分号、逗号、括号统一替换成半角,中文注释不用动;
  3. 另存为txt,编码选ANSI,文件名随意;
  4. 通达信中按 Ctrl+F 打开公式管理器,选"技术指标公式",点新建,名称填字母缩写如JZMM,绘图方法选主图叠加或副图;
  5. 把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(drop=True) 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留档。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 16:17:25

智慧园区建设指南:三个平台一个中心与大数据实战

简介&#xff1a;这份《2021年智慧产业园区解决方案》PPT面向智慧城市行业1-3年的需求分析师与产品人员&#xff0c;系统梳理了物联网、云计算、大数据和人工智能等技术在园区建设中的落地路径。资源包共1个pptx文件&#xff0c;大小10.56MB&#xff0c;内容以架构图和方案设计…

作者头像 李华
网站建设 2026/9/18 16:15:52

通达信牛熊万金油指标公式源码编写与导入排错实战

简介&#xff1a;《牛熊万金油 通达信指标公式源码》是一份面向通达信用户和股票技术分析学习者的指标公式文档&#xff0c;适合希望研究均线系统与MACD组合信号、优化短线和中线买卖点的投资者参考。文档围绕3日、8日、10日、20日、55日、250日均线的粘合、金叉与多头上行排列…

作者头像 李华
网站建设 2026/9/18 16:14:34

C#崩溃诊断:用VS2022分析Dump文件定位根因

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华