写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧

 

转载自:https://zhuanlan.zhihu.com/p/683365105

 

 

近年来,随着程序化交易逐渐普及,越来越多的投资者开始想做量化,却不知道怎么入门,甚至对量化交易本身都还云里雾里。简单来说,量化交易就是一种高度智能化、自动化的程序化交易,使用程序协助或代替人工操作。

比方说我们有一套选股的策略,将其写为程序后,程序能自动把我们想选的股票找出来,不必人工挨个对照。要实现上述想法很简单,只需使用交易软件的公式编辑器,写一个选股公式即可。

我推荐新手使用通达信的公式编辑器,有下面两方面的考量:

  1. 多数证券公司的交易软件套用通达信的内核,无需额外下载软件;
  2. 通达信公式编辑器自带“动态翻译”,可以把我们编写的计算机语言翻译成人话,方便新手对照。
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
动态翻译功能

本教程共2.5万字,分14章,从收集、整理资料到形成文字耗时6个月,只为帮助更多投资者对程序化交易能有初步的了解,希望大家能多多关注、点赞,让更多人能够看到~

我是 @波有蛋 ,一位从业八年的职业交易员,对股票、基金、程序化交易等有深入的研究,精通指标、选股公式编写,已服务上千粉丝开通满意的证券账户。

接下来,我就从通达信公式的运行原理开始,一步步教你看懂公式,会使用公式、修改公式,最终能自己编写公式。点赞、收藏好了吧,那么就正式开始通达信公式教学!

序章 · 通达信公式编辑器简介

交易软件的程序编辑器都有细微的差别,其中通达信公式编辑器对新手无疑是最为友好的。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通达信图标
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

打开通达信的公式编辑器,路径为软件顶部【公式】-【公式管理器】。也可以使用快捷键【Ctrl+F】。

均线公式为例,找到MA均线,路径为【技术指标公式】-【均线型】-【MA均线】。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

双击打开MA均线(系统)编辑器,通过这个公式来初步认识程序编辑器。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
均线公式

公式名称和公式描述:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

注意起名不要和系统自带公式重复,有问题系统会提示,我们改就行。系统自带的公式都会标注(系统),用户编写的公式则会标注(用户)。

密码保护:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

给程序加密,启用的话每次进编辑器都要输密码,否则不能看到程序内容以及编辑。此外,加密的公式导出分享给别人,导入公式后只能使用,如果要编辑也需要输入密码。

公式类型:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

公式分4大类,若干小类。所有公式都是4大类的一种,小类型则可以自定义,后面会详细介绍公式的分类。

画线方式:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

分主图和副图。主图就是说公式的输出图形显示在盘面的K线图、分时走势图里面;副图就是最下方的技术指标图形显示的位置。

参数:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

参数是函数的组成部分,后面再介绍使用方法。

编辑操作:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

基础的文本编辑,点击鼠标右键也是一样的效果。

插入函数:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

点击打开函数库,后面我们会经常用到,我们不用把所有函数都记下来,需要什么就从库里面找就行。插入资源其实就是把输出显示的函数提了出来,同样需要用的时候从库里面找就行。

应用于图:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

把公式的输出结果显示在主图或副图上。

测试公式:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

系统测试我们编写的程序是否能正常运行。注意,只要能运行的程序测试就能通过。所以,测试通过不代表我们的程序有使用价值,只是说明程序本身没有出错而已。

编辑区:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

编辑器中间窗口是编辑区,用于编写程序。注意,程序中使用的符号均是半角符号,可以理解为英文输入法的符号。

动态翻译:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

通达信编辑器最有特色的地方就是动态翻译,可以将编辑区的内容翻译成人话显示出来,新手对照学习起来非常人性化。

测试结果:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

点击测试公式后,这个窗口告诉我们程序能不能运行。我们举例用的是系统公式,肯定测试通过,可以运行。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

比如我们这里随便打个字,再点击测试公式就报错了,系统会贴心地告诉我们错在哪里和错误的原因。

第一章 · 公式的运行原理

本章从公式的基本原理讲起,带你了解通达信公式的组成部分和运作方式,知道如何正确使用公式,为公式编写打下基础。

认识通达信公式是学会编写公式的第一步。初学者往往看到一个公式就会一头雾水,不知道如何解读,更不要提能自己编写。我们可以把公式理解成一个加工机器,加入原料,产出我们想要的成品。在这样的认识上,只需要了解所谓“原料”“成品”“加工”是怎么一回事,就能够对公式的原理有一个大致的理解。

1-1 数据

公式处理的内容都是数据,如果把公式看作一种机器,数据就是其原料和加工的成品。本质上看,公式很像一个黑箱——输入某些数据后得到我们想要的数据。

绘制一根K线,需要知道开盘价、收盘价、最高价、最低价。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
K线

如果我们有一个绘制K线的公式,那输入上述4个价格,公式就会输出一条K线。这条K线就是“成品”,而价格则是被加工的“原料”,两者都是数据。

对于这个用于绘制K线的机器来说,其原料就是4个价格,称之为起始数据,用于公式启动;成品则是画出的K线,称之为结果数据,即我们想得到的结果。

起始数据:公式的原料,用于公式启动。起始数据是能够直接从市场行情中提取的,如股票的开高低收价格、成交量、各财务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等。

结果数据:公式的输出数据,即我们想要得到的结果。结果数据则是被加工处理过的结果,比如五日均价,就是用过去五天收盘价平均得到的。

1-2 变量

变量源于数学的代数,利用符号来代替未知数,进而加以运算而解决问题。每个人都会解方程,X就是一个代数,可以表示任意的某个未知数。

通达信公式中,变量是用于储存数据的媒介。

加工机器的原料和成品都是数据,但是这个数据通常不能直接输入或输出到机器,而是需要一个运输的容器,这个容器就是变量。我们可以使用任何容器来装东西,只需要给变量命名,就能得到一个容器。容器本身是没有意义的,容器里面装的东西才是我们需要的。也就是说,不管怎么给变量命名都不会影响公式本身,变量代表的数据才有意义。

下面用通达信自带的均线公式举例:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
均线公式代码

现在看不懂这一大串公式没关系,直接码住,不用去理解。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
不用懂的地方先打码

只需要知道右边码住的部分就是数据,是最后我们想要的东西。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
右边部分是数据

左边框住的部分,从MA1到MA8则是变量,用来指代右边的数据。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
左边部分是变量

变量后面一定要有数据或数据的运算过程,否则这个变量就没有意义。

1-3 变量的命名和关键字

我们可以自定义变量的名称,但要遵守一定的规则和一些注意事项。

变量命名可以使用字母、汉字和数字的组合,但不能是纯数字。编辑器默认将所有字母显示为大写,所以命名时不用区分大小写。

最后,注意变量的命名要避开关键字。

关键字指通达信公式中形式为纯字母的函数。比如开盘价在公式中叫做OPEN,如果把变量也命名为OPEN,那么后续引用变量OPEN时,系统将无法识别所引用的这个OPEN是我们定义的变量还是开盘价的意思,导致公式报错。

下面例举一些常见的关键字:

  • 最高价:HIGH或H
  • 收盘价:CLOSE或C
  • 最低价:LOW或L
  • 开盘价:OPEN或O
  • 成交量:VOL或V
  • 成交额:AMO

1-4 通达信公式的运行过程

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
公式的运行原理

公式就是用来处理数据的一个工具,其运行过程为:将起始数据输入变量,通过明确的运算过程,得到结果数据,再返回给变量,输出成我们想要的内容,比如想筛选的个股、想画出的指标等等。

其中,起始数据为相对容易得到的数据,结果数据则是需要经过明确的运算过程才能得到的我们想要的数据,变量则是指代数据的容器。

补充一下,无需引用的数据可以直接输出,不返回变量,后续关于省略变量的用法有详细讲解。

第二章 · 语句

本章介绍语句的构成,带你掌握语句的作用、组成要素和基本形式。

2-1 赋值

语句是通达信公式的基础结构,公式中的一行代码被称作一行语句,一行行的语句则构成了公式本身。

一行语句用于表示一个运算结果,用程序的语言讲叫做赋值

赋值:通过一系列运算过程将某一运算结果的数据返回某一变量。

可以说,语句的基本作用就是赋值,变量是赋值的对象,数据是赋值的结果,赋值就是把数据的值赋予变量。变量的意义就在于,在写入一条语句对某一变量赋值后,该变量可以在后续的语句中作为其被赋值的数据直接使用。

上述操作叫做变量的引用。注意,只有先出现的变量才能被后续语句引用,而不能先引用再给变量赋值。

以系统公式布林线为例:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
布林线代码

