通达信强拉升指标公式解析与选股应用实战
2026/9/19 11:18:48 网站建设 项目流程

简介:这是一份通达信股票软件的自定义技术指标公式源码文档,主要面向使用通达信进行短线与技术分析的个人投资者。该指标围绕“强拉升”与“加强拉升”两大核心信号展开,结合RSVA1/RSVA2、VAR21/VAR11、顶底线、趋势线、当前安全度等多项计算,通过比较价格相对高低点位置、移动平均变化率以及短期与长期速率差异,辅助识别股票可能出现的强势上涨阶段。文档中包含完整公式语句,涵盖SMA/EMA/STICKLINE/DRAWTEXT等典型函数用法,可直接在通达信公式编辑器中导入使用,适合希望理解指标编写逻辑并自行优化选股策略的读者。资源为单个doc文档,约39KB,内容紧凑、便于复制查阅。目前已有82人学习,适合初步接触通达信公式编写、想学习从价格与均线关系中提炼买卖信号的投资者参考。

1. 强拉升指标的本质,不是预测而是把拉升状态翻译成规则

“强拉升”这个命名很容易让人误以为指标能提前一天喊出买点。接触过通达信公式的人都懂,K 线数据里根本没有未来信息,所谓强拉升,本质是“拉升已经发生的那一天,把盘面事实翻译成可操作的信号”。它的价值不在于预测明天涨不涨,而在于帮你把涨幅放大、量能跟上、均线多头这些特征过滤成统一的触发条件,再交给选股、预警和复盘流程去用。这份“强拉升.doc”里最值得分析的,也恰恰是这套条件组合是否可复现、参数是否可调、信号是否稳定。适合的人群是做中短线主升浪过滤的股民,以及想在自己选股策略里加一个“启动确认”条件的量化入门者。

2. 先建立判断框架:把“强拉升”拆成可计算的四个条件

2.1 从形态到公式:涨幅、量能与均线状态的量化映射

强拉升通常不是单日行为,更多是“启动点”。启动点一般对应三个盘面特征:收盘价站上近期平台、短期均线刚形成多头排列、成交量倍数放大。这三个特征分别对应价格、结构、资金三个维度,缺一个都可能出现假信号。

先给出一套默认的计算口径:

STR:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100; {涨幅百分比} VOLR:=VOL/REF(MA(VOL,5),1); {量比: 当日量能/昨日5日均量} MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10); MA20:=MA(CLOSE,20);

这段代码先算四个基础变量:单日涨幅、量能倍数、三组均线。这里有两个值得注意的点。

STR没有直接用通达信系统函数涨幅,原因是这个函数在部分版本里只在选股器返回动态值,写在主图公式里容易拿到未定义的数据。自己用CLOSE/REF(CLOSE,1)-1算,任何周期都稳定。

VOLR的分母刻意用了REF(MA(VOL,5),1),也就是“昨天为止的 5 日均量”。如果直接用MA(VOL,5),分母包含今天,放量当天分母也被拉大,量比会明显偏小,信号被稀释。这是新手最容易忽略的细节。

通达信公式里:=定义中间变量,不画线;单个:输出到副图或主图。写强拉升这类复合条件,中间量一律用:=,最终结果用:输出或配合DRAWICON画图。

2.2 量能饱和度与主力追踪:怎么用现有函数近似出“资金进场”

很多流传的“强拉升.doc”里会提到“量能饱和度”“主力追踪分时指标源码”这类词。量能饱和度在通达信里没有标准函数,常见的近似写法是把量能倍数映射到 0~100:

VOLR:=VOL/REF(MA(VOL,5),1); 饱和度:=IF(VOLR<1, VOLR*50, 50+MIN(50,(VOLR-1)*25));

逻辑是:量比小于 1 时,饱和度线性下降;大于 1 时以更缓的斜率上升,封顶 100。这样的好处是“放量程度”被压缩到固定区间,方便在副图里画成柱状或圆圈图形,视觉上接近“饱和度”这个概念。

所谓“主力追踪分时”指标,大多是AMOUNT成交额与VOL成交量的组合变形,常见的有主力强度 := (CLOSE-LOW)/(HIGH-LOW)*VOL,用来近似大单主动性买入。这类公式做研究参考可以,但追涨最重要的变量始终是量能是否温和放大,而不是资金绝对流入额。

