猛兽派趋势交易全书MENGSHOUPAI · TREND FOLLOWING
全书 / 卷四 指标、公式与工具 / 通达信编程与设置

通达信编程与设置

指标、公式与工具 · 共 9 篇

公式语言入门、扩展数据、自定义板块下载、数据补齐与调试方法。

正 文

盘中自动触发枢轴点,并且声音提示功能

2024.06.251302 字
当我们有一个不错的枢轴点定义之后,就产生一种新的需求,希望能在实盘中自动推选出来,并且提示操盘者。

当我们有一个不错的枢轴点定义之后,就产生一种新的需求,希望能在实盘中自动推选出来,并且提示操盘者。

这个功能的好处是不言自明的,盘中有信号弹出,明显有利于当天的买入决策,而盘后选股者必须要等到第二天才能买入。

坏处也是不言自明的,盘中信号弹出容易触发冲动交易,毕竟信号只是信号,懂的都懂的。

通达信软件能够提供这个功能,但需要做一些设置,下面描述一下流程:

第一步:必须建立一个条件选股公式,很简单,如果我们已经做好了M8主图公式,接下来的步骤就是一句话的事情,如图:

就这么简单,点确定就OK。

接下去,在通达信软件界面的右下角有几个图标,其中应该是最后一个就是:条件预警,鼠标双击启动它,然后弹出一个小窗口,如下图:

点击设置,弹出以下设置窗口:

点击添加公式,弹出如下窗口,进行关键的3个设置:

注意第3个设置选择的自定义板块,需要提前创建好自定义板块文件夹。设置完毕,点击确定,退出到前一窗口,就能看到增加了一条内容,如下图:

然后在其它设置中确认一下声音提示和弹出提示,如下图:

最后点击确定,就全部完成设置了。

这样通达信开启以后,就能每天为你自动提示枢轴点信号了。由于枢轴点定义有成交量条件,所以一般刚开盘是不会有提示的,除非猛烈放量,大多数信号都会在下午弹出,这也比较符合早盘卖尾盘买的一般习惯。

盘中自动选股还有一个好处是,每天它会把选出的股票添加到已经指定的自定义板块文件夹,这样一周下来,就会攒到一些股票,你可以观察这些股票自枢轴点以后的走势反应,辅助你选股决策。

如何快速学会通达信编程

2025.02.043340 字
在私下交流中,感到有不少朋友完全不懂通达信编程,然而又很想学,甚至发誓今年一定要学会,结果呢,一年过去了,还是老样子。

在私下交流中,感到有不少朋友完全不懂通达信编程,然而又很想学,甚至发誓今年一定要学会,结果呢,一年过去了,还是老样子。

并不是我站着说话不腰疼,打心眼里讲,通达信这样子的编程并不是一件很难的事,难的是你心里那道坎,不够坚决,不够真切。

今天我来尝试着讲讲如何入门,如果讲完以后你还是一头雾水,那么估计是真的不行了,早点断了这念头算逑。

首先通达信编程语句有两种关键句式,一种是赋值,一种是输出。那么什么是赋值,什么是输出呢?

直白地讲,赋值语句只是单纯地表达一个公式,而输出语句则能够把公式计算结果在主图或者副图中显示出来。比如:

BR:=(H-C)/C;这是一个赋值语句。

BR: (H-C)/C;这是一个输出语句。

两者有什么区别吗?仔细看一下吧,赋值语句有=号,而输出语句没有=号,就这么简单。所以,你解读一段程序时,只要看到这种没=号的语句,就是一个能在主图或者副图中显示曲线或者符号图标的关键表达式。同样,如果在输出语句中添加了=号,变成赋值语句,那么原本显示的曲线就会消失。

然后,再留意一下,这两个句式都用冒号开始,最后都用分号结束,这个就是通达信编程基本句法,必须理解,必须记住。

再回顾一下上面两个例句中,冒号:等号= 分号; 这三个符号的位置,后面还会提到逗号的位置,这就是句法的全部,掌握住以后就可以开工了。

那么开工了以后怎么干呢,有人就疑惑,那么长一篇程序中,那些花里胡哨的英文单词都是什么意思,从哪里来的。好的,其实这个也不难,这个就是我们常听说的函数,什么是函数,函数就是加减乘除这些东西,就是计算。这部分需要有初中文化水平。