现在看不懂没关系,还是照例把不用看的部分码住。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
不用看的部分码住

在第一行语句中可以看到,下图框住的部分变量命名为BOLL。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
变量名

而在第二行和第三行语句中,引用了第一行被赋值过的变量BOLL,下图中框住的BOLL表示其被赋予的值。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
引用变量

正确的引用必须如上所示,写了定义变量的语句后,才能在后续的语句中引用该变量。

2-2 语句组成三要素

语句由三大要素构成,分别是:操作符、变量和明确的运算过程。

一般,一条语句在编辑器中占一行的位置,结尾用分号【;】表示结束。这里的分号【;】是本系列教程中出现的第一个操作符,也可以叫做符号

通达信公式中有许多符号,多数符号都是符合我们常规认识的,大体来说分为如下几类,这里简单介绍一下。

基础操作符:为了句子完整性,符合通常用语语法使用习惯的符号,包括分号、逗号和括号。

  • 分号【;】表示语句结束;
  • 逗号【,】表示语句中各部分的间隔;
  • 括号【()】用法和数学中的一致。

还有计算符、引用符,赋值符,这些符号会在后面的教程中介绍具体的用法。

最后,还有特殊的注释符:大括号【{}】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
注释

注释符内可以写任何内容,不会对公式本身产生任何影响,通常写对语句的解释和用法。注意,注释符内不可再用注释符。

变量和运算过程的含义在前文已经有过介绍,简单来说变量就是数据的容器,运算过程就是给变量赋值的过程。

2-3 语句的两种类型

语句分为两种类型,分别是赋值语句输出语句,两者作用均有赋值,只有是否将结果数据输出显示的区别。赋值语句仅将变量赋值;而输出语句在赋值后还需要将运算结果输出显示,并且可以不写变量、省略赋值。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
语句分类

赋值语句的基本形式为【变量:=运算过程;】,用冒号【:】和等号【=】连接变量与运算过程;赋值语句的结果数据不会显示输出,可以将这样赋值的变量明确为中间变量,同时可以节省程序算力。

输出语句的基本形式为【变量:运算过程;】,用冒号【:】连接变量与运算过程;输出语句的运算结果会被执行输出,将数据直观地给到我们。此外,如果不被引用,输出语句的变量可以省略。

还是用最简单的均线指标公式举例:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
均线公式的代码

还是先把不用看懂的部分码住,专注看下图语句的结构。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
码住

变量MA1、MA2…MA8的后面都是【:】,说明这8条语句都是输出语句,应会输出8条均线。我们启用公式看看效果。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
8条均线

仔细数一数,上图中出现了8条均线。在均线公式中,有8条输出语句,启用公式后,就会输出8条均线。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
修改为赋值语句

接下来,我们稍微修改一下公式。如上图所示,将MA5/MA6/MA7/MA8语句的【:】修改为【:=】,其他部分不变,也就是说,将这4条输出语句修改为赋值语句。现在公式中仅保留4条输出语句,再看看指标的效果。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

均线由8条减少为了4条,总之,公式中有几条输出语句,最后在指标中呈现给我们就有几条输出。

第三章 · 运算过程

语句用于计算出一个结果,并且将结果数据赋值给变量,其运算过程由数据、函数和操作符构成。

3-1 数据和参数

数据分为起始数据和结果数据,起始数据是能直接从市场行情中提取或手动输入的数据;而结果数据可以是我们需要的指标、筛选出的股票或K线,以及买卖信号等等。

有一种特殊的数据叫做参数

参数是语句在运算过程中需要用到的一个值,其数值由使用者手动输入。

在参数编辑区中将参数设置好,即可在语句中添加该参数。参数命名规则和变量一致,只能使用汉字、字母、数字的组合,不能是单独的数字,也不能有符号。此外,还需要规定参数的最大值和最小值,在使用公式时,参数的大小只能在规定的数值之间输入。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
参数编辑区

参数编辑区如上所示,其中缺省就是默认值的意思,如果使用时不手动输入数值,则参数的数值默认为缺省值。设置好参数后,我们使用公式时就能手动输入参数的值,从而便捷地更改公式的作用。

此外,网上很多代码在分享的时候,如果有参数,会直接把参数值依次排列。比如上图所示参数会写为:

M1 0 1000 5 0
M2 0 1000 10 0
M3 0 1000 20 0
M4 0 1000 60 0

大家不要直接把这样的代码复制到编辑器,而是应该填写至参数编辑区。

以系统公式【均线】为例:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
均线公式代码

均线公式的语句都使用了参数,这次就不把参数打码了。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
M1~M8为参数

上图的M1~M8就是参数,可以在参数编辑区看到相关设置。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
参数编辑区

可以看到,M1~M4分别设置的缺省为5/10/20/60。

如果我们不手动输入参数,那么M1~M4就默认表示这些数值,也就是分别输出5/10/20/60日均线,如下图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
默认参数的指标效果

那么,我们可以通过手动输入参数从而直接改变输出的均线。

在技术分析界面,使用快捷键【Alt+T】调整参数。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
调整参数

将第四条均线(M4)输入为30,这条均线就从60日改为了30日,如下图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
调整参数后的指标效果

3-2 参数精灵

参数精灵是编辑器中用于给参数写说明和备注的区域,编辑好参数精灵后,就能在参数调整界面(Alt+T)直接看到所写好的说明和备注。

参数精灵的用法:用Param#(n-1)表示编辑器参数设置区域的第n个参数,在参数调整界面Param#(n-1)就是可以手动输入的参数。

例如,Param#0表示公式设置的第1个参数,Param#1表示公式设置的第2个参数,依次类推。设置了几个参数,就可以在参数精灵中添加几个Param#(n-1),并且编写对应的说明和注释。

除了移动Param#(n-1)的位置会在参数调整界面产生影响外,其他说明和注释可以随意编写,均不影响公式使用。

以系统的均线公式为例,参数精灵如下图:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
参数精灵

打开参数调整界面(Alt+T),就能看到对应的描述并且手动输入参数。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
调整参数

3-3 函数

函数是一个源于数学的概念,指一个量随着另一个量的变化而变化。

在通达信公式体系中,函数相当于一个封装好的、作用固定的小型公式,我们先输入一个或几个数,经过函数处理后,就会得到一个结果。

在公式编辑器中,我们点击【插入函数】就能直接查看和检索所有函数。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

点击某个函数,就会出现其用法和使用例,输入什么数据,就会得到什么结果。

比如【MA(X,N)】就是用来计算均线的函数。当我们输入X和N的数据,函数就会输出X的N日简单移动平均。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

没错,MA(X,N)就是均线公式中出现的函数。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

以第一行语句为例:

MA1:MA(CLOSE,M1);

X输入为CLOSE,N输入为M1。CLOSE是关键字,代表收盘价;M1是参数,缺省默认值为5。

那么,MA(CLOSE,M1)函数的输出为以收盘价为基准的M1日简单移动平均,默认输出为5日均线。该语句的作用就是将函数MA(CLOSE,M1)的结果赋值给变量MA1,并且输出均线显示在技术分析界面上。

如果将【:】修改为【:=】:

MA1:=MA(CLOSE,M1);

即将该输出语句改为赋值语句,那么该语句的作用则变为将函数MA(CLOSE,M1)的结果赋值给变量MA1,而不会输出显示成均线。

3-4 计算符

运算过程中还需要用到操作符,除基础操作符外,最基础和最常用的符号是计算符,本期教学先做介绍。

计算符分为算数计算符和逻辑运算符。

算数计算符是我们熟悉的加减乘除,分别用加号【+】、减号【-】、星号【*】、斜杠【/】表示。算数计算的结果数据就是直接算出的结果。

逻辑运算符则是给出一系列条件,通过判断条件是否成立,得出逻辑值。逻辑值为逻辑运算的结果,仅有1和0两种结果数据:当条件成立,逻辑值为1;当条件不成立,逻辑值为0。

举个例子来理解逻辑运算符:

波有蛋1:=M1>M2;

例如,上述语句的含义为:如果M1的值大于M2,则赋值给波有蛋1的运算结果为1;如果M1的值小于M2,则赋值给波有蛋1的运算结果为0。

常见的逻辑运算符有:

  • 大于【>】
  • 小于【<】
  • 等于【=】【==】
  • 不等于【!=】【<>】
  • 大于等于【>=】
  • 小于等于【<=】
  • 与运算【AND】【&&】
  • 或运算【OR】【||】

与运算【AND】表示并且,也可写作【&&】。

运算过程为:前后条件均成立,逻辑值为1;有一项不成立,逻辑值为0。

波有蛋2:=M1>M2 AND M1>M3;

