找回密码
 立即注册
热门搜索: 竞价 监测 低吸 做T 波段

【零基础学指标】第3节 教你编写第一个通达信选股公式

[复制链接]

33

主题

0

回帖

177

积分

管理员

积分
177
发表于 2025-3-22 17:42:15 | 显示全部楼层 |阅读模式
本节开始,我们将正式开始编写通达信选股公式,我向你保证,这绝对会是一段令你非常激动的体验。因为你还是新手,所以今天我们编写的第一个选股公式将会非常简单,就像程序员初学者编写一段显示"Hello,World"的代码一样简单,但它足够你了解编写通达信选股公式的逻辑流程和通达信公式管理器的使用。

关于通达信公式管理器的界面和主要功能介绍,请复习第2节 通达信公式管理器详解。

一、编写第一个选股公式

倍量阳突破五日均线的选股条件:

(1)当天K线涨幅大于5%

(2)当天K线上穿五日均线

(3)当天成交量超过前一天的2倍

切记,我们只是为了编写选股公式而列出了选股条件,并不代表任何选股条件或战法的倾向性建议,本系列教程后续章节也是如此。

下面开始一步一步教大家用通达信的公式管理器编写选股公式:

第一步:Ctrl+F快捷键调出公司管理器

第二步:选中大类“条件选股公式”下面的子类,这里我们选择“其他类型”

82bd36b59d8fe46d125dd3fc1d00bb94.png

第三步:点击右侧功能操作区的“新建”,调出条件选股公式编辑器,新建一个选股公式

e5ee4b86375cf88e3a5b75223b0fc65c.png

第四步:给公式起一个名字也就是公式名称,这里我们随便为上面的选股公式起一个名字,譬如就叫“一线定乾坤”吧。名字可以是中文,也可以是英文,但不能太长

f67dcc59ee9c740ba9af5b687301cd9b.png

第五步:开始编写选股公式的具体选股条件,这个时候就需要我们掌握一定的语法知识了。掌握了必要的语法知识之后,我们再继续编写。

接下来我们基于上面给出的选股条件对通达信编写选股公式的语法进行拆解学习。

1、对于第一个选股条件,涉及到K线的涨幅问题,需要掌握关于K线的以下语法。

开盘价:用OPEN或O表示

收盘价:用CLOSE或C表示

最高价:用HIGH或H表示

最低价:用LOW或L表示

那么K线当天的涨跌即收盘价相对于当天的开盘价就可以用C-O来表示,- 代表减号,必须是英文字符。

但是我们通常所说的涨幅是指当天的收盘价相对于前一天的收盘价而言的,所以我们就需要知道如何引用前一天的K线价格。

在通达信的公式管理器中,用REF(X,N) 来引用N周期前的数据X,举例:REF(C,1)代表前一个交易日的收盘价,REF(O,2)代表前面第二个交易日的开盘价。

需要强调的是,这里的括号和逗号都必须是英文字符,不能是中文字符。

所以,第一个选股条件可以编写为:


  1. {当日K线涨幅是否大于5%}
  2. KUP:=(C-REF(C,1))/REF(C,1);
  3. KUP5:=KUP>0.05;
复制代码


第一句代码是注释,只是为了方便自己理解,系统不会执行。注释以英文字符{开始,以英文字符}结束。

第二句代码中的KUP是我随意命名的一个变量名称,表示K线上涨的幅度比例。变量可以是英文字符,也可以是中文,变量的第一个字符不能是数字。所以,这个变量大家可以随意命名,你甚至可以命名为A或者K线涨幅,但最好是有符合意义的名称。

第二句代码中的 :=(英文字符冒号紧跟=)表示给变量KUP赋值。

第二句代码赋值符号右边的 (C-REF(C,1))/REF(C,1) 的意思是(今日的收盘价-前一日的收盘价)/前一日的收盘价。

不要忘记,每一句完整的语法表达结束需要一个英文标点符号;即英文的分号。

第三句代码中我们用KUP5这个变量表示当天K线的涨幅(当日收盘价相对于前一日的收盘价)KUP是否超过5%,也就是说,KUP5是一个逻辑变量,其结果要么是0,要么是1。具体到这段代码来讲,如果当日K线涨幅大于5%,KUP5就会被赋值1;如果当日K线涨幅没有大于5%,KUP5就会被赋值0。

实际上,上面的第二句和第三句代码完全可以合并为一句代码,但是为了能方便大家学习和理解多一些的语法知识,我故意分拆成了两句代码来表示。

我们将第一个选股条件的代码编写完成之后就是下面这个样子:

867b597e92fb0be60f9b34eb27c43d67.png

2、对于第二个选股条件,涉及到均线问题和交叉问题,需要掌握以下语法。