通达信的所有函数都在公式管理器里面,如下图所指,你只要点进去,全部都有,读书好的人只需要一个小时就能全部读通,脑子笨点的或许需要两三周,但不至于完全读不懂,只要你初中数学和英语都还能考个30分,就问题不大:

好,现在我们就用上面函数表中的均值函数来求5天的平均收盘价,用它编程就是这样:

MA5:=MA(CLOSE,5);

MA5就是我们要计算的一个值,这个你可以随便起名字,比如你也可以用汉字直接表达:

5天平均收盘价:=MA(CLOSE,5);

这个公式和上面那个本质是完全一样的,只是起头的名字不同而已,不碍事,后面的计算都是MA(CLOSE,5); 所以最后计算得到的数值不会有任何差异。

CLOSE是什么?你返回到函数表中查查,属于序列行情函数,也可以简写成C,函数的名字是固定的,凡是函数表中固定的东西,都只能规规矩矩照着写。

总之,你想要流畅地工作,就必须熟悉这张函数表,也不需要一次性背熟,先把常见的记住就行了,复杂的函数等到想要用的时候再去查找就可以了。

好,接着我们想把上面这个计算值显示在主图指标上,怎么弄?很简单,先把上面赋值语句中的=号去掉,变成输出语句,然后在右上角画线方式中设置成主图叠加就可以了:

MA5:MA(CLOSE,5);

又有人问,线条颜色是怎么换的。这个也很简单,只需要在句子后面再添加一个颜色表达即可,怎么加,请看下图:

在调色板中,随便你选什么颜色,还可以自定义颜色。

注意,语句上要用逗号分隔,如下:

还有人问,小黄人是怎么加上去的。这个也简单,用DRAWICON函数写一语句,然后也是通过插入资源方式添加小黄人符号:

至于DRAWICON函数是个啥,怎么用,怎么写语句,那就麻烦你再进去函数表查一下,仔细读读,咂摸咂摸。

就是这样,如果你想熟练书写程序,那就要反复去阅读函数表,至少刚开始是这样的,直到你闭着眼睛都能写出所有函数,那么很显然你已经成为高手了。

最后,大家必须明白,会写语句只是说明你掌握了语言,但要写出高质量的程序,最重要的是你头脑中的思维和思想,你的认知深度和模式构建能力才是决定你软件水平的最终力量。


VOL_金第三段代码复制修改

2025.02.14602 字
已经VOL_金付费过的朋友请注意,第三小节代码有更新,查看原文置顶留言,就放在那儿 拷贝覆盖原来相同位置的代码即可。 <a href="https://mp.weixin.qq.com/s?__biz=MzA5MTA2M…

猛兽派选股 · 2025-02-14 22:08

已经VOL_金付费过的朋友请注意,第三小节代码有更新,查看原文置顶留言,就放在那儿
拷贝覆盖原来相同位置的代码即可。

VOL_金,三种典型量比定义及其应用

【图1】


解决一下全天成交额估算的问题

2025.12.131919 字
我实测了几天,效果应该不会比开盘啦APP差。

通达信自带的虚拟成交量(金额)估算误差非常大,所以现在很多人吹捧“开盘啦”APP的估算值。通达信自带的指标公式调用如下图:

要解决这个问题,其实也不难,通达信主要是没在这个细节上下功夫,采用了简单的线性推算方程,但实际上日内分时图的成交量变化是长尾形态,接近指数曲线:

所以,只需要在原来计算公式基础上增加一个指数修正项即可,完整代码如下:

TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));
MTIME:=MOD(FROMOPEN,TOTAL);
CTIME:=IF(MTIME<0.5,TOTAL,MTIME);
EXP_RATE:=0.02;
GRADIENT:=10+100*(1-EXP(-CTIME*EXP_RATE)); 
VVOL:IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),AMO*(TOTAL+GRADIENT)/(CTIME+GRADIENT),DRAWNULL),NODRAW;
STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VVOL,0,-1,-1),COLOR00C0C0;

指数修正项关键是在下面两句:

以上语句中有3个参数,第一个0.02是指数项,第二个10是常数项,第三个100是系数项,都是可以修改调节的,你如果觉得计算得到的全天成交额估算值不够精确,那么调整这三个参数去逼近你认为的精确值。

我实测了几天,效果应该不会比开盘啦APP差。

把以上完整代码复制以后,覆盖本ID以前分享的VOL_金指标的第一部分即可。

M8+VOL_金,主图指标升级 Version2.0