例如,上述语句的含义为:如果M1大于M2且M1大于M3,则赋值给波有蛋2的运算结果为1;否则赋值给波有蛋2的运算结果为0。

或运算【OR】表示或者,也可写作【||】。

运算过程为:前后条件有一项成立,逻辑值为1;均不成立,逻辑值为0。

波有蛋3:=M1>M2 OR M1>M3;

例如,上述语句的含义为:如果M1大于M2或M1大于M3,则赋值给波有蛋3的运算结果为1;否则赋值给波有蛋3的运算结果为0。

另外,许多函数的结果也会输出一个逻辑值,当满足函数确立的条件时,逻辑值为1;当不满足函数确立的条件时,逻辑值为0。这类函数通常用于赋值语句,或条件选股公式的输出语句。

逻辑值显示在图形上就两种结果,1就是在坐标顶部画一个点,0就是在坐标底部画一个点,如果产生多个逻辑值,这些点默认会用直线连接。

打开通达信,实践一下:

新建一个公式,选择技术指标,画线方式为副图,编辑如下语句并保存:

十字星:CLOSE=OPEN&&HIGH>LOW;

其中,十字星是变量,【:】说明该语句的结果会输出显示,CLOSE=OPEN意为收盘价等于开盘价,HIGH>LOW意为最高价大于最低价,&&是且运算,同时满足上述条件输出1。

这段话其实就是在描述十字星形态的K线特征,可想而知这个公式的效果就是:如果K线形态为十字星,则在副图对应位置输出1,否则输出0。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

接下来启动公式看看效果,如下图所示,在十字星形态的K线下方出现了尖角,这是由于公式结果输出了多个逻辑值,这些代表逻辑值的点默认会用直线连接,所以逻辑值为1的地方会呈现为尖角。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

第四章 · 公式分类

不同类型的公式使用方法各不一致,总体而言,通达信公式分为4大类

我们经常需要在网上搜索公式使用,但往往搜到的公式仅仅只有代码,甚至连代码都不完整。如果不能根据语句的代码来判断公式类别,那即便复制下代码,都无法有效使用。

4-1 公式分类的依据

输出语句是公式分类的核心依据。

简单回顾一下,语句有两种类型:

一种是仅返回结果给变量的赋值语句,一种是返回结果并将其输出给我们的输出语句。

我们使用公式,核心需求就是得到公式运算出的结果,比如指标线、筛选的个股等等。因此,如果一个公式里只有赋值语句,可想而知,它无法呈现任何有效的数据到我们眼中,那么这个公式就没有意义。公式至少要存在一条输出语句,我们才能从公式中得到某些想要的数据。

根据输出语句结果数据的不同,通达信公式分为4大类:

  • 技术指标公式
  • 条件选股公式
  • 专家系统公式
  • 五彩K线公式

等大家对上述4类公式都有最基础的认识后,在本期教学末尾,还有根据输出语句的格式,识别公式类型的具体方法。

通过下面的4个例子,我们先简单认识一下公式的4种类型:

技术指标中,输出数据通常被绘制成线条、柱状体等图形。如下图所示,均线公式输出线条的图形。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标公式:均线(系统)

条件选股中,输出数据是筛选出符合条件的个股。如下图所示,连涨选股公式输出筛选出的个股。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
条件选股公式:连涨天数(系统)

专家系统中,输出数据是提示个股的买卖信号。如下图所示,MACD公式输出两种箭头,用绿色向下的箭头提示卖出信号,用红色向上的箭头提示买入信号。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
专家系统公式:MACD买卖信号(系统)

五彩K线中,输出数据是给符合条件的K线上色。如下图所示,三个白武士形态在默认情况下,给符合条件的K线上成红色,其他K线上成绿色,而K线实体的实心与否依旧表示涨跌。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
五彩K线公式:三个白武士形态(系统)

4-2 技术指标简介

技术指标公式就是在技术分析界面中见到的指标,比如MA、KDJ、MACD等。

分时图、K线图、副图都属于技术指标界面,广义上讲,通达信界面直接可见的股价走势、K线、成交量都是由技术指标公式生成的。

那么,如何使用技术指标?

在技术分析界面点击鼠标右键,选择指标即可调出技术指标公式使用。

在主图点击,则使用主图指标。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
主图指标使用方式

在副图点击,则使用副图指标。

副图指标快捷键:【Ctrl+I】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
副图指标使用方式

4-3 条件选股简介

利用条件选股公式可以把符合一定技术形态的个股选出来,首先在公式管理器中建立条件选股公式,再通过“条件选股”调用条件选股公式。

条件选股调出:功能菜单-公式-条件选股

快捷键:【Ctrl+T】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股器使用方式

4-4 专家系统简介

编写好专家系统公式后,可以叠加到K线上,专家系统自动列出买卖操作信号。

在K线界面点击鼠标右键,选择系统指示-专家系统指示,选择某一专家系统点击“确定”,专家系统就会叠加在K线上面了。

快捷键:【Ctrl+E】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
专家系统使用方式

4-5 五彩K线简介

编写好五彩K线公式后,可以叠加到K线上,会把特殊的K线形态用不同的颜色标识出来。

在K线界面点击鼠标右键,选择系统指示-五彩K线指示,选择某一五彩K线点击“确定”,五彩K线就会叠加在K线上面了。

快捷键:【Ctrl+K】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
五彩K线使用方式

4-6 如何通过语句识别公式类型?

技术指标公式是最基础的公式,任何公式都可以直接新建在编辑器的技术指标分类,从而生成指标。其他的公式类型则可以通过输出语句的格式确认。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通过语句识别公式类型

下面是对上图的说明:

如果公式有多条输出语句,即会输出多个计算结果,则该公式一定为技术指标公式。如果公式仅有一条输出语句,且该语句的计算结果不为逻辑值,则该公式一定为技术指标公式。

如果公式仅有一条输出语句,且该语句的计算结果为逻辑值,则需要根据逻辑值的运算过程确认公式类型:

  • 附加选股条件逻辑判断式-条件选股公式
  • 附加色彩逻辑判断式-五彩K线公式

如果公式有且仅有两条输出语句,且附加买卖逻辑判断式,则该公式是专家系统公式

任何公式的输出都能以技术指标的形式展现。

最后关于各类公式的详细介绍中,会分别讲解选股条件逻辑判断式、买卖逻辑判断式、色彩逻辑判断式的构成。

第五章 · 快捷键和键盘精灵

为了更加得心应手、轻车熟路地运用公式,我们还需要掌握一些必不可少的快捷键。同时,如果能用好键盘精灵,用起公式将更加上手。

5-1 通用快捷键

通达信本身有许多快捷键,能帮助我们快速上手使用软件。那么,想玩转通达信公式,需要了解哪些快捷键呢?

这里给大家展示一些常用的快捷键:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通达信快捷键展示

如果想了解更多,可以去通达信官网查询,也欢迎大家交流讨论。

【Ctrl+F】:公式管理器

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

公式管理器是公式的基础,本系列教学开始就详细介绍过公式管理器,公式的创建、编辑、导入、导出、查找都离不开它。在管理器界面点击【F3】也能快捷查找公式和跳转。

【Ctrl+D】:系统设置

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

在系统设置的设置2界面,我们可以编辑常用指标,之后在技术分析界面就能直接选中指标使用,也能使用快捷键【/】切换指标(记住半角输入才行)。

【Ctrl+T】:条件选股

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

和指标公式不同,选股公式编辑好后并不能直接在编辑器中使用,而是要通过选股器使用。

后续的选股公式教学中会对此详细介绍,这里我们只需记住使用【Ctrl+T】就能一键呼出选股器即可。

5-2 技术分析界面快捷键

上面介绍的几个快捷键在通达信软件的任意位置都能使用,此外,还有许多实用的快捷键只有在技术分析界面才能生效。

技术分析界面包括分时图、K线图两大类,我们使用下面的快捷键时,根据所处的界面不同,产生的效果也有所区别。可以双击界面右侧纵轴或使用回车切换个股的分时图和K线图。

下面是主要的技术分析界面专用快捷键:

【Ctrl+I】:选择指标

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
【Ctrl+I】:选择指标

【Ctrl+K】:五彩K线指示

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
【Ctrl+K】:五彩K线指示

【Ctrl+E】:专家系统指示

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
【Ctrl+E】:专家系统指示

【Alt+R】:指标用法注释

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
【Alt+R】:指标用法注释

【Alt+S】:修改当前指标公式

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
【Alt+S】:修改当前指标公式

【Alt+T】:调整指标参数

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
【Alt+T】:调整指标参数

【Ctrl+H】:删除所有指示

5-3 键盘精灵