2.2.1 为什么要强调“温和放量”而不是“爆量”

强拉升的安全形态,是量能从 1.2 倍放到 3.5 倍,且价格实体能站稳。量比超过 5 倍时,往往意味着高位分歧,可能是主力出货或多空剧烈换手,而不是一致性的启动。

RANGE(VOLR, 1.2, 3.5)

RANGE而不是分开写VOLR>1.2 AND VOLR<3.5,一个是代码更紧凑,另一个是在公式管理器的“测试公式”里,RANGE的边界处理更清晰。

2.3 用一张参数表固定默认判断口径

把关键条件整理成参数表,这是后续所有源码的骨架,也方便按持仓周期调整:

维度条件默认阈值调整方向
价格突破收盘价创 10 日新高10 日激进调到 5 日,稳健调到 20 日
均线形态5 日 > 10 日 > 20 日5/10/20中长线用 10/20/60
单日涨幅3%~7%3~7涨停板密集期可放宽到 2~9
量能1.2~3.5 倍于 5 日均量1.2/3.5缩量环境上限下调到 2.5
环境过滤大盘指数当日不跌指数涨幅 > 0弱市保留,强势可去掉

这张表的核心作用,是把“强拉升”从一个依赖盘感的概念,变成一组可复制到任何公式里的数字。接下来所有代码都围绕这 5 个条件展开。

3. 写一套完整的强拉升指标公式源码:主图信号与副图量能

3.1 主图叠加:突破、多头与量能同时满足时画箭头

主图信号的用途是复盘:一眼扫过去就知道哪些位置触发过强拉升。在通达信里新建技术指标公式,画线方法选“主图叠加”,然后粘贴以下源码:

{强拉升-主图信号} N1:=5; N2:=10; N3:=20; STR:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100; VOLR:=VOL/REF(MA(VOL,5),1); MA1:=MA(CLOSE,N1); MA2:=MA(CLOSE,N2); MA3:=MA(CLOSE,N3); 突破:=CLOSE>REF(HHV(HIGH,N2),1); 多头:=MA1>MA2 AND MA2>MA3; 涨幅过滤:=STR>3 AND STR<7; 量能过滤:=VOLR>=1.2 AND VOLR<=3.5; 环境:=INDEXC>REF(INDEXC,1); 强拉升:=突破 AND 多头 AND 涨幅过滤 AND 量能过滤 AND 环境; DRAWICON(强拉升,LOW*0.97,1); STICKLINE(强拉升,OPEN,CLOSE,2.5,0),COLORRED;

逐项说明逻辑:

  • N1/N2/N3写成变量而不是写死 5/10/20,方便后面在参数栏直接调,不用改源码。
  • REF(HHV(HIGH,N2),1)是“截至昨天的 10 日最高价”,把今天的突破定义为“突破之前 10 天的高点”,而不是“今天创 10 天新高”。后者在通达信里也常用,但前者对假突破的过滤更好。
  • 环境INDEXC比较当日与昨日大盘指数收盘,过滤掉大盘下跌日里的逆势拉升。逆势拉升的失败率在普通行情里明显偏高,加上这个条件,信号数量会肉眼可见地下降。
  • DRAWICON(强拉升,LOW*0.97,1)里的图标编号 1 在不同版本里显示不同,可以改成 6 或 15 这类更醒目的箭头,LOW*0.97控制图标画在 K 线下方 3% 的位置。
  • STICKLINE画红色实体柱,把触发日的 K 线内部填色,方便复盘时扫图。
3.1.1 最容易写错的量比:分母少一个 REF 就废了

上面代码里VOLR:=VOL/REF(MA(VOL,5),1),如果你把它写成VOLR:=VOL/REF(MA(VOL,1),1),分母就变成了“昨天的单日成交量”,这个值可以是极小的地量,也可以是一个涨停日的大天量,算出来的量比会剧烈跳动,完全无法作为过滤条件。

更隐蔽的写法错误是VOLR:=VOL/MA(VOL,5)。这种写法分母包含当天,放量当天分母也会变大,直接把 2 倍的真实量比压到 1.3 倍左右。回测出的信号数量会比实际少很多。

判断量比是否正确,有个笨办法:找一个明显缩量的 K 线,量比应该小于 1;找一个逐级放量的启动日,量比应该显著大于 1。如果每天的量比都在 0.9~1.1 之间晃,说明分母取错了。