自定义创新药板块和指数

2026.04.072616 字
创新药概念板块一共有271只股票,是不是太多了,很多根本没有研发管线的公司也都在里面。

创新药概念板块一共有271只股票,是不是太多了,很多根本没有研发管线的公司也都在里面。

如果我们把一些真正有研发管线的公司梳理一下,做成一个新的板块指数,是不是更有利于跟踪和分析判断?

以下是通达信自带的创新药概念指数,以及计算得到的RSR值:

以下是我自建的创新药板块指数,以及计算得到的RSR值:

以下是自建创新药板块的成份股(自定义数据导入格式):

1,688759,创新药,393008

1,688578,创新药,393008

1,688520,创新药,393008

1,688506,创新药,393008

1,688488,创新药,393008

1,688443,创新药,393008

1,688428,创新药,393008

1,688382,创新药,393008

1,688336,创新药,393008

1,688331,创新药,393008

1,688302,创新药,393008

1,688278,创新药,393008

1,688266,创新药,393008

1,688235,创新药,393008

1,688221,创新药,393008

1,688192,创新药,393008

1,688180,创新药,393008

1,688177,创新药,393008

1,688176,创新药,393008

1,688163,创新药,393008

1,688117,创新药,393008

1,688062,创新药,393008

1,603590,创新药,393008

1,603538,创新药,393008

1,600513,创新药,393008

1,600276,创新药,393008

1,600196,创新药,393008

0,300702,创新药,393008

0,300683,创新药,393008

0,300558,创新药,393008

0,300485,创新药,393008

0,300255,创新药,393008

0,300204,创新药,393008

0,002653,创新药,393008

0,002550,创新药,393008

0,002422,创新药,393008

0,002294,创新药,393008

0,002082,创新药,393008

0,000963,创新药,393008

0,000534,创新药,393008

自定义板块和指数的创建流程:

第一步:把目标股票加入到一个自定义板块,汇聚所有成份股;

第二步:功能菜单栏找到创建板块指数的菜单:组合品种管理

第三步:导入第一步做好的自定义板块成份股:

确定以后,就会自动计算出板块指数。

第四步:把这个自定义指数的代码(上图是393008,我自己给的编号),加入到计算行业RSR的那个文件夹,然后刷新一次扩展数据,自定义指数的RSR强度曲线就出来了。

第五步,做成自定义数据,方便个股关联和调用自定义的行业指数,这个就比较复杂了,详见前天的推文:行业RSR终于关联上三级行业了

最终效果是这样的:


自定义板块下载通道

2026.04.121977 字
如果有需要,可以把自定义板块作为一个长期维护的事情来做,通过百度网盘的文件夹订阅功能,每次更新都会自动通知。

如果有需要,可以把自定义板块作为一个长期维护的事情来做,通过百度网盘的文件夹订阅功能,每次更新都会自动通知到订阅用户。

这次分享的文件中,extern_user.txt文件是所有股票全局自定义数据,也就是行业RSR终于关联上三级行业了中需要的全局数据文件,直接覆盖通达信安装目录/T002/signals下的同名文件即可,不过,我根据自己的偏好做过不少修改,不一定适合你,如果你已经弄好了全局数据,可以忽略这一步。

EBK文件是自定义板块导入文件,在下面这个窗口导入:

板块对应的txt文件是自定义数据导入文件,在下面窗口导入:

导入时注意这两个选项,不要勾错:

以下是百度网盘分享通道,有需要的同学开门即可:https://pan.baidu.com/s/5CE9w4tJztd44egKstEIvng


如何调试公式

2026.04.182230 字
其实定位故障,调试公式是很简单的事,以下以枢轴点为例,讲一下。当然这对于有通达信基础的同学很容易学,没有基础的就当我没说过。

其实定位故障,调试公式是很简单的事,以下以枢轴点为例,讲一下。当然这对于有通达信基础的同学很容易学,没有基础的就当我没说过。

首先,建立一个单独的枢轴点副图公式,然后找到关键输出语句:

你看这句就是综合了所有条件,用“与”(AND)的逻辑表达,意思就是当这些条件都成立时,枢轴点就有了。

那么你遇到枢轴点出不来,必定是里面有某个条件或者多个条件不符合要求,也或者是某个条件语句写错了、参数不对等,这就需要一个反向定位故障的方法,最好是在图形上就能看出来。