很多习惯用手机炒股的朋友,初次接触电脑版通达信时不知道怎么搜索股票,找不到搜索框在哪里。

键盘精灵就可以理解成是电脑版的搜索框,用好了能简化许多复杂的操作。

键盘精灵最常见的用法就是快捷检索,多数情况下我们用来检索个股或板块。

比如打开软件后直接输入【GJZQ】,键盘精灵就会自动检索出【国金证券】的股票信息。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
键盘精灵检索个股

遇到忘记全名的股票可以输入【?】模糊检索。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
模糊检索个股

除了检索股票,键盘精灵还可以检索技术指标和专家系统。直接输入公式名称或首字母缩写,键盘精灵就会将其检索出来,接着点击检索到的指标或专家系统就能将公式叠加到技术分析界面上。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
键盘精灵检索指标

除了检索,键盘精灵还能通过直接输入数字开启对应的功能,其中对公式的运用帮助较大的是【.3】【.9】

输入【.3】会显示系统自带的技术指标公式,可以直接选择使用。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
.3:指标功能

输入【.9】会显示和公式相关的功能。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
.9:公式相关功能
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
掌握以上全部快捷键后,相信大家一定能迅速上手通达信公式

第六章 · 函数

如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。

在公式编辑器中,我们点击【插入函数】,就能直接查看和检索所有函数。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

学习函数的方法:

  1. 了解函数的基本形式和使用方法,比如输入什么数据,会得到什么类型的数据。
  2. 了解函数功能,找到合适的运用场景,比如函数被限制在什么周期才有效,如分时、日线、周线等。

6-1 常用行情函数

行情函数是直接引用起始数据的函数,用法为将行情函数作为变量使用,功能为直接返回某个起始数据。

【HIGH/H】:直接返回该周期最高价

【LOW/L】:直接返回该周期最低价

【OPEN/O】:直接返回该周期开盘价

【CLOSE/C】:直接返回该周期收盘价

【VOL/V】:直接返回该周期成交量

【ADVANCE】:直接返回该周期上涨家数。(本函数仅对大盘有效)

【DECLINE】:直接返回该周期下跌家数。(本函数仅对大盘有效)

【AMOUNT】:直接返回该周期成交额

【ASKPRICE】

  • 分类:行情函数
  • 功能:返回委卖价
  • 形式:ASKPRICE(N)
  • 用法:输出行情数值,N取1~3,分别返回委卖1~委卖3的价格。(本函数仅个股在分笔成交分析周期有效)

【ASKVOL】

  • 分类:行情函数
  • 功能:返回委卖量
  • 形式:ASKVOL(N)
  • 用法:输出行情数值,N取1~3,分别返回委卖1~委卖3的成交量。(本函数仅个股在分笔成交分析周期有效)

【BIDPRICE】

  • 分类:行情函数
  • 功能:返回委买价
  • 形式:BIDPRICE(N)
  • 用法:输出行情数值,N取1~3,分别返回委买1~委买3的价格。(本函数仅个股在分笔成交分析周期有效)

【BIDVOL】

  • 分类:行情函数
  • 功能:返回委买量
  • 形式:BIDVOL(N)
  • 用法:输出行情数值,N取1~3,分别返回委买1~委买3的成交量。(本函数仅个股在分笔成交分析周期有效)

【BUYVOL】

  • 分类:行情函数
  • 功能:返回主动性买单量
  • 形式:BUYVOL
  • 用法:输出行情数值或0,当本笔成交为主动性买盘时,返回成交量,否则返回0。(本函数仅个股在分笔成交分析周期有效)

【SELLVOL】

  • 分类:行情函数
  • 功能:返回主动性卖单量
  • 形式:SELLVOL
  • 用法:输出行情数值或0,当本笔成交为主动性卖盘时,返回成交量,否则返回0。(本函数仅个股在分笔成交分析周期有效)

【ISBUYORDER】

  • 分类:行情函数
  • 功能:判断该成交是否为主动性买单
  • 形式:ISBUYORDER
  • 用法:输出逻辑值,当本笔成交为主动性买盘时,返回1,否则为0。(本函数仅个股在分笔成交分析周期有效)

【ISSELLORDER】

  • 分类:行情函数
  • 功能:判断该成交是否为主动性卖单
  • 形式:ISSELLORDER
  • 用法:输出逻辑值,当本笔成交为主动性卖盘时,返回1,否则为0。(本函数仅个股在分笔成交分析周期有效)

6-2 使用频率最高的几类函数

【CROSS】

  • 分类:逻辑函数
  • 功能:描述两条线交叉,比如某条指标线穿过另一条指标线。
  • 形式:CROSS(X,Y)
  • 用法:输出逻辑值,表示X向上穿过Y,符合条件返回1,否则返回0。

例如:

CROSS(MA(CLOSE,5),MA(CLOSE,10))

表示5日均线与10日均线交金叉。

【COUNT】

  • 分类:引用函数
  • 功能:统计在指定范围内满足条件的周期数,比如统计最近几天总共收阳几次。
  • 形式:COUNT(X,N)
  • 用法:输出计数值,统计N周期中满足X条件的周期数,若N≤0则从第一个有效值开始。

例如:

COUNT(CLOSE>OPEN,20)

表示统计20周期内收阳的周期数。

【REF】

  • 分类:引用函数
  • 功能:引用若干周期前的数据,比如五天前的收盘价。
  • 形式:REF(X,A)
  • 用法:输出引用的数值,表示A周期前的X值,A可以是变量。

例如:

REF(CLOSE,BARSCOUNT(C)-1)

表示第二根K线的收盘价。

【IF】

  • 分类:选择函数
  • 功能:根据条件求不同的值,比如想让某一逻辑运算符或者输出逻辑值的函数输出其他数值。
  • 形式:IF(X,A,B)
  • 用法:输出给定的A或B的数值,若X不为0则返回A,否则返回B。

例如:

IF(CLOSE>OPEN,HIGH,LOW)

表示该周期收阳则返回最高值,否则返回最低值。

【IFF】的用法和IF一致,IFF(X,A,B)输出给定的A或B的数值,若X不为0则返回A,否则返回B。

【IFN】的用法和IF相反,IFN(X,A,B)输出给定的A或B的数值,若X不为0则返回B,否则返回A。

后面还有其他常用函数,篇幅太长,这里就不一一例举了,需要更多资料你懂的~

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通达信函数表(部分展示)

第七章 · 未来函数

未来函数会利用当前还未产生的数据对已产生的数据进行修正,随着时间的推移使函数的结果不断变化。

7-1 未来函数的作用和危害

未来函数是一种能在一定程度上预测股票未来的走势的参考工具,比如对阶段顶底转折点的判断,在严格优化后可以作为选股的依据。

如果引用周期的范围超过使用周期的范围,那么任何函数都有可能成为未来函数,所以我们不必害怕未来函数,指标中含有未来函数很常见,这往往只有参考意义,记住要靠自己来做出决策。

据统计,在网上能随便找到的代码中,至少80%的专家系统公式加入了未来函数,这是非常危险的,它们的买卖信号可以做得非常漂亮,买点和卖点成功率极高。

如果你不知道未来函数的输出结果会随着时间的推移发生变化,那么你一定会误以为这个专家系统非常强大。你看到它的历史信号很准确,于是跟随其新信号买卖的话,很有可能今天你跟随了公式给出的买入信号,结果你买入后第二天大跌,那前一天的买入信号就会消失,你才会意识到自己被坑了。

不仅新信号可能消失,历史信号的位置也可能会随着行情的变化而变得更加准确,让后来的使用者更加容易误判,这就是未来函数的信号消失和漂移。所以,未来函数最大的危害就是会美化公式的历史表现,有些别有用心的人会故意用未来函数去误导看不懂公式的股民,相信你看完本文后就一定不会踩到这些坑!

7-2 最典型的未来函数:之字转向

简单来说,每次价格由涨转跌或者由跌转涨就叫做【之字转向】,由涨转跌的位置叫做【波峰】,由跌转涨的位置叫做【波谷】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
之字转向

我们可以通过函数【ZIG】【ZIGA】来规定之字转向的最小判定振幅,即只有超过该振幅才认定为之字转向。【ZIG】规定百分比振幅,【ZIGA】直接规定涨跌的股价,除此之外两个函数没有区别,下面是之字转向函数的具体用法介绍。

【ZIG】

  • 分类:未来形态函数
  • 功能:返回之字转向的价格波峰值或波谷值
  • 形式:ZIG(K,N)
  • 用法:输出行情数值,当价格变化量超过N%时转向,取此价格为波峰或波谷,并输出此价格。K取0~3或数组信息,表示各类价格。(0-开盘价,1-最高价,2-最低价,3-收盘价)。

例如:

ZIG(3,5)

表示收盘价的5%的ZIG转向,并输出此收盘价。

【ZIGA】

  • 分类:未来形态函数
  • 功能:返回之字转向的价格波峰值或波谷值
  • 形式:ZIGA(K,N)
  • 用法:输出行情数值,当价格变化量超过N时转向,取此价格为波峰或波谷,并输出此价格。K取0~3或数组信息,表示各类价格。(0-开盘价,1-最高价,2-最低价,3-收盘价)。

例如:

ZIGA(3,5)

表示收盘价的±5元的ZIG转向,并输出此收盘价。

【ZIG】函数输出的数据为每次之字转向的波峰和波谷,非波峰或波谷的位置则没有输出,而最新的之字转向未产生前的输出为0。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
之字转向指标默认图形

因此,如果将之字转向作为指标,那么在不加修饰的情况下,输出的图形就是波峰和波谷之间的连线,如图所示。

7-3 函数库中的未来函数

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
未来函数显示紫色

在函数库中标为紫色的函数一定是未来函数,使用此类函数后,通达信会提示【用到未来数据】

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通达信提示【用到未来数据】

函数库中有如下用到未来数据的函数:

1、未来行情函数

【DHIGH】:直接返回该不定周期最高价

【DLOW】:直接返回该不定周期最低价

【DOPEN】:直接返回该不定周期第一天的开盘价

【DCLOSE】:直接返回该不定周期最后一天的收盘价

【DVOL】:直接返回该不定周期总成交量

所谓的不定周期,指函数输出的量价并非是某个可以自行选择的固定周期(比如分时、日线、周线等等)的数据,其周期是每两次【之字转向】中间的区间,由于之字转向的发生是无法预测的,因此这样产生的周期就是不定周期。

2、未来引用函数

【BACKSET】

  • 分类:未来引用函数
  • 功能:将当前位置到若干周期前的数据设为1
  • 形式:BACKSET(X,N)
  • 用法:输出逻辑值,若X非0,则将当前位置到N周期前的数值设为1。

例如:

BACKSET(C>O,2)

表示若收阳则将该周期及前一周期数值均设为1,否则均设为0。

【BARSNEXT】

  • 分类:未来引用函数
  • 功能:统计下一次条件成立到当前的周期数。
  • 形式:BARSNEXT(X)
  • 用法:输出计数值,统计下一次X不为0到当前的周期数。

例如:

BARSNEXT(C>O)

表示下一次收阳到当前的周期数。

【REFX】

  • 分类:未来引用函数
  • 功能:引用若干周期后的数据。
  • 形式:REFX(X,A)
  • 用法:输出引用数据的值,比如五天后的收盘价。

例如:

波有蛋1:=IF(C>O,1,2);
波有蛋2:REFX(CLOSE,TT);

表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘价。

【REFXV】是平滑处理的【REFX】函数,用法与【REFX】一致。

【XMA】

  • 分类:未来引用函数
  • 功能:返回偏移移动平均
  • 形式:XMA(X,N)
  • 用法:输出平均数,X的N日偏移移动平均,用到了当日以后N/2日的数据,N支持变量,只供内部测试使用。

3、未来形态函数

【ZIGA】

  • 分类:未来形态函数
  • 功能:返回之字转向的价格波峰值或波谷值
  • 形式:ZIGA(K,N)
  • 用法:输出行情数值,当价格变化量超过N时转向,取此价格为波峰或波谷,并输出此价格。K取0~3或数组信息,表示各类价格。(0-开盘价,1-最高价,2-最低价,3-收盘价)。

例如:

ZIGA(3,5)

表示收盘价的±5元的ZIG转向,并输出此收盘价。

【ZIGA】用法与【ZIG】一致,表示当价格变化量超过N时转向,注意没有百分比。

【PEAK】

分类:未来形态函数

功能:返回之字转向前的某个价格波峰值

形式:PEAK(K,N,M)

用法:输出行情数值,之字转向ZIG(K,N)前的第M个波峰的价格,M必须大于等于1。

例如:PEAK(1,5,2)表示5%最高价的之字转向前的第2个波峰的价格。

【TROUGH】

  • 分类:未来形态函数
  • 功能:返回之字转向前的某个价格波谷值
  • 形式:TROUGH(K,N,M)
  • 用法:输出行情数值,之字转向ZIG(K,N)前的第M个波谷的价格,M必须大于等于1。

例如:

TROUGH(2,5,2)

表示5%最低价的之字转向前的第2个波谷的价格。

【PEAKBARS】

  • 分类:未来形态函数
  • 功能:统计之字转向的波峰到当前的周期数。
  • 形式:PEAKBARS(K,N,M)
  • 用法:输出计数值,统计之字转向ZIG(K,N)前的第M个波峰到当前的周期数,M必须大于等于1。

例如:

PEAKBARS(1,5,2)

表示统计5%最高价的之字转向前的第2个波峰到当前的周期数。

【TROUGHBARS】

  • 分类:未来形态函数
  • 功能:统计之字转向的波谷到当前的周期数。
  • 形式:TROUGHBARS(K,N,M)
  • 用法:输出计数值,统计之字转向ZIG(K,N)前的第M个波谷到当前的周期数,M必须大于等于1。

例如:

TROUGHBARS(2,5,2)

表示统计5%最低价的之字转向前的第2个波谷到当前的周期数。

4、未来绘图函数

【DRAWLINE】

  • 分类:未来绘图函数/操作符-线形描述符-直线段
  • 功能:用于绘制直线段。
  • 形式:DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)
  • 用法:当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为1表示是延长类型。

例如:

DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1)

表示在创20天新高与创20天新低之间画直线并且向右延长。

7-4 如何识别未来函数?

除了函数库中的未来函数,有的函数可能因为引用周期的范围超过使用周期的范围导致使用未来数据。这种情况下,系统不会标识出【用到未来数据】,因此需要我们自行判断,具体方法是看其输出是否会随着周期的变化而变化,如果函数的结果就不是定值,那么这种情况下它就属于未来函数。

比如引用日线的数据在盘中使用的情况,由于完整的日线周期需要收盘才能产生,因此盘中的数据周期范围其实是小于完整的日线周期范围的,这样就有可能会使用未来数据。

【CLOSE】输出收盘价,盘中的收盘价其实就是最新的实时成交价,会跟随行情的变化而变化,这种情况下的CLOSE就属于未来函数。

【OPEN】却一定输出定值,因为当前周期的开盘价在开盘的瞬间就已经确认,无论后续的行情如何发展,都不会对本周期已经产生的开盘价产生影响,所以OPEN一定不是未来函数。

再比如很多人分不清的【HHV】求最大值函数,我们也可以通过上述方法判断。

【HHV】

  • 分类:引用函数
  • 功能:返回周期内的最大值。
  • 形式:HHV(X,N)
  • 用法:输出行情数值,N周期内X的最大值,N=0则从第一个有效值开始。

例如:

HHV(HIGH,1)

表示求当前周期的最高价,当我们在盘中的日线周期或周末的周线周期使用该函数,这个函数就是未来函数,因为后续的行情可能出现更高的价格,影响函数输出的结果。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通达信未来函数表(部分展示)

后面还有其他常用函数,篇幅太长,这里就不一一例举了,需要更多资料你懂的~

概括起来,如果函数的使用周期小于引用周期,那么这个函数就可能是未来函数,具体要看其输出结果是否为定值来判断。对于初学者,尽量避免使用未来函数,使用时也一定要谨慎,时刻提醒自己未来函数只能作为参考。

第八章 · 周期/snapshot/tick

如果想避免使用未来数据,就要理解周期、快照和时点的含义。

8-1 周期

程序化交易中,周期的含义是完成一个循环所需的时间,也可以理解为一次次固定时长的循环。

注意,股市中的周期仅包含交易日的交易时间。

在同一个公式中,所有数据默认都是同一个周期,即调用公式时设置的周期。用K线图举例,在日线使用,周期就是一天,在周线使用,周期就是一周。

8-2 快照和时点

不论是日K、周K还是60分钟K线图,所有的K线图周期都是准确明了的,大家看一眼就能理解。分时行情的周期则较为特殊,大多数股民想当然地认为分时图周期是逐笔行情,实则不然。

因为每次成交的间隔不一定一致,所以逐笔行情从原理上讲不符合周期需要固定时长的概念;更现实的原因则在于硬件和软件的限制。

首先是硬件方面的限制,硬件是影响TAQ传输的主要因素。

TAQ是Trades and Quotes的缩写,意为交易行情和订单委托行情。

交易行情指即时成交数据,包括最新成交价、成交量、成交额、最高价、最低价等字段信息。