3.2 副图量能确认:用柱状图区分温和放量与巨量分歧

主图信号解决“什么位置触发”,副图解决“为什么这里值得看”。副图公式一般画两根柱子:量能映射值和过热警戒线。

{强拉升-副图量能确认} VOLR:=VOL/REF(MA(VOL,5),1); TEMP:=IF(VOLR<1,VOLR*50,50+MIN(50,(VOLR-1)*25)); 饱和度:STICKLINE(1,0,TEMP,3,0),COLORYELLOW; 巨量警戒:STICKLINE(VOLR>3.5,0,100,3,0),COLOR888888; 阈值:80,COLORWHITE;

逻辑说明:

  • TEMP把量比映射到 0~100,对应很多 doc 里出现过的“量能饱和度圆圈 1.00”一类算法。圆圈版本是把饱和度画在价格坐标上,但副图用柱状图更容易与主图信号对照。
  • TEMP超过 80 且主图没有触发强拉升时,说明量能过热但价格没配合,这种位置追涨的性价比不高。
  • 巨量警戒画一根贯穿 0 到 100 的灰色柱子,一眼就能区分“温和放量”和“爆量分歧”。

副图公式不需要选股,所以饱和度巨量警戒都可以用:直接输出,画线方法选副图。

3.3 选股公式的提取与回测注意点

同一个逻辑可以转成选股公式,去掉画线函数,直接输出条件。以下是一个可直接编译的版本:

{强拉升-条件选股} STR:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100; VOLR:=VOL/REF(MA(VOL,5),1); MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10); MA20:=MA(CLOSE,20); 突破:=CLOSE>REF(HHV(HIGH,10),1); 多头:=MA5>MA10 AND MA10>MA20; 量能:=VOLR>=1.2 AND VOLR<=3.5; 环境:=INDEXC>REF(INDEXC,1); 排除ST:=NOT(NAMELIKE('ST')); 排除次新:=BARSCOUNT(CLOSE)>60; 选股:突破 AND 多头 AND STR>3 AND STR<7 AND 量能 AND 环境 AND 排除ST AND 排除次新;

这里补了排除ST排除次新两个条件。NAMELIKE('ST')是匹配股票名称包含 ST 的过滤,BARSCOUNT(CLOSE)>60要求上市超过 60 个交易日。这两个条件在 doc 源码里经常不写,但实际使用时能把大量风险标的挡在外面。

回测时注意三点:

  • 通达信条件选股器里的历史回测,INDEXC需要完整下载大盘指数数据,否则选出来的结果会是空列表。
  • 连续两天满足条件时,同一只股票会重复出现在结果里。建议叠加FILTER(选股,4),让 4 天内的重复信号只保留第一个,减少重复关注。
  • 选股公式不要保留DRAWICONSTICKLINE,画线函数不影响选股结果,但综合选股时会拖慢执行速度。

4. 从 DOC 文档取源码的干净做法:doc 里的公式和代码差在哪

4.1 为什么网上的“强拉升.doc”经常复制即报错

那份“强拉升.doc”通常是论坛时代流传下来的文档。这类文档有两个特点:公式用{}写中文注释、夹杂全角字符,末尾还有一大段免责声明和推广文字。直接全选复制进公式管理器,最常见的报错是“未定义的变量”或“缺少右边括号”。

一个干净的提取流程是这样:

  1. 用 LibreOffice 把 doc 转成 txt,得到无格式纯文本。
  2. 在公式管理器里选择“导入公式”,文件类型选文本格式。
  3. 检查编码。通达信公式管理器对中文兼容 ANSI 编码,UTF-8 文档里的中文注释偶尔会变成乱码。遇到乱码就重新用 ANSI 另存一次。

转换命令:

soffice --headless --convert-to txt:Text "强拉升.doc" --outdir ~/tdx_formula

转换后得到同名 txt 文件,用编辑器打开,另存为 ANSI 编码再导入。这里的关键不在soffice本身,而在于编码。很多 doc 内部是 GBK 或 GB2312,转成 UTF-8 反而会出问题。

4.2 从 doc 提取公式后的“清洗三步”