好,为了能让每个条件都能在图形上看到,就必须把条件语句全部改成输出语句,比如TURN语句原来是这样的赋值:

TURN:=H>HHV(YH,2) AND C>HOLD;

现在把它改为输出:(就是把等号去掉)

TURN:H>HHV(YH,2) AND C>HOLD;

这样就能在副图指标上看到它的输出值了:

如上图,所有的条件都横列在副图指标数值栏。前面都是条件输出,最后一个是枢轴点的总输出,当前面的条件输出值全部为1时,PIVOPOINT输出才会变成1,也就是枢轴点有了;只要前面有一个为0,那么枢轴点就没有。

OK,懂了没,必须搞懂这个逻辑,然后就可以进入逆向定位故障。

好,接着讲,现在你觉得某根K线上应该出现枢轴点,但没有出现,那么就把十字光标定位到这棵K线上,然后你去看副图指标的条件输出中,哪个显示为0,为0的这个就是需要调试的,然后你去改那个输出语句,直到它的输出值变为1,就好了。当所有的条件输出为1时,枢轴点自然就有了:

就这么简单,你~学废了没有?

最后,你只需要把副图指标的枢轴点输出调用到主图公式和选股公式,就能显示在主图了,并且和选股公式一定完全保持一致。如果下次再需要调试,那就只要把副图公式调试对了就OK了,主图和选股公式自动会调用一致的。比如调用到主图,就这样写个语句即可:

{显示枢轴点}
PIVOPOINT:=PIVOT.PIVOPOINT;
DRAWICON(PIVOPOINT,O*0.98,14);

调用到选股公式,就这样写个语句即可:

这下你懂了没有,真的学废了吗?


快速编辑全局数据的方法

2026.04.191229 字
上次我分享个股匹配三级行业RSR的时候,需要导出两张表格数据,然后进行编辑,5000多项数据,手工编辑的话很费时间。

上次我分享个股匹配三级行业RSR的时候,需要导出两张表格数据,然后进行编辑,5000多项数据,手工编辑的话,如果没有好的方法,那是很废时间的。这里有位热心老铁分享上来他的办法,我原样搬上来,大家看看是否用得上。

第二步:用VLOOKUP函数,在第一张工作表中匹配出“行业代码“(=VLOOKUP(C2,行业代码!$A$2:$B$345,2,FALSE))

第三步,用一个条件函数:=IF(LEFT(B2,1)="6",1,IF(OR(LEFT(B2,1)="0",LEFT(B2,1)="3"),0,IF(OR(LEFT(B2,1)="8",LEFT(B2,1)="4"),2,"")))


两个小知识

2026.05.291427 字
通达信公式中的两个小知识普及一下,虽然我也搞不清楚有些人为什么老是要问,其实问一下AI马上就能了解的最基础的东西: 1、参数 比如最简单的画均线语句: MA1

通达信公式中的两个小知识普及一下,虽然我也搞不清楚有些人为什么老是要问,其实问一下AI马上就能了解的最基础的东西:

1、参数

比如最简单的画均线语句:

MA1 : MA(CLOSE,5);

这里面 (CLOSE,5) 中的数字 5 就是参数,是写死的。

当然也可以写成 (CLOSE,M1) ,这个M1可以是任何字母或者任何字母+数字格式,这就是可以调节的参数,需要到参数表上设置一下,这样:

也就是说,你想方便以后调节,那么就写成参数表,如果不想调节就直接在语句上写数字,无论写活还是写死都是语句中的参数。后面要改参数,活参数在参数表上改,死参数就直接在语句上改即可。

2、阈值

阈值一般出现在条件语句,比如:

S1 := RSR>80;

这个80就是阈值,这个语句的意思是RSR值需要大于80条件即成立,语句的赋值方式是,当RSR>80时,S1赋值为1(阈值满足,条件成立),否则S1为0(阈值不满足,条件不成立)。

然后就说到前些天我讲枢轴点公式中的SAFE条件,阈值改为53即可,竟有那么多人不懂是啥意思,唉~真心佩服你们!

原来是动态阈值,这样写的:

SAFE:=BIAS3<SAFELINE;

改写成固定阈值就这样:

SAFE:=BIAS3<53;

改了以后,有些风险偏高的枢轴点就能显示,比如金安国纪最近两个枢轴点:

就这么点事,抓耳挠腮问东问西,那么喜欢玩公式,又没心思稍微深入一下,叶公好龙不是。

如何快速学会通达信编程