订单委托行情指买卖报价和委托量,也就是我们所谓的盘口行情。

TAQ行情数据的传输链路可以简述为:交易所→柜台→终端

即所有的行情都是由证券交易所公布,最终通过不同的路径传输到券商或第三方平台。

股市庞大的数据让交易所的服务器承受着巨大的传输压力,所以交易所将数据传输做了分级处理,也就是level1行情和level2行情。

LV1行情也叫做snapshot(快照)级行情,每3秒刷新一次,显示5档盘口行情,即委买1~委买5和委卖1~委卖5的报价。

1 snapshot=3秒

LV2行情则是逐笔行情,也叫做tick(时点)级行情,其行情数据实时刷新,包含每一笔成交的最新TAQ,并显示10档盘口和最优档位的前50笔订单的委托量,实时逐笔委托、成交信息,委托买/卖总量,买/卖均价等数据。

tick可以视作股市的最小周期,程序化交易中被称作时点,意为最小刷新周期。

1 tick=1次成交

快照行情是对逐笔行情数据在一个时间截面上的数据统计,snapshot的TAQ实际上是每3秒的最后1tick的TAQ。

因此,snapshot的传输压力比起更精确及时的tick行情要小,这也是我们能在券商或第三方平台直接获取的行情。而tick行情则需要开通level2,交易所的指导价为2万/年,各平台的价格也都有所不同,我这里则有免费开通的渠道。

硬件限制了TAQ的分级,而软件则限制了分时图的周期。

以通达信LV1行情为例,快照行情每3秒刷新一次,那么在通达信软件的实时行情显示中就会3秒刷新一次,但由于服务器限制,以snapshot为单位的行情只能做到实时刷新,却不会储存。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

因此,通达信将分时图储存数据的周期设为一分钟(20snapshot),我们能看到的分时行情数据其实是每分钟的最后1个tick的TAQ。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
分时图和5秒K线对比

通达信支持的最小周期为5秒,我们分列显示分时行情(1分钟周期)和5秒周期行情,就能观察到两者有明显的差距,如上图所示。而专业的量化平台(如迅投QMT)则能将分时行情的TAQ储存周期缩短至tick级,大大提升了交易的可靠性。

8-3 免费开通LV2行情与量化平台

目前,在国内最为广泛运用的智能策略交易终端有两款:恒生PTrade和迅投QMT,适用于交易活跃用户、量化爱好者、专业量化投资者,以及机构投资者。

PTrade功能定位于智能策略条件单等交易工具,可对标东方财富、通达信、同花顺收费版。

QMT功能定位于智能策略编写,技术门槛较高,需要用户有一定编程经验。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
直接开通迅投QMT量化平台参考价格

我们可以根据自己的需求选择使用PTrade或QMT

通过客户经理的渠道码开户,就能直接免费申请

并且同步开通股票万1 ETF万0.4低佣

一定注意不要自己开户!

由于量化维护成本高,自己开户再去申请开通量化权限会要求较高的资金门槛,不仅佣金高达万3,后续还没有客户经理专人服务和提供技术支持。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
迅投QMT量化平台功能
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
恒生PTrade量化平台功能
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
PTrade&QMT各版本功能对比

第九章 · 跨周期引用

初学者通常希望避免使用未来数据,但有时我们也会去主动引用其他周期的数据。

在同一个公式中,所有数据默认都是同一个周期,即调用公式时设置的周期。用K线图举例,在日线使用,周期就是一天,在周线使用,周期就是一周。

对变量用跨周期引用操作符【#】可以跨周期引用数据,注意【#】有两种用法。

【#】

  • 分类:操作符-引用
  • 功能:跨周期引用行情数值或指标数据。
  • 形式1:X#K
  • 用法1:输出跨周期行情数值,X在K周期的数据。X为行情关键字(OPEN,HIGH,LOW,CLOSE,VOL,AMOUNT,VOLINSTK等);K为引用周期(MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR);引用周期必须要大于使用周期。

例1:

CLOSE#WEEK

表示引用周线的收盘价。

  • 形式2:X.Y#K
  • 用法2:输出跨周期引用指标的值,X指标的Y变量在K周期的数据。X为指标公式名称(可以是系统公式和用户公式);Y为X指标的变量;K为引用周期(MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH,SEASON,YEAR);引用的公式不可带参数,且对应周期的数据必须要先下载到本地。

例2:

KDJ.K#WEEK

表示引用KDJ指标在周线的K值。

再举个简单的自编公式为例:

指标公式名称:波有蛋

代码如下:

周线开盘价:O#WEEK;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标:波有蛋1

运行指标波有蛋效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
日线显示
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
周线显示
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
月线不显示

由于指标波有蛋的引用周期为周线,所以在月K使用该指标时,就出现了引用周期小于使用周期的情况,于是月线周期该指标无效,便没有显示输出。

接下来,我们使用另一种跨周期引用的方法,就能规避这种局限。

指标公式名称:波有蛋1

代码如下:

开盘价:O;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标:波有蛋1

指标公式名称:波有蛋2

代码如下:

日线开盘价:波有蛋1.开盘价#DAY;
周线开盘价:波有蛋1.开盘价#WEEK;
月线开盘价:波有蛋1.开盘价#MONTH;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标:波有蛋2

运行指标波有蛋2效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
日K线周期
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
周K线周期
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
月K线周期

能够看到,代表引用日线的白线、周线的黄线、月线的紫线,分别与对应的K线重合。这样一来,就可以避免直接引用行情关键字时,只能在小周期公式中得到大周期数据的局限。

第十章 · 绘制技术指标

为了增强指标的可视化呈现,我们常常使用绘图函数线形描述符对指标的输出进行修饰,让指标线的显示能够符合需求。

10-1 绘图函数

前文介绍过技术指标的基本特征:

技术指标就是在技术分析界面中见到的指标,输出数据通常被绘制成线条、柱状体等图形。

写好一个指标后,如果不加任何修饰,那么指标线默认为连接每个数据之间的直线段。

举个简单的例子:

指标公式名称:波有蛋

代码如下:

最高价:H;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网

技术指标:波有蛋

运行指标波有蛋效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
最高价之间用折线连接

绘图函数的作用就是将指标线画成不同的类型,比如画柱体:

指标公式名称:波有蛋1001

代码如下:

最高价:H;
柱体:STICKLINE(1,H,L,1,0);
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标:波有蛋1001

运行指标波有蛋1001效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
最高价和最低价之间画柱体
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
通达信绘图函数表(部分展示)

10-2 线形描述符

绘图函数确认指标线的基本画法,线形描述符的作用则是对画好的指标线进行进一步的修饰,让指标的显示更符合我们的需求。

还是以刚刚的公式为例:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
柱体默认显示黄色

前例的公式中,柱体默认显示为黄色,在绘图函数后面附加线形描述符【COLOR】和RGB颜色数据,则可修改指标线的颜色。比如【COLOR80FF80】就表示绿色,我们修改一下公式:

指标公式名称:波有蛋1002

代码如下:

最高价:H;
柱体:STICKLINE(1,H,L,1,0)COLOR80FF80;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标:波有蛋1002

运行指标波有蛋1002效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
柱体显示绿色

上面两个例子分别展示了绘图函数线形描述符最基础的运用,我们还能根据自己的想法任意修饰,大家可以在通达信的编辑器里自行摸索各种操作符的用法,遇到不懂的地方欢迎讨论。

第十一章 · 选股器

本章继续深入讲解选股公式的编写模式,选股器的妙用,以及自动选股如何设置

11-1 选股条件逻辑判断语句

选股公式有且仅有一条输出语句,即选股条件逻辑判断式,一般我们将选股条件语句放到公式的末尾。

大家应该记得,在通达信公式的基本特性中,语句是按照顺序发挥作用的,也就是先写入的语句才能被后写入的语句调用。所以,选股条件语句只有放在末尾,才能保证其囊括了公式中的所有条件;如果放在中间,那么后面的条件就是无效条件。

选股条件语句的输出必须为逻辑值,逻辑值返回1的股票就是公式最终会选出的股票。并且,作为唯一的输出语句,选股条件语句可以不写变量,而直接写运算过程,因为它不需要被引用。

最简单的选股公式可以只有选股条件语句,如下所示:

选股公式名称:波有蛋1101

代码如下:

CLOSE=OPEN&&HIGH>LOW;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股公式:波有蛋1101

波有蛋1101的效果为选出当前周期形态为十字星的股票。