拿到文本后,不要急着粘贴,依次处理:

  1. 替换全角字符。全角括号()会导致语法错误,把()全部替换为半角;全角逗号、分号同理。在 VS Code 或 Sublime 里用正则替换可以一次完成。
  2. 清掉不属于公式的前后说明。doc 里常有“本指标不构成投资建议”“交流加群 xxx”等文字,只保留函数和变量部分。
  3. 删掉所有{}注释再粘贴。注释内部如果有不闭合的{或全角字符,会导致编译失败。删掉注释后,公式的可读性会差一点,但编译通过率最高。
4.2.1 “加密公式”和外部依赖的识别

还有一部分 doc 里的源码并非纯文本,而是加密公式或者带#IMPORT的公式引用。加密公式的特征是:复制出来只有EX0开头的加密串,或者在公式管理器里显示为“只读/加密”。

#IMPORT是通达信从其他公式引用输出的写法,本身不违规,但很多“国宝级指标”喜欢用它把关键计算藏在另一个指标里,让你拿到手也用不了。遇到这种情况,别再花时间逆向,直接按自己的条件重写。强拉升这套逻辑的核心变量就四个:涨幅、量比、均线、突破周期,自己写比猜别人的封装快得多。

4.3 公式管理器导入时报错的分支排查

报错现象常见原因处理方式
未定义的变量变量名带中划线或圆点改成字母开头:LH:=…
字符串不匹配引号是全角替换为半角双引号
缺少右边括号doc 里公式被截断对照页面截图或按()+()/{}结构补全
参数越界N 值设为小数或超过 999在参数栏约束最小/最大/步长
提示含有未来函数公式用了BACKSETREFX回测结果会闪烁,建议直接替换

提示:公式管理器 6.06 的“测试公式”按钮右侧有黄色提示条,所有涉及未来数据的函数都会显示“含有未来函数”。这个提示只表示回测时信号会有偏移,不代表公式写错。真正需要警惕的是BACKSETREFX,它们在选股场景里会导致信号闪烁,盘中看到的信号和盘后不一样。

5. 把强拉升信号接到预警和选股流程:实战参数与模板

5.1 盘中预警用分钟级写法:现价与收盘价的差异

主图公式里用CLOSE在日线上计算没有问题,但盘中预警时CLOSE在通达信本地数据里仍然是昨天的收盘价,所以盘中选股会选不出当天已经大涨的股票。要提前盯盘中启动,需要单独写一个分钟级预警公式:

{强拉升-盘中预警(1分钟周期)} 最新:=DYNAINFO(7); 涨幅:=(最新-REF(CLOSE,1))/REF(CLOSE,1)*100; VOLR:=VOL/REF(MA(VOL,5),1); 预警:涨幅>2 AND 最新>REF(HHV(HIGH,10),1) AND VOLR>1;

DYNAINFO(7)取实时最新价,与行情快照展示的现价一致。盘中量能未走完,VOLR会低估,所以这里只要求VOLR>1,把完整的量能确认留给盘后日线选股。预警只负责“提醒我看看”,不做完整条件确认。

5.2 三组参数模板:激进、稳健、保守

根据市场环境,把核心阈值做成三套预设,建议直接存成三个指标模板:

模板涨幅下限量能区间突破周期适用环境
激进51.5~3.55 日强势行情,抓主升第一棒
稳健31.2~3.010 日震荡市,回踩确认后再进
保守21.2~2.520 日弱市,只做超跌后的首阳

切换模板时只改参数不改公式结构,再用通达信条件选股跑最近 5 日样本,横向对比三组的触发次数和次日表现。建议分别命名为“强拉升-激进”“强拉升-稳健”“强拉升-保守”,复盘时把三个版本同时加到主图,看图标重合的位置。重合多的地方说明过滤条件在生效,单飞的位置大多是花哨条件在起作用,可以删除。

5.3 一个容易被忽略的小技巧:把参数写进公式注释再存模板

很多人调完参数不写注释,几天后就忘了当时为什么用 3 而不是 5。我的做法是每次改完参数,同步更新公式开头注释里的使用说明,例如:

{使用说明: 激进模板,突破周期5,量比区间1.5~3.5,配合当日大盘不跌}

这样在公式选择器里一眼看到适用条件,换电脑或同步到另一台机器的通达信配置目录时,也不会把三套模板搞混。下次复盘时,把当前版本另存为“强拉升-激进-带日期”的新名字,再做优化时只动量比这一个变量,记录每次改动前后的样本数量差,下次复盘时直接对比历史信号就能知道哪个参数组合更适合当前行情。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询