1、同花顺公式管理教程第一章公式教程简介公式编写规则公式编写实例系统函数说明 常用技术指标选股第1节简介TDX的公式系统是一套功能强大、使用简单的计算机描述系统。用户可以通过对每日深沪两地交易所和历史上发送的行情数据按照简单的运算法则进行分析、选股、测试,在TDX当中一共提供了四大类公式编辑器:1.1技术指标公式编辑器技术指标公式即通常所说画线指标,此类公式的主要目的是通过对数据采取一定的运算,将输出结果直观的显现在分析图上,为投资者提供研判行情的基本依据。此类指标至少要有一条输出线,本系统允许最多6条的输出线。技术指标公式编辑器实现对技术图表分析中各类技术指标和自我定义的技术分析指标的编写,并且
2、通过TDX的分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。1.2条件选股公式编辑器也就是通常意义上解释的智能选股。但我们的目的在于建立一个完全开放、自由的选股平台,可以通过对该平台的熟练使用,借助计算机的高速和准确的检索功能寻找满足您的理解的股票形态和技术特征,作到先知先觉,快人一步!并且提供相应的同样开放式的结果检测报告。1.3五彩K线公式编辑器准确讲,该编辑器的功能是附属于条件选股功能之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。条件选股公式与五彩K线公式的区别:条件选股公式和五彩K线公式都有且仅有一个输出,其目的都是为投资者提供买入或卖出
3、点的指示,不同之处在于:条件选股公式仅对最近数据提示买入或卖出,而五彩K线公式则对输入的所有历史数据进行提示。另外,五彩K线公式的输出是在K线图上,通过各种颜色对提示数据进行标识,条件选股公式的输出是找出符合最近条件的所有股票。1.4交易系统公式编辑器交易系统公式是通过设定买入和卖出点(有且仅有这两个输出),由计算机进行模拟操作。以此为依据,系统一方面可以进行五彩K线公式的功能,同时提示买入和卖出;另一方面可以通过模拟操作,对指标买卖的收益、指标的最佳参数及最佳指标等各情形进行测试。交易系统是在条件选股功能上的一次大的延伸,旨在建立一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括
4、买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。TDX系统所有的分析方法,包括技术指标、条件选股、交易系统和五彩K线,均采用开放平台进行描述。也就是说,所有分析方法的算法对用户时开放的,任何人都可以对原算法进行修改,或增加自己的新算法。1.5公式管理器快捷键:Ctrl+F在公式管理器中,用户可以对系统公式进行全面管理,包括新建公式,修改公式算法、引入、输出公式、设置组合条件等。公式管理器用树形结构显示系统中存在的所有分析方法,包括指标公式、条件选股公式、交易系统公式、五彩K线公式和组合条件。需要对哪一类公式进行处理,可以用鼠标点取将该
5、类公式展开,直到找到需要的公式名称。查找公式可以从公式组、全部、系统和自编四种列表方始中选择,公式组方式便于分类管理,全部方式便于有公式名称直接查找,系统方式便于系统内置常用指标的快速查找,而自编方式则便于查找自己编写的或从外部引入的公式。公式管理器可管理四种类型的公式:指标公式:用于指标图形的绘制。条件选股公式:用于条件选股。交易系统公式:用于专家指示及测参、测指。五彩线公式:用于线模式指示。这四种公式相互独立,名称可以相同,但其内容和作用不同。每种类型的公式包括四种形式:系统加密公式:用绿色图标和锁形符号显示,要进行密码确认系统公式:用绿色图标显示,可进行删改用户加密公式:用红色图标和锁形
6、符号显示,要进行密码确认用户公式:用红色图标显示,可进行删改指标公式附加买卖逻辑判断式,得到交易系统公式;指标公式附加选股条件逻辑判断式,得到条件选股公式。指标公式附加色彩逻辑判断,得到五彩K线公式。1.6公式编辑器调出公式管理器方法:1.点击新建或修改按钮;2.鼠标左键单击指标线、指标参数选中指标,再用右键单击,弹出的对话框中选中“修改指标公式”,系统弹出公式编辑器。公式编辑其中包含许多输入窗口和按钮,功能分别为:公式名称用于识别公式,最多可以有9个字符,该名称在每一类分析方法必须唯一,例如不能出现两个MA技术指标,但可以出现一个MA技术指标和一个MA条件选股指标。公式描述简单描述该指标的用
7、途,可以输入任意字符。密码保护选中密码保护,表示将对该公式加密,加密密码输入到密码输入框中。对于已加密的公式,今后对它进行修改和查看必须先输入密码,在输出公式到文件时也需要密码。要去掉密码,点击“密码保护”,使它前面的消失即可。画线方法这组单选按钮用于指定指标公式类型,紧密围绕股票价格变化的指标可定为主图叠加类型,叠加在主图上显示;否则定为副图指标,显示在副图上。(仅在编辑技术指标公式时出现)参数公式可以带有0-6个参数,使用参数可以方便地使用中需要修改得数值进行调整。每个参数需要设定参数名称、最小值、最大值和缺省值。坐标位置可指定在某些特殊位置画水平坐标线,例如对RSI,可以输入:0;20;
8、50;系统将在这三个数值处绘制三条水平坐标线。缺省时为“自动”,即系统据实际情况定水平坐标线。(深红色线) (仅在编辑副图技术指标时出现)额外Y轴分界:在副图坐标中显示重要的数值分界线(白色线);测试公式检查公式的语法错误。引入指标公式以系统已有的某个指标公式为蓝本,新建自己的指标公式。插入函数显示选择函数对话框,帮助您在通达信函数集中寻找所需函数。当您对系统提供的标准函数还不熟时,这个功能可帮你节省时间。用法注释供用户输入指标算法、用法的解释,在使用公式时提示操作方法及注意事项。动态提示用户输入指标、算法或函数时,同步提示中文语意。参数精灵在使用分析工具时,很多时候用户都需要调整参数,但很多
9、用户无法理解对参数调整的实际意义。使用参数精灵,可以将参数调整及参数意义放在同一段文字中,方便用户使用。用户在使用分析方法时,会在指标旁边显示参数精灵的内容。参数精灵的内容是由公式剪辑者输入的一段文字,该文字描述了参数的使用方法,并且可以将参数设置与文字混合编辑。方法是用Param#N来代替参数即可。例如:公式中有两个参数M和N,需要描述当M日均线与N日均线金叉时买入,可以这样写参数精灵:Param#1日均线与Param#2日均线发生金叉,发出买入信号在实际使用该分析方法时,系统将显示:5日均线与10日均线发生金叉,系统发出买入信号其中被包围在输入框中的5和10是参数,用户可以直接修改这些参数
10、,而实际运算时将采用这些参数进行计算。使用参数精灵大大降低了公式的使用难度。公式编辑窗公式编辑窗用于书写分析方法的算法,是公式编辑器的核心部分。用户可以将自己的算法用公式语法书写到编辑窗中,关于公式语法请参见附录。公式编辑器在使用上十分灵活,支持丰富的键盘操作和鼠标操作。基本的键盘定义如下所示:热键功能、上,下,左,右移动光标INSERT插入/覆盖切换CtrlP括号匹配查找CtrlA全选CtrlC复制选中文本CtrlV粘贴文本CtrlZ取消操作CtrlY恢复操作Ctrl上滚一行Ctrl下滚一行Ctrl左移一个单词Ctrl右移一个单词CtrlHome移至文件最头部CtrlEnd移至文件最尾部Ct
11、rl鼠标左键选中当前鼠标下的一个单词Ctrl鼠标右键在钩槽中将全部文本选中Shift向上选中一行Shift向下选中一行Shift向左选中一个字母Shift向右选中一个字母Shift鼠标左键在钩槽中将当前一行文本选中CtrlShift/以单词为单位的选中CtrlShiftSpace显示当前函数或指标的TOOLTIP提示(只在函数内部有效)TAB键存在选中文本时,若是多行,将选中文本全部右移一个TAB单位(智能的距离),若是单行,将选中文本删除后右移一个TAB单位;不存在选中文本时,简单右移一个TAB单位ShiftTAB键将选中文本左移一个TAB单位(只在右多行选中文本时有效)鼠标右键单击右键菜单
12、鼠标左键双击选中当前光标下的一个单词第2节公式编写规则所有的公式系统都是遵守统一的运算法则,统一的格式进行函数之间的计算,所以我们掌握了技术指标公式的基本原理,其他的公式也不会出脱其外。例如指标公式:KDJ,右键点击KDJ,选择“编辑公式”后打开公式算法编辑器,显示出KDJ指标公式的内容。参数名称:缺省值,最小值,最大值N:9,1,10OM1:3,2,40M2:3,2,40RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;K:SMA(RSV,M1,1);D:SMA(K,M2,1);J:3*K-2*D;该公式绘制K、D、J三条指标线。RSV行是
13、一个中间语句,计算当期收盘价与N天内最低价之差除以N内最高价与最低价之差的比值,再乘以系数100。K线为RSV的M1天移动平均线,D线为线K的M2天移动平均线,J线为K线与J线的差值。分析以上公式,我们可以引出以下相关的格式和法则的结论:2.1数据引用A数据来源 公式中的基本数据来源于接收的每日行情数据,这些数据由行情函数从数据库中按照一定的方式提取,例如、高开低收、成交量、 成交额等等。B数据类型按照公式使用的数据类型,系统可以处理的数据分为两类:变量和常量。所谓变量就是一个随着时间变化而变化的数据,例如成交量;常量就是永远不变的数据。例如3,每个函数需要的参数可能是变量也可能是常量,不能随
14、便乱用,函数计算的结果一般是一个变量。例如计算收盘价均线MA(CLOSE,5),MA函数要求第一个参数为变量,而CLOSE函数返回的正是一个变量;MA函数要求的第二个参数是常量,5就是一个常量,所以我们就不能这样书写:MA(5,CLOSE)。2.2特殊数据引用A 指标数据引用:经常地编制公式的过程当中,需要使用另外一个指标的值,如果按照通常的做法,重新编写过这个指标显得麻烦,因此有必要学习使用如何调用别的指标公式。基本的格式为:“指标指标线”(参数)a) 指标和指标线之间用逗号分开,一个指标不定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。b) 参数
15、在表达式的末尾,必须用括号括起来,参数之间用逗号分开,通过参数设置可以选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置。c) 整个表达式用引号引在其中,除参数以外。例如:“MACDDEA”(26,12,9)表示计算MACD指标的DEA指标线。计算参数为26、11、9,“MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9, “MACD”表示该指标的最后条指标线并且使用公式的默认参数。B 跨周期引用指标数据:a) 引用大盘数据:引用大盘数据时使用下列函数: INDEXC/NDEXV,等等! b) 引用个股数据:引用个数据时使用下列格式:“股票代码$数据
16、”在以上格式当中调用CLOSE,VOL,AMOUNT等等!例如“000002$VOL表000002该股本周期的成交量。“999998$CLOSE同样也可以表示为A股指数本周期的收盘价,此时的A股指数被视为一只个股。C 其它股票数据引用:使用以下的格式可以在当前的分析界面下引用大盘的数据或者其它个股的数据实现横向上的对比。 a) 引用大盘数据:引用大盘数据时使用下列函数: INDEXC/NDEXV,等等! b) 引用个股数据:引用个数据时使用下列格式:“股票代码$数据”在以上格式当中调用CLOSE,VOL,AMOUNT等等!例如“000002$VOL表000002该股本周期的成交量。“99999
17、8$CLOSE”同样也可以表示为A股指数本周期的收盘价,此时的A股指数被视为一只个股。2.3公式构成A公式语句所有的公式体由若干语句按照一定的格式组成,每个语句表示一个计算结果,根据各个语句的功能分为两大类语句,一类是赋值语句,一类是中间表达式。B赋值语句:在技术指标“B:AZ”和“c:B*0.618”就是分别两条指标线,语句间用分号隔开。该语句被称为赋值语句,在技术指标当中,赋值语句的计算结果将会被计算机执行并形成相应的图形。每个语句可以有一个名称,该名称写在语句的最前面,并用一个冒号将它与语句分隔开。例如:ST:MA(CLOSE,5);表示该语句求收盘价的五日均线,语句的名称为ST。在该语
18、句后的语句中可以直接用ST来替代MA(CLOSE,5),例如:MA(ST,5)表示对收盘价的五日均线再求五日平均。C中间语句;一个语句如果不需要显示,可以将它定义为中间语句,例如在上例当中的第一句“A:=X+Y;”,这样该语句就不会披系统辨认为是指标线了。中间语句用“:=”替代冒号,其它与一般语句完全一样。使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。每个公式最多可以分6个语句,中间公式数量没有限制,所有语句之间需要使用分号隔开。D公式计算符公式计算符将函数连接成为公式。计算分为算术计算符和逻辑计算符。a)算术计算符包括十、一、*、,它们分别对计
19、算符两边的数据进行加减乘除计算,这同一般意义上的算术计算没有差异。b)逻辑计算符包括、=、3就等于1。“逻辑与”表示两个条件都成立时结果才成立:“逻辑或”表示两个条件中只要有一个成立结果成立。例如:43ANDl2=4的结果等于1,43 0R 312的结果等于1。E 线形描述符对于技术指标公式可以在语句加上线形描述符用来表示如何画该语句描述的指标线。线形描述符包括以下7种。描述符写在语句后分号前,用逗号将它与语句分隔开,例如在上例当中加入一句线形描述符,c:B*0.618,COLORSTICK;该语句在被执行时,会在图中添加彩色柱线,该功能在编制MACD等指标的时候会显出它的用处。柱状线 名称含
20、义STICK彩色柱状线,当值为正时显示虹色,否则显示绿色。COLORSTICK为线形赋色,COLORRED为线形赋红色COLORBLUE为线形赋蓝色COLORYELLOW表示黄色线VOLSTICK成交量柱状线,股价上涨显示红色空心柱,则显示绿色实心柱LINESTICK同时画出柱状线和指标线LINETHICK对线体的粗细作出描述CROSSDOT小叉线CIRCLEDOT小圆圈线POINTDOT小圆点线a) COLORRED等三个线形描述符还可以自定义颜色,格式为COLOR+“BBGGRR”:BB、GG、RR表示蓝色、绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制。例如:MA5:M
21、A(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。b) LINETHlCK可以允许对线型的粗细进行白定义的描述,格式LINETHICK+(1-9)”;参数的取值范围在19之间,“LINETHICK1”表示最细的线,而“LINETHICK9”表示最粗的线;2.4关于无效数的问题所谓无效数即指没有数据。在某些情况下,一些数据项可能取不到数据,这时返回值为无效数。例如,MA(CLOSE,500),其含义是该股票最近500天收盘价的均价,如果有些公司上市时间较短没有500天,则其值为无效数。反应在分析图上则该指标线不显示。在TDX
22、分析系统中函数NODRAW代表无效数,可作为常数使用。无效数与任何数作计算,其结果仍为无效数。例如:7*NODRAW得到的结果仍为NODRAW。第3节公式编写示例公式示例指标公式:均线通道选股公式:均线通道五彩K线公式:均线通道交易系统公式:均线通道颜色参数应用:MACDK新增函数应用:HORCALC(X)新增函数应用:BLOCKSETNUM(板块名称)3.1简单公式这里举一些最简单的公式例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。收盘价线这是最简单的公式:CLOSE;均线计算N日内收盘价的算术平均值,它是最常用的指标之一,公式为:MA(CLOSE,);其中的MA(X,
23、N)表示X的N日平均。涨幅涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价昨日收盘价)昨日收盘价*100%,昨日收盘价的公式为:REF(CLOSE,1),因此涨幅的公式:(CLOSE-REF(CLOSE,1)/REF(CLOSE,1);换手率换手率指当期的成交量占流通股本的比例。公式:VOL/CAPITAL;VOL为当期成交量,CAPITAL为流通股本。创新高创新高指当日最高价是最近一段时间的最高价:HIGH=HHV(HIGH,N);其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创日新高时返回值为,否则为。横盘整理横盘整理指最近一段时期
24、价格在一定幅度之内摆动:(HHV(CLOSE,10)-LLV(CLOSE,10)/CLOSE=2 AND MONTH=12,LOW,0);该语句用一个条件函数来判断时间是否处于规定区间,若是则返回最低价,否则返回。我们再用LLV函数,就可求得该段时间最低的最低价:LLV(LL,N);N为日期参数,N为0,则上式表示:上市以来的最低价。技术指标公式技术指标公式用于绘制技术指标线。以KDJ指标为例,右键点击KDJ,选择“编辑公式”后打开公式算法编辑器,显示出KDJ指标公式的内容。参数名称: 最小值 最大值 缺省值N: 1 10O 9M1: 2 40 3 M2: 2 40 3RSV:=(CLOSE-
25、LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;K:SMA(RSV,M1,1);D:SMA(K,M2,1);J:3*K-2*D该公式绘制K、D、J两条指标线。RSV行是一个中间语句,计算当期收盘价与N天内最低价之差除以N内最高价与最低价之差的比值,再乘以系数100。K线为RSV的M1天移动平均线;D线为线K的M2天移动平均线;J线为K线与J线的差值。条件选股公式条件选股用于选出满足条件的股票,条件选股公式用于显示条件是否满足的语句是一个逻辑表达式,条件满足,表达式的返回值为“1”,表示选中该股,条件不满足,返回值为为“0”,表示未选中。条件选股公式的其他公式必须是
26、中间公式,而且要在逻辑表达式之前。以KDJ指标买入条件选股为例,右键点击“KDJ指标买入条件选股”,选择“编辑公式”后打开公式算法编辑器,显示出公式的内容。用KDJ随机指标作为买入条件是当J向上穿越0坐标线的时候公式写法为:参数名称:最小值最大值缺省值N: 1 10O 9M1:2403M2: 2 403RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;K:SMA(RSV,M1,1);D:SMA(K,M2,1);J:3*K-2*D;CROSS(J,0);如果直接引用指标公式,KDJ条件选股公式可以简写为:CROSS(KDJ.J(N,M1,M2)
27、,0);交易系统公式交易系统公式用于描述交易系统。交易系统是一个完整的买卖过程。交易系统公式用来指示买入、卖出信号的语句是一个逻辑表达式,名称为TERLONG:多头买入EXITLONG:多头卖出ENTERSHORT:空头买入EXITSHORT:空头卖出四种信号条件满足,表达式的返回值为“1”,表示发出信号,条件不满足,返回值为“0”,表示不发出信号。交易系统公式的其他公式必须是中间公式,而且要在逻辑表达式之前。国内的股市只用到ENTERLONG,EXITLONG,国内期货市场还用到ENTERSHORT,EXITSHORT语句。当买入或卖出条件满足时,在什么时间、什么价位进行操作,可以选择本周期
28、或次周期的开盘价、最高价、最低价、收盘价,在测试交易系统时将以设置的介入价格计算。若选择次周期最高价买入、次周期最低价卖出,则此时的测试是最为严格,若此时交易系统的表现仍令人满意,则说明该系统稳定性好。这里我们举例说明如何编写交易系统公式。以KDJ交易系统为例,右键点击“KDJ交易系统”,选择“编辑公式”后打开公式算法编辑器,显示出公式的内容。交易系统的买入条件为J向上穿越0;卖出条件为J向下穿越100。参数名称:最小值最大值缺省值N:110O9M1:2403M2:2403RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;K:SMA(RSV,
29、M1,1);D:SMA(K,M2,1);J:3*K-2*D;ENTERLONG:CROSS(J,0);EXITLONG:CROSS(100,J);如果直接引用指标公式,KDJ交易系统公式可以简写为:J:=KDJ.J(N,M1,M2);ENTERLONG:CROSS(J,0);EXITLONG:CROSS(100,J);K线模式公式K线模式公式用于描述单根K线或多根K线组合的某种状态。K线模式公式用来指示模式的语句是一个逻辑表达式,最多可以设到6个,即K线图上最多可以有6种彩色。以KDJ指标K线模式为例,在五彩K线项下的其他栏中找到“KDJ随机指标”,用右键点击,选择“编辑公式”后打开公式编辑器,显示出公式的内容。将J线值小于0的K线显示为红色,将J线值大于100的K线显示为绿色。参数名称:最小值最大值缺省值N:110O9M1:2403M2:2403RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;K:=SMA(RSV,M1,1);D:=SMA(K,M2,1);J:=3*K-2*D;J100,COLORGREEN;曙光初现是两根K