(收盘价=开盘价且最高价>最低价,由于选股公式在不同时间选出的股票肯定不同,所以就不在这里展示选股的结果了,大家可以复制代码自行试验

如果条件更多,一般的操作方法是将每个条件单独写成一行赋值语句,最后用AND、OR、IF等逻辑符或函数

将前面的所有条件整合成输出语句,如下所示:

选股公式名称:波有蛋1102

代码如下:

M5:=MA(C,5);
M10:=MA(C,10);
M20:=MA(C,20);
M60:=MA(C,60);
条件1:=M5>=M60;
条件2:=M10>=M60;
条件3:=M20>=M60;
条件1 AND 条件2 AND 条件3;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股公式:波有蛋1102

前4行语句将M5~M60这4个变量分别赋值为5/10/20/60日均线,5~7行语句给出3个条件,分别表示5日线、10日线、20日线位于60日线上方,最后,使用AND连接条件1~3,意为筛选出同时满足上述3个条件的股票。(大家可以复制代码自行试验)

11-2 选股器的妙用

写好选股公式后,需进入选股器使用。(快捷键:Ctrl+T)

注意,首次使用选股器需下载完整的行情数据,耗时较长,如果你还没有用过选股公式,建议你先随便尝试一个系统公式,把数据下载好;后续每次使用选股器会更新数据,耗时短。

在选股器主界面,我们可以:

  • ①选择、查找选股公式,并查看、编辑;
  • ②改变选股的周期和范围;
  • ③勾选选股的条件。
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股器主页设置1

基础设置完成后,加入选择的公式。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股器主页设置2

如有需要,还能继续添加公式。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股器主页设置3

添加多个公式后,需要选择全部条件相与/相或,分别扩大或压缩我们的选股范围。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股器主页设置4

最后,点击选股入板块,选择我们想加入的板块(没有可以新建),点击确定,开始执行选股。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股器主页设置5
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股入板块

等待读条完毕,完成选股。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
等待执行选股

之后就能在我们创建的板块看到选中的股票。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选股完成

11-3 自动选股设置

由于行情变动,同一个选股公式在不同的时间筛选出的股票都可能不一样。为了保证选股的时效性,我们需要相隔固定周期重新选股,如果人工操作就比较繁琐,因此可以设置一个自动选股

点击公式选项,选择自动选股设置,进入设置界面。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
自动选股设置

点击添加方案,选择我们想用的选股公式,之后设置自动选股的周期,一般设置为240分钟,即每天自动选股一次。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
添加方案1
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
添加方案2

之后选择要选入的板块,和选股器的操作一致,然后点击确定保存方案。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
执行方案

最后,选中刚才保存的方案,点击执行方案,自动选股就设置好了,后面每次打开选股的板块,只要到了自动选股周期就会刷新一次。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
自动选股设置完毕

第十二章 · 交易系统/专家系统

系统一方面可以同时提示买入和卖出;另一方面可以通过模拟操作,对指标买卖的收益、指标的最佳参数及最佳指标等各情形进行测试。

12-1 专家系统和买卖信号

专家系统是在条件选股功能上的一次大的延伸,旨在建立一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。

下面举一个简单的例子说明专家系统的基础运用。

专家系统的输出语句有且仅有两条,分别是买入信号逻辑判断语句卖出信号逻辑判断语句,输出为1时分别标注买入信号和卖出信号,输出为0时无效果。

创建专家系统会自动给出4行买卖信号判断语句:

{多头买入(买开)} ENTERLONG: ;
{多头卖出(卖平)} EXITLONG: ;
{空头卖出(卖开)} ENTERSHORT: ;
{空头买入(买平)} EXITSHORT: ;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
创建专家系统

根据多空方向保留需要的语句,一般保留ENTERLONG和EXITLONG。

以系统公式MACD专家系统为例:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
MACD专家系统

前半部分是原封不动的MACD指标公式:

DIFF:=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA  := EMA(DIFF,M);
MACD := 2*(DIFF-DEA);

末尾附加两行买卖信号语句:

ENTERLONG:CROSS(MACD,0);
EXITLONG:CROSS(0,MACD);

添加MACD专家系统指示效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
专家系统:MACD

【CROSS】函数是买卖信号语句最常用的逻辑函数。

该交易系统的功能为每当MACD金叉提示买入,死叉提示卖出。

12-2 把选股公式转写为专家系统

往期教学介绍过,选股公式中唯一的输出语句是选股条件逻辑判断语句,当前周期输出为1则选出股票。

换句话说,虽然选股公式的效果为选出股票,但实际上整个公式会输出一个逻辑值,了解这个原理后,我们就可以开始把选股公式转写为专家系统了。

第一步:直接把选股公式的代码复制到专家系统中

以上一章的选股公式波有蛋1102为例。

选股公式名称:波有蛋1102

代码如下:

M5:=MA(C,5);
M10:=MA(C,10);
M20:=MA(C,20);
M60:=MA(C,60);
条件1:=M5>=M60;
条件2:=M10>=M60;
条件3:=M20>=M60;
条件1 AND 条件2 AND 条件3;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
第一步

第二步:把选股公式的逻辑判断语句改为赋值语句

由于专家系统有且仅有提示买卖点的两行输出语句,可想而知要把选股公式的逻辑判断语句改为赋值语句,添加变量和赋值符【:=】即可

波有蛋1102:=条件1 AND 条件2 AND 条件3;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
第二步

第三步:添加买卖信号逻辑判断语句,输出为1则给出买卖信号

我们先做个假设,如果直接把条件选股语句照搬到买卖信号语句,会发生什么?

ENTERLONG:波有蛋1102;
EXITLONG:NOT(波有蛋1102);
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
照搬的话…

显然,选股条件的范围通常较大,很可能出现像这样一大片的信号,失去了意义:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
信号成片出现

我们更希望,仅在上述条件第一次成立时才给出买入信号,仅在第一次不成立时才给出卖出信号。要做到这点,只需要使用简单的【CROSS】函数,格式如下:

买入:CROSS(选股条件,0.5);
卖出:CROSS(0.5,选股条件);

CROSS(选股条件,0.5)表示选股条件语句的逻辑值上穿0.5,也就是从0变为1,意味着条件第一次成立,反之亦然。因此,对上个例子做出修改后,买卖信号就只在第一次满足条件时才出现了。

专家系统名称:波有蛋1201

代码如下:

M5:=MA(C,5);
M10:=MA(C,10);
M20:=MA(C,20);
M60:=MA(C,60);
条件1:=M5>=M60;
条件2:=M10>=M60;
条件3:=M20>=M60;
波有蛋1102:=
条件1 AND 条件2 AND 条件3;
ENTERLONG:
CROSS(波有蛋1102,0.5);
EXITLONG:
CROSS(0.5,波有蛋1102);
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
专家系统:波有蛋1201

添加专家系统波有蛋1201指示效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
波有蛋1201效果

12-3 模拟测评和步长

程序交易测评系统(快捷键:Ctrl+S)用于测试专家系统的效益。

打开测评系统,首先选择需要测试的公式。可以看到除了专家系统外,还可以测试技术指标、选股公式。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
程序交易测评系统

指标和选股公式本身没有买卖信号,但系统可以通过增加设定在原有公式的基础上新增买卖条件,本质上还是测试专家系统。

所以下面就直接用通达信自带的MACD专家系统来举例说明。首先选中MACD专家系统,在测评品种添加我们想测试的证券,其他设置默认。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
测试MACD专家系统

这里就拿上证指数举例,选好后点击开始测试即可。

测试完毕后系统会给我们一个测评报告,会显示整体的交易、盈亏状况。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
测评报告

双击测试证券,可以看到具体的买卖位置和交易信息。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
买卖位置和交易信息

这就是测评系统的基本用法,此外还可以使用优化参数进一步测评。

专家系统的参数设置中多出了一个名为【步长】的项目,步长指的是每轮测试周期,参数会增加的值。

进入测试报告栏,使用优化参数,选中的参数就会从最小值开始,每轮测试增加步长值,直到最大值为止。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
选择参数

如果我们设置的最小值和最大值跨度远超过步长,那么测试轮次就会非常多,因此耗时也会非常久,要耐心等待测试结果。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
优化参数耗时较长

测试完毕后,我们就可以找到最符合需求的参数设置,即可把该设置作为缺省。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
优化参数

第十三章 · 五彩K线

五彩K线公式是附属于条件选股之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。

13-1 单根K线

最简单的五彩K线公式仅对单根K线进行标识。

以系统公式锤头为例,作用即凸显出锤头线形态的K线,添加指示后效果如图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
锤头线显示为红色

可以看到,只有锤头线标为红色,其他K线都标为蓝色。此时,K线实体的空心与否用来表示涨跌,颜色仅用于提示凸显的K线,这也是五彩K线的副作用,下一部分将介绍如何规避。

13-2 K线组合形态函数

除了单根满足形态的K线,五彩K线公式还可以凸显满足形态的K线组合

技术分析中有一个经典的K线组合叫做上升三部曲,指股价经过一段时期上涨,在一根大阳线或中阳线之后,接连出现三根小阴线,但三根小阴线都维持在这个阳线的实体内,并且成交量也开始减少,随后就出现一根突破的大阳线。

其中出现了2根阳线和3根阴线,是一个典型的K线组合,下面我们想办法通过公式将上升三部曲的K线形态描述出来。

首先,描述大阳线:

大阳线:=C/O>1.07;

我们将涨幅超过7个点的K线称作大阳线,上述语句用来表示当前周期的大阳线。

在上升三部曲形态中,第一根大阳线或中阳线位于大阳线的前4个周期,因此,可以描述为:

中阳线:=REF(C,4)/REF(O,4)>1.03;

并且,最后的大阳线要突破第一根阳线:

突破:=C>REF(C,4);

接下来,依次描述3根阴线:

第一根阴线:=REF(C,3)<REF(O,3);
第二根阴线:=REF(C,2)<REF(O,2);
第三根阴线:=REF(C,1)<REF(O,1);

之后,描述3根阴线未跌破且未突破第一根大阳线:

未跌破:=REF(O,4)<REF(L,3) AND REF(O,4)<REF(L,2) AND REF(O,4)<REF(L,1);
未突破:=REF(C,4)>REF(H,3) AND REF(C,4)>REF(H,2) AND REF(C,4)>REF(H,1);

最后,描述成交量减少:

成交量减少:=REF(V,3)>REF(V,2) AND REF(V,2)>REF(V,1);

全部特征描述完毕后使用逻辑运算符AND连接所有变量:

大阳线 AND 中阳线 AND 突破 AND 第一根阴线 AND 第二根阴线 AND 第三根阴线 AND 未跌破 AND 未突破 AND 成交量减少;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
该公式可行吗?

此时运行公式,会发现符合形态的K线中只有最后一根K线凸显为红色,前4根同样在形态内的K线仍然为蓝色:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
只有最后一根K线凸显为红色

这是因为输出语句仅对最后一个周期做出判断,所以仅将符合条件的最后一个周期凸显出来。

那么要把所有符合形态的K线都凸显出来应该怎么办呢?只需使用向前赋值函数BACKSET(详见第七期关于未来函数的教学)。

要描述上升三部曲共5根K线的形态组合,先将输出语句改为赋值语句,最后再向前5个周期赋值即可。

五彩K线名称:波有蛋1301

大阳线:=C/O>1.07;
中阳线:=REF(C,4)/REF(O,4)>1.03;
突破:=C>REF(C,4);
第一根阴线:=REF(C,3)<REF(O,3);
第二根阴线:=REF(C,2)<REF(O,2);
第三根阴线:=REF(C,1)<REF(O,1);
未跌破:=REF(O,4)<REF(L,3) AND REF(O,4)<REF(L,2) AND REF(O,4)<REF(L,1);
未突破:=REF(C,4)>REF(H,3) AND REF(C,4)>REF(H,2) AND REF(C,4)>REF(H,1);
成交量减少:=REF(V,3)>REF(V,2) AND REF(V,2)>REF(V,1);
K线形态:=大阳线 AND 中阳线 AND 突破 AND 第一根阴线 AND 第二根阴线 AND第三根阴线 AND 未跌破 AND 未突破 AND 成交量减少;
BACKSET(K线形态,5);
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
五彩K线:波有蛋1301

修改完毕后再运行公式就可以看到完整的形态被凸显出来了:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
波有蛋1301效果

13-3 如何使用技术指标绘制K线?

启用五彩K线公式后,其他不符合条件的K线都会被改成绿色,如果我们不希望其他K线被改动,或者想修饰凸显的K线,就要将五彩K线改写成技术指标。

首先复制波有蛋1301的代码到新建的技术指标中。现在启用指标的效果如下,仅仅是在满足条件的位置画了高电平,而我们想要的是K线的形态:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
直接复制的效果

要实现这个想法,就要使用绘图函数描绘出我们需要的图形。首先,将五彩K线公式的输出语句删除,添加绘图函数STICKLINE

STICKLINE(K线形态,O,C,3,0)COLOR00FFFF;

该函数用于绘制柱体,只要满足条件,就在开盘价到收盘价间画柱体。宽度设置为3就是K线的宽度,画出来的图形其实就是最后一根K线的实体COLOR00FFFF表示黄色,所以效果如下图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
大阳线的实体高亮显示

继续添加绘图函数:

STICKLINE(K线形态,H,L,0,0)COLOR00FFFF;

该函数用于在最高价和最低价之间画柱体,宽度设置为0,所以画出来的图形就是影线,效果如下图所示:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
影线也高亮显示

之后,使用函数REFX引用后续周期,画出前面一根K线。

STICKLINE(REFX(K线形态,1),O,C,3,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,1),H,L,0,0)COLOR00FFFF;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
画出前面的K线