在通达信中,我们常说的简单算术移动平均线MA用MA(X,N) 表示,意思是关于数值X的N日平均值,举例:MA(C,5)就表示收盘价的5日平均值。而上穿也就是向上交叉或称为金叉则用CROSS(A,B)来表示,CROSS(A,B)的结果是一个逻辑值,要么是1(表示当日出现金叉),要么是0(表示当日未出现金叉)。如果CROSS(A,B)的值为1,则表示A从下向上交叉了B,否则CROSS(A,B)的值为0。

理解了上面两个函数的意义,我们就可以编写第二个选股条件了:


  1. {当日K线是否上穿5日均线}
  2. KCrossMA5:=CROSS(C,MA(C,5));
复制代码


第一句代码是注释,以后就不再过多解释了。

第二句代码中,KCrossMA5是我们随意命名的一个变量名称,用来表示K线是否上穿五日均线。由于CROSS(C,MA(C,5))是一个逻辑值,要么是0,要么是1,所以KCrossMA5的结果也是和CROSS(C,MA(C,5))一样的逻辑值。

我们再将第二个选股条件的代码编写完成之后就是下面这个样子:

f27149f5ae6b1b6538063fdf6cccf5e8.png

3、对于第三个选股条件,涉及到成交量的问题,需要掌握以下语法。

在通达信中,成交量用VOL或者V来表示。记住,这里我们说的是成交量,不是成交额。根据我们前面学过的数据引用函数,前一交易日的成交量就应该是REF(VOL,1)。

理解了成交量的表示方式,我们就可以编写第三个选股条件了:


  1. {当日成交量是否是前一日成交量的2倍以上}
  2. VisDouble:=V/REF(V,1)>2;
复制代码

第二句代码中VisDouble是我们命名的一个变量,用它来代表当日成交量是否是前一日成交量的2倍以上。很明显,VisDouble也是一个逻辑判断值,要么是1(表示当日成交量是前一日成交量的2倍以上),要么是0(表示当日成交量未达到前一日成交量的2倍)。

我们再将第三个选股条件的代码编写完成之后就是下面这个样子:

6af20f68e09bb0ce1ba6b271732840f8.png

至此,我们已经完成了三个选股条件的编写,但是我们还差最后一步。目前我们还只是对三个选股条件可能出现的逻辑结果进行赋值,还没有将三个条件组合到一起让系统根据确定性的逻辑结果进行选股。

现在,我们编写最后的选股执行代码:

  1. {选股}
  2. XG:KUP5 AND KCROSSMA5 AND VISDOUBLE;
复制代码


第二句代码中,XG是我们命名的一个变量,后面紧跟一个英文符号冒号:,冒号:后面表示系统要执行的选股条件代码。其实这个变量和冒号也可以不要,直接用那段要执行的选股条件代码也是可以的。

最后,我们把选股执行代码添加进去:

685666abcb1d2641aa06b718de6cd365.png

第六步:点击条件选股公式编辑器右边的“测试公式”,测试我们编写的公式是否有错误,如果没有错误,下方会显示测试通过。

ff5cf039858c5eb6e5442898877185bd.png

第七步:测试 通过之后我们就可以点击条件选股公式编辑器右边的“确定”将我们编写的条件选股公式保存起来了。看到了吗?它已经保存在了条件选股公式大类下面的子类其他类型里了,后面括号里面自动被系统备注了用户,表示是我们自己编写的公式。

二、用编写好的选股公式选股

我们刚刚已经编写好并保存好了条件选股公式“一线定乾坤”,接下来我们就可以用这个条件公式来选股了,会不会选出即将暴涨的大牛股,好紧张啊~~~

现在,关掉条件选股编辑器,用快捷键Ctrl+T调出选股器。

1249ee81546e44ae66da44990ca6728c.png

从条件选股公式中选择刚才编写的“一线定乾坤”,选股周期选择“日线”级别,选股范围设置为全部A股,然后点击“加入条件”,将选股条件加入右侧的选股条件列表中;选择下方的剔除当前未交易品种和剔除ST品种,然后选择执行选股,这样通过一线定乾坤选股公式选出来的股票就进入到了“临时条件列表”里面了。

1396d2faad5b8f01b68edfb2095d50dc.png

到这里为止,我们已经学会了编写简单的条件选股公式,并通过条件选股器使用我们编写的条件选股公式选出股票到系统自带的临时条件列表里了。

下一节,编写财务指标选股公式筛选优质标的我们将再编写一个选股公式,并新建一个自定义板块,将选出的股票放入自定义板块,并将板块内的股票名称的颜色设置为自己喜欢的颜色。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示:指标是历史经验的总结并非万能,没有百分百的成功率,但是学习利用指标可以大大提高观察复盘筛选效率,站内所有资料均由网络公开收集,仅供个人研究学习参考,不作任何投资依据,并且不保障实时性和真实性,如有资料侵权请联系删除

QQ|Archiver|手机版|小黑屋|指标严选网 ( 豫ICP备2025114445号-1 )

GMT+8, 2025-4-28 15:48 , Processed in 0.095023 second(s), 23 queries .