这就是用技术指标绘制K线的原理,以此类推,将所有需要凸显的K线绘制出来。

技术指标名称:波有蛋1302

大阳线:=C/O>1.07;
中阳线:=REF(C,4)/REF(O,4)>1.03;
突破:=C>REF(C,4);
第一根阴线:=REF(C,3)<REF(O,3);
第二根阴线:=REF(C,2)<REF(O,2);
第三根阴线:=REF(C,1)<REF(O,1);
未跌破:=REF(O,4)<REF(L,3) AND REF(O,4)<REF(L,2) AND REF(O,4)<REF(L,1);
未突破:=REF(C,4)>REF(H,3) AND REF(C,4)>REF(H,2) AND REF(C,4)>REF(H,1);
成交量减少:=REF(V,3)>REF(V,2) AND REF(V,2)>REF(V,1);
K线形态:=大阳线 AND 中阳线 AND 突破 AND 第一根阴线 AND 第二根阴线 AND第三根阴线 AND 未跌破 AND 未突破 AND 成交量减少;
STICKLINE(K线形态,O,C,3,0)COLOR00FFFF;
STICKLINE(K线形态,H,L,0,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,1),O,C,3,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,1),H,L,0,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,2),O,C,3,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,2),H,L,0,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,3),O,C,3,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,3),H,L,0,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,4),O,C,3,0)COLOR00FFFF;
STICKLINE(REFX(K线形态,4),H,L,0,0)COLOR00FFFF;
写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
技术指标:波有蛋1302

启用指标后,满足上升三部曲形态的K线组合就会显示为黄色:

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
波有蛋1302效果

然后再关闭五彩K线指示,就会发现其余K线正常显示的同时,满足形态的K线被高亮显示了。

写给小白的通达信公式教学,读完就能写指标,赶紧收藏吧-好运哒哒指标源码网
关闭五彩K线指示

这样一来,不仅可以将需要的K线形态高亮显示,同时还能保留其余K线原本的状态。


最后,给看到这里的朋友们提个醒。

相信现在的你对于看懂公式已不在话下,并且可以尝试修正和调试自己在网上找到的公式,但记住,学会通达信公式仅仅是入了程序化交易的门,一定不要轻易尝试实盘量化交易!

量化交易风险和机遇并存,如果策略还不够稳定就贸然实盘操作,很可能会赔的血本无归;其次,个人进行未报备的量化交易是违规的,很可能被交易所监管、警告。因此,在实盘量化交易之前,一定要进行正规的报备审核,有需要请联系我!

那么,这篇写给小白的通达信公式教学到此正式完结,最后,祝大家投资顺利,股市长虹!

我是 @波有蛋 ,一位从业八年的职业交易员,对股票、基金、程序化交易等有深入的研究,精通指标、选股公式编写,已服务上千粉丝开通满意的证券账户。

如果你对低佣开户或量化交易有需求,或者需要量化策略、通达信公式编写的技术支持,关注我,希望能帮得到你。

指标使用通用经验总结

  1. 一般出现信号不急着立即介入,介入时机一般尾盘半小时判断信号是否可介入;
  2. 指标信号出现后第二天冲高阴线立即清仓等待突破上一个信号点最高价判断是是否介入;
  3. 指标信号出现后第二天阴线或假阳线立即清仓,等待突破上一个信号点最高价在判断是否介入;
  4. 在上涨,现价处于上涨高位的『介入、看多』信号不参与;
  5. 不是信号一出现就介入,要根据市场环境,量价关系,市场情绪等诸多因素判断是否可介入;
  6. 技术指标有其本身局限性,宁可错过,也不要做错
  7. 拿到指标后,多测试,多练习,看是否符合预期,总结规律;

总之一旦信号失真,不符合预期,立即清仓控制风险 ;

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容