指标编程初学者的参考文本(一)
所有的公式系统都是遵守统一的运算法则,统一的格式进行函数之间的计算,所以我们掌握了技术指标公式的基本原理,其他的公式也不会出脱其外。例如指标公式:KDJ,右键点击KDJ,选择“编辑公式”后打开公式算法编辑器,显示出KDJ指标公式的内容。 参数名称:缺省值,最小值,最大值 N:9,1,10O M1:3,2,40 M2:3,2,40 RSV:=(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行是一个中间语句,计算当期收盘价与N天内最低价之差除以N内最高价与最低价之差的比值,再乘以系数100。K线为RSV的M1天移动平均线,D线为线K的M2天移动平均线,J线为K线与J线的差值。 分析以上公式,我们可以引出以下相关的格式和法则的结论: 2.1 数据引用 A数据来源 公式中的基本数据来源于接收的每日行情数据,这些数据由行情函数从数据库中按照一定的方式提取,例如、高开低收、成交量、成交额等等。 B数据类型 按照公式使用的数据类型,系统可以处理的数据分为两类:变量和常量。所谓变量就是一个随着时间变化而变化的数据,例如成交量;常量就是永远不变的数据。例如3,每个函数需要的参数可能是变量也可能是常量,不能随便乱用,函数计算的结果一般是一个变量。 例如计算收盘价均线MA(CLOSE,5),MA函数要求第一个参数为变量,而CLOSE函数返回的正是一个变量;MA函数要求的第二个参数是常量,5就是一个常量,所以我们就不能这样书写:MA(5,CLOSE)。 2.2 特殊数据引用 A 指标数据引用: 经常地编制公式的过程当中,需要使用另外一个指标的值,如果按照通常的做法,重新编写过这个指标显得麻烦,因此有必要学习使用如何调用别的指标公式。 基本的格式为:“指标.指标线”(参数) a) 指标和指标线之间用逗号分开,一个指标不—定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。 b) 参数在表达式的末尾,必须用括号括起来,参数之间用逗号分开,通过参数设置可以选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置。 c) 整个表达式用引号引在其中,除参数以外。例如:“MACD.DEA”(26,12,9)表示计算MACD指标的DEA指标线。计算参数为26、11、9, “MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9, “MACD”表示该指标的最后—条指标线并且使用公式的默认参数。 B 跨周期引用指标数据: a) 引用大盘数据:引用大盘数据时使用下列函数: INDEXC/NDEXV,等等! b) 引用个股数据:引用个数据时使用下列格式:“股票代码$数据”.在以上格式当中调用CLOSE,VOL,AMOUNT等等!例如“000002$VOL'表000002该股本周期的成交量。“999998$CLOSE"同样也可以表示为A股指数本周期的收盘价,此时的A股指数被视为一只个股。 C 其它股票数据引用: 使用以下的格式可以在当前的分析界面下引用大盘的数据或者其它个股的数据实现横向上的对比。 a) 引用大盘数据:引用大盘数据时使用下列函数: INDEXC/NDEXV,等等! b) 引用个股数据:引用个数据时使用下列格式:“股票代码$数据”.在以上格式当中调用CLOSE,VOL,AMOUNT等等!例如“000002$VOL'表000002该股本周期的成交量。“999998$CLOSE”同样也可以表示为A股指数本周期的收盘价,此时的A股指数被视为一只个股。 2.3 公式构成 A公式语句 所有的公式体由若干语句按照一定的格式组成,每个语句表示一个计算结果,根据各个语句的功能分为两大类语句,一类是赋值语句,一类是中间表达式。 B赋值语句: 在技术指标“B:AZ”和“c:B*0.618”就是分别两条指标线,语句间用分号隔开。该语句被称为赋值语句,在技术指标当中,赋值语句的计算结果将会被计算机执行并形成相应的图形。每个语句可以有一个名称,该名称写在语句的最前面,并用一个冒号将它与语句分隔开。例如:ST:MA(CLOSE,5);表示该语句求收盘价的五日均线,语句的名称为ST。在该语句后的语句中可以直接用ST来替代MA(CLOSE,5),例如:MA(ST, 5)表示对收盘价的五日均线再求五日平均。 C中间语句; 一个语句如果不需要显示,可以将它定义为中间语句,例如在上例当中的第一句“A:=X+Y;”,这样该语句就不会披系统辨认为是指标线了。中间语句用“:=”替代冒号,其它与一般语句完全一样。使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。每个公式最多可以分6个语句,中间公式数量没有限制,所有语句之间需要使用分号隔开。 D公式计算符 公式计算符将函数连接成为公式。计算分为算术计算符和逻辑计算符。 a)算术计算符 包括十、一、*、/,它们分别对计算符两边的数据进行加减乘除计算,这同一般意义上的算术计算没有差异。 b)逻辑计算符 包括>、<、<>、>=、<=、=、AND、OR八种,分别表示大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或运算,如果条件成立计算结果就等于1,否则等于0。例如:3+4等于7,4>3就等于1。“逻辑与”表示两个条件都成立时结果才成立:“逻辑或”表示两个条件中只要有一个成立结果成立。例如:4>3ANDl2>=4的结果等于1,4>3 0R 3>12的结果等于1。 E 线形描述符 对于技术指标公式可以在语句加上线形描述符.用来表示如何画该语句描述的指标线。线形描述符包括以下7种。描述符写在语句后分号前,用逗号将它与语句分隔开,例如在上例当中加入一句线形描述符,c:B*0.618,COLORSTICK;该语句在被执行时,会在图中添加彩色柱线,该功能在编制MACD等指标的时候会显出它的用处。 柱状线 名称 含义 STICK 彩色柱状线,当值为正时显示虹色,否则显示绿色。 COLORSTICK 为线形赋色, COLORRED 为线形赋红色 COLORBLUE 为线形赋蓝色 COLORYELLOW 表示黄色线 VOLSTICK 成交量柱状线,股价上涨显示红色空心柱,则显示绿色实心柱 LINESTICK 同时画出柱状线和指标线 LINETHICK 对线体的粗细作出描述 CROSSDOT 小叉线 CIRCLEDOT 小圆圈线 POINTDOT 小圆点线 a) COLORRED等三个线形描述符还可以自定义颜色,格式为COLOR+“BBGGRR”:BB、GG、RR表示蓝色、绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制。例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。 b) LINETHlCK可以允许对线型的粗细进行白定义的描述,格式LINETHICK+(1-9)”;参数的取值范围在1—9之间,“LINETHICK1”表示最细的线,而“LINETHICK9”表示最粗的线; 2.4 关于无效数的问题 所谓无效数即指没有数据。在某些情况下,一些数据项可能取不到数据,这时返回值为无效数。例如,MA(CLOSE,500),其含义是该股票最近500天收盘价的均价,如果有些公司上市时间较短没有500天,则其值为无效数。反应在分析图上则该指标线不显示。在TDX分析系统中函数NODRAW代表无效数,可作为常数使用。 无效数与任何数作计算,其结果仍为无效数。例如:7*NODRAW得到的结果仍为NODRAW。 第3节 公式编写示例 · 公式示例 · 指标公式:均线通道 · 选股公式:均线通道 · 五彩K线公式:均线通道 · 交易系统公式:均线通道 · 颜色参数应用:MACDK · 新增函数应用:HORCALC(X) · 新增函数应用:BLOCKSETNUM(板块名称) 3.1 简单公式 这里举一些最简单的公式例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。 收盘价线 这是最简单的公式: CLOSE; 均线 计算N日内收盘价的算术平均值,它是最常用的指标之一,公式为: MA(CLOSE,5); 其中的MA(X,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最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。 横盘整理 横盘整理指最近一段时期价格在一定幅度之内摆动: (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05; 其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。 区间统计 例如,要取得2002年2月1日到2002年12月30日间的最低价。思考一下,一段时间的最低价必然是该段时间内每个分析周期的最低价中最小的那个。所以我们要引用的数据是该段时间各分析周期的最低价,而不需要用到开盘价、收盘价或最高价;还要将不需要的数据,即区间外的数据设为0。语句为: LL:=IF(YEAR=2002 AND MONTH>=2 AND MONTH<=12,LOW,0); 该语句用一个条件函数来判断时间是否处于规定区间,若是则返回最低价,否则返回0。 我们再用LLV函数,就可求得该段时间最低的最低价: LLV(LL,N); N为日期参数,N为0,则上式表示:上市以来的最低价。 技术指标公式 技术指标公式用于绘制技术指标线。以KDJ指标为例,右键点击KDJ,选择“编辑公式”后打开公式算法编辑器,显示出KDJ指标公式的内容。 参数名称: 最小值 最大值 缺省值 N: 1 10O 9 M1: 2 40 3 M2: 2 40 3 RSV:=(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行是一个中间语句,计算当期收盘价与N天内最低价之差除以N内最高价与最低价之差的比值,再乘以系数100。 K线为RSV的M1天移动平均线; D线为线K的M2天移动平均线; J线为K线与J线的差值。 条件选股公式 条件选股用于选出满足条件的股票,条件选股公式用于显示条件是否满足的语句是一个逻辑表达式,条件满足,表达式的返回值为“1”,表示选中该股,条件不满足,返回值为为“0”,表示未选中。条件选股公式的其他公式必须是中间公式,而且要在逻辑表达式之前。以KDJ指标买入条件选股为例,右键点击“KDJ指标买入条件选股”,选择“编辑公式”后打开公式算法编辑器,显示出公式的内容。 用KDJ随机指标作为买入条件是当J向上穿越0坐标线的时候 公式写法为: 参数名称:最小值 最大值 缺省值 N: 1 10O 9 M1: 2 40 3 M2: 2 40 3 RSV:=(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),0); 交易系统公式 交易系统公式用于描述交易系统。交易系统是一个完整的买卖过程。 交易系统公式用来指示买入、卖出信号的语句是一个逻辑表达式,名称为 TERLONG:多头买入 EXITLONG:多头卖出 ENTERSHORT:空头买入 EXITSHORT:空头卖出 四种信号条件满足,表达式的返回值为“1”,表示发出信号,条件不满足,返回值为“0”,表示不发出信号。 交易系统公式的其他公式必须是中间公式,而且要在逻辑表达式之前。 国内的股市只用到ENTERLONG,EXITLONG,国内期货市场还用到ENTERSHORT,EXITSHORT语句。 当买入或卖出条件满足时,在什么时间、什么价位进行操作,可以选择本周期或次周期的开盘价、最高价、最低价、收盘价,在测试交易系统时将以设置的介入价格计算。若选择次周期最高价买入、次周期最低价卖出,则此时的测试是最为严格,若此时交易系统的表现仍令人满意,则说明该系统稳定性好。 这里我们举例说明如何编写交易系统公式。以KDJ交易系统为例,右键点击“KDJ交易系统”,选择“编辑公式”后打开公式算法编辑器,显示出公式的内容。 交易系统的买入条件为J向上穿越0; 卖出条件为J向下穿越100。 参数名称: 最小值 最大值 缺省值 N: 1 10O 9 M1: 2 40 3 M2: 2 40 3 RSV:=(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; 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: 1 10O 9 M1: 2 40 3 M2: 2 40 3 RSV:=(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; J<0,COLORRED; J>100,COLORGREEN; 曙光初现 是两根K线的组合,其模式构成为: 1、第一天的K线是阴线,表示市势仍然向下; 2、随后第二个交易日跳空低开; 3、其后时间出现强劲反弹,填补缺口后上升超过上日收盘价。 此图形如在底部出现,则称为曙光初现,显示市场可能见底回升。 根据此模式建立的公式为: BACKSET( REF(CLOSE,1)/REF(OPEN,1)<0.97 AND CLOSE/OPEN>1.03 AND OPEN<REF(CLOSE,1) AND CLOSE>REF(CLOSE,1), 2) BACKSET(X,N)是一个函数,若X非0,则将当前位置到N周期前的数值设为1。 第一个参数中的第一个式子表示前一个周期的K线是阴线, 第二个式子表示当前周期的K线是阳线, 第三个式子表示当前周期是跳空低开, 第四个式子表示当前周期填补低开缺口后收盘于上日收盘价之上。 第二个参数为2,表示若第一个参数中设置的条件全部成立,则用不同的颜色把当前周期和上一周期前的K线与其他K线区分开来。 3.2 指标公式:均线通道 新建公式“均线通道”(JXTD) 1.使用快捷键Ctrl+F打开“公式管理器”。 2.点击“新建”按钮,打开“公式编辑器” 3.填写公式项 “公式名称”---JXTD, “公式描述”---“均线通道” 参数 (最小值)(最大值)(缺省值) #N: 1 100 26 VAR1:=MA(CLOSE,N);{对“VAR1”赋值} VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值} VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值} VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值} VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线} 上轨:VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”} 下轨:VAR5*0.92; {在均线“VAR5”上减去8%的幅度变成“下轨”} - 4.指标类型:选“路径型”,还有大势型、超买超卖型、趋势型、能量型等如图 5.画线方法:副图、主图叠加、副图叠加线、副图叠加美国线四种;选中“主图叠加型”,副图是K线图下面的区域; 6.密码保护:010101 7.参数设置:#N:最小值为1,最大值为100,缺省值(默认)为26; 8.坐标线位置:在非“主图叠加”中,此编辑框处可写状态;输出线为副图中深红色横线显示,是副图坐标线; 9.额外Y轴分界:是指标敏感数值输出线,在副图中显示为白色; 10.引入指标公式:在引入原公式的基础上进行编辑; 11.插入函数:左上为函数类别,右上为函数表,下区为函数解释区及用法举例; 12.公式编辑区: 〖{ }〗是解释,不输出,为了提示自己和别人,便于看懂公式; 〖:=〗赋值符,意为“相当于”; 〖:〗输出符,它前面的名称为输出名称,可以在副图中看到,它后面的为公式定义; 〖;〗分段符,表示一段完成; 〖,〗分节符; 〖()〗括号中为公式体。 13.测试公式:测试通过则自动保存;测试不能通过,则在翻译区提示错误所在。 14.用法注释:自编公式使用说明。 15.在K线图上,直接敲字母键“JXTD”调出自编的公式“均线通道”,查看结果; 16.修改公式:左键选中公式线后,点击右键,在弹出的对话框中,选中“修改指标”项,直接调出《公式编辑器》修改公式。如果左键选指标线不便,直接用右键选参数数值,也可调出公式编辑器。 17.鼠标动态提示:将鼠标放在函数上,等一会系统自动出现提示框,方便函数学习和应用,如图: 3.3 选股公式:均线通道 改公式“均线通道”(JXTD)为选股公式“均线通道” 1. 〖Ctrl〗+〖F〗打开“公式管理器”; 2. 点击“条件选股公式”选项; 3. 点击“新建”按钮,打开“条件选股公式编辑器”; 4. 点击“引入指标公式”按钮,选最后一项“均线通道”,确定; 5.修改输出:公式输出项改为赋值项;即将〖:〗符改为〖:=〗符; 6.新建输出项:选股:CLOSE<下轨;{选出收盘价小于下轨的股票};如图 7.测试公式通过; 8. 〖Ctrl〗+〖T〗打开条件选股公式“均线通道”,进入公式选股操作程序; 3.4 五彩K线公式:均线通道 改公式“均线通道”(JXTD)为五彩K线公式“均线通道” 1. 〖Ctrl〗+〖F〗打开“公式管理器”; 2. 点击“五彩K线公式”选项; 3. 点击“新建”按钮,打开“K线指示公式编辑器”; 4. 点击“引入指标公式”按钮,选“均线通道”确定; 五彩K线公式 公式名:JXTD 公式描述:均线通道 参数 (最小值)(最大值)(缺省值) #N: 1 100 26 ---------------- VAR1:=MA(CLOSE,N);{对“VAR1”赋值} VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值} VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值} VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值} VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线} 上轨:=VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”} 下轨:=VAR5*0.92; {在均线“VAR5”上减去8%的幅度变成“下轨”} CLOSE<下轨,COLORRED; {小于下轨提示买入红色} CLOSE>上轨,COLORYELLOW; {高于上轨提示卖出黄色} HIGH>上轨*1.06,COLORBLUE;{高于上轨6%提示清仓蓝色} LOW<下轨*0.94, COLORMAGENTA;{低于下轨6%提示加仓洋红色} ---------------- 5.测试通过,退出; 6.〖Ctrl〗+〖K〗,打开“五彩K线指示”---“均线通道”; 7.查看效果,不满意就修改参数一直到满意为止; 3.5 交易系统公式 改公式“均线通道”(JXTD)为交易系统公式“均线通道” 1. 〖Ctrl〗+〖F〗打开“公式管理器”; 2. 点击“交易系统公式”选项; 3. 点击“新建”按钮,打开“交易系统公式编辑器”; 4. 点击“引入指标公式”按钮,选“均线通道”确定; 公式名:JXTD 公式描述:均线通道 参数 (最小值)(最大值)(缺省值) #N: 1 100 26 ---------------- VAR1:=MA(CLOSE,N);{对“VAR1”赋值} VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值} VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值} VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值} VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线} 上轨:=VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”} 下轨:=VAR5*0.92; {在均线“VAR5”上减去8%的幅度变成“下轨”} {多头买入} ENTERLONG:CLOSE<下轨; {多头卖出} EXITLONG:CLOSE>上轨; 5.测试通过,退出; 6.〖Ctrl〗+〖E〗,打开“五彩K线指示”---“均线通道”; 7.查看效果,不满意就修改参数一直到满意为止; 8.删除指示:快捷键〖Ctrl〗+〖H〗;鼠标左键选中指示图标,按〖Delete〗,或者点击鼠标右键,在弹出的菜单中选“删除交易系统指示”。 3.6 颜色参数应用:“MACD”K线 公式名称:MACDK 简称:“MACD”K线 ----------- DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:EMA(DIF,MID); MACD:(DIF-DEA)*2,COLORSTICK; D1:=EMA(C,3)-EMA(C,8); D2:=EMA(O,3)-EMA(O,8); D3:=EMA(H,3)-EMA(H,8); D4:=EMA(L,3)-EMA(L,8); DRAWICON(CROSS(D1,DIF) AND DIF<0 ,D4-0.1,10); DRAWICON(cross(diff,d1) and diff>0.1 ,d3+0.1,2); STICKLINE(D1>=D2,D1,D2,8,0),COLOR0055AA; STICKLINE(D1<=D2,D1,D2,8,0),COLOR006600; STICKLINE(D1>=D2,D1,D2,5,0),COLOR0077CC; STICKLINE(D1>=D2,D1,D2,3,0),COLOR0099DD; STICKLINE(D1>=D2,D3,D4,0,0),COLOR00BBFF; STICKLINE(D1<=D2,D1,D2,5,0),COLOR009900; STICKLINE(D1<=D2,D1,D2,3,0),COLOR00BB00; STICKLINE(D1<=D2,D3,D4,0,0),COLOR00EE00; ------------- 示图 颜色参数不是函数,它描述待画图形的颜色,将其插入到每个指标公式后面,用逗号分隔开。 常用颜色参数有: COLORBLACK 黑色 COLORBLUE 蓝色 COLORGREEN 绿色 COLORCYAN 青色 COLORRED 红色 COLORMAGENTA 洋红色 COLORBROWN 棕色 COLORLIGHTGRAY 淡灰色 COLORGRAY 深灰色 COLORLIGHTBLUE 淡蓝色 COLORLIGHTGREEN 淡绿色 COLORLIGHTCYAN 淡青色 COLORLIGHTRED 淡红色 COLORLIGHTMAGENTA 淡洋红色 COLORYELLOW 黄色 COLORWHITE 白色 颜色描述符还可以自定义颜色,格式为COLOR+“RRGGBB”:RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。 例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。 (参见《附件》--颜色代码表) 3.7 新增函数应用HORCALC(X) 函数: HORCALC(X) 说明:数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅计算方式:0-累加,1-排名次权重:0-总股本,1-流通股本,2-等同权重,3-流通市值 用法: HORCALC(板块名称,数据项,计算方式,权重) 例如: HORCALC('自选股',103,0,1);以自选股板块股票的总股本为权重,以收盘价为数源进行累加。 公式名称:zdkx 公式描述:自定指数K线 参数:(最小值)(最大值)(缺省值) #n: 1 100 10 --------------- 高:=HORCALC('湖北板块',100,0,1); 开:=HORCALC('湖北板块',101,0,1); 低:=HORCALC('湖北板块',102,0,1); 收:=HORCALC('湖北板块',103,0,1); 自定K线: DRAWKLINE(高,开,低,收); MA(自定K线,N); --------------- 公式说明: 1.用于制作自定义指数、自设板块指数K线。 2.先制作自定义板块,“Ctrl+z”,填写好板块名称和简称(数字); 3.“板块名称”须用单引号,如'自选股'、'庄股'; 4.起始位为1000点(下载到本地数据); 5.板块内不要含有太多的股票数量,以免影响速度; 3.8 新增函数应用BLOCKSETNUM(板块名称) 函数: BLOCKSETNUM(板块名称) 说明: 统计板块中股票数量 用法: BLOCKSETNUM(板块名称)注意:板块名称要用单引号 例如: BLOCKSETNUM('ST板块'),返回“ST板块”数量。 公式名称:STPM 公式描述:个股在st板块内排名 -------------- 板块股数量:BLOCKSETNUM('ST板块'),NODRAW; ST涨幅排名:HORCALC('ST板块',105,1,2); 说明: NODRAW是不输出线型只输出数值命令,用于多指标不兼容坐标; 第4节 系统函数说明 TDX的公式编写系统用了多类的函数,以达到快速提取数据和提高运算能力,同时简化计算过程的要求。因此在不同类型的函数我们赋予了相当精确的含义。有的函数定义为行情数据提取函数,那么它的功能就是从静态历史上的行情数据或者动态及时盘中数据提取我们所需要的数据以方便以后的分析和计算。有的函数定义为运算函数,是考虑到一些复杂的数学计算过程过于冗长,从而设计的简化运算函数等等。在以下的几节当中,我们将会分别介绍一共10类的函数。 一、行情函数 (OPEN、CLOSE、HIGH、LOW、VOL等) 二、大盘函数(INDEXA、INDEXC、INDEXH等) 三、常数函数(包括财务函数和动态行情函数) 四、时间函数 (DATE、DAY、TIME等) 五、引用函数(MA、HHV、COUNT、REF、SUM、SMA等) 六、逻辑算术函数(IF、CROSS、NOT等) 七、数学函数(MAX、MIN、LN、三角函数等) 八、统计函数(STD、VAR、AVEDEV等) 九、指标函数(PEAK、SAR、COSET、WINNER、ZIG等) 十、绘图函数(DRAWLINE、DRAWTEXT等) 十一、横向统计函数 4.1 行情函数 名称 解释 用法举例 ADVANCE 上涨家数 本函数仅对大盘有效 AMOUNT 成交额 取得该周期成交额。 ASKPRICE 委卖价 ASKPRIC(N),N取1--3 ASKVOL 委卖量 ASKVOL(N),N取1--3 BIDPRICE 委买价 BIDPRICE(N),N取1--3 BIDVOL 委买量 BIDVOL(N),N取1--3 BUYVOL 主动性买单 BUYVOL CLOSE 收盘价 CLOSE DECLINE 下跌家数 DECLINE HIGH 最高价 HIGH ISBUYORDER 是否为主动性买单 ISBUYORDER LOW 最低价 LOW OPEN 开盘价 OPEN SELLVOL 主动性卖单 SELLVOL VOL 成交量 VOL 4.2 大盘函数 名称 解释 1 INDEXA 表示同期大盘的成交额 2 INDEXADV 表示同期大盘的上涨家数 3 INDEXC 表示同期大盘的收盘价 4 INDEXDEC 表示同期大盘的下跌家数 5 INDEXH 表示同期大盘的最高价 6 INDEXL 表示同期大盘的最低价 7 INDEXO 表示同期大盘的开盘价 8 INDEXV 表示同期大盘的成交量 4.3 常数函数 4.3.1 流通盘 函数: CAPITAL 说明: 流通盘大小 用法: CAPITAL,返回流通盘大小,单位为手。对于A股得到流通A股,B股得到B股总股本,指数为0 .注意:该函数返回常数 例如: 换手率公式:100*VOL/(CAPITAL),VOLSTICK; 4.3.2 财务数据函教 FINANCE(N) 返回财务数据 N 定义 单位 N 定义 单位 N 定义 单位 1 总股本 万股 14 长期投资 千元 27 上年损益调整 千元 2 国家股 万股 15 流动负债 千元 28 利润总额 千元 3 发起人法人股 万股 16 长期负债 千元 29 税后利润 千元 4 法人股 万股 17 资本公积金 千元 30 净利润 千元 5 B股 万股 18 每股公积金 千元 31 未分配利润 千元 6 H股 万股 19 股东权益 千元 32 每股未分配 元 7 流通A股 万股 20 主营收入 千元 33 每股收益 元 8 职工股 万股 21 主营利润 千元 34 每股净资产 元 9 A2转配股 万股 22 其他利润 千元 35 调每股净资 元 10 总资产 千元 23 营业利润 千元 36 股东权益比 11 流动资产 千元 24 投资收益 千元 40 流通市值 元 12 固定资产 千元 25 补贴收入 千元 41 总市值 元 13 无形资产 千元 26 营业外收支 千元 42 上市日期 4.3.3 动态行情函数 DYNAINFO(N) 返回动态行情 N 含义 N 含义 N 含义 N 含义 3 昨收 16 委差 29 买二价 51 内外比 4 今开 17 量比 30 买三价 52 多空平衡 5 最高 31 卖一量 53 多头获利 6 最低 32 卖二量 54 空头回补 7 最新 20 委买价 33 卖三量 55 多头止损 8 总手 21 委卖价 34 卖一价 56 空头止损 9 现价 22 内盘 35 卖二价 57 笔升跌 10 总额 23 外盘 36 卖三价 11 均价 37 换手率 12 涨跌 25 买一量 38 5日均量 13 振幅 26 买二量 39 市盈率 14 涨幅 27 买三量 40 笔升跌 15 委比 28 买一价 50 采样点数 4.4 时间函数 名称 中文名 说明 DATE 年月日 函数返回有效值范围为(700101-1341231), 取得该周期从1900以来的的年月日。 DAY 日期 函数返回有效值范围为(1-31)取得该周期的日期。 HOUR 小时 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0取得该周期的小时数。 MINUTE 分钟 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0取得该周期的分钟数。 MonTH 月份 函数返回有效值范围为(1-12)取得该周期的月份。 TIME 时分秒 函数返回有效值范围为(000000-235959)取得该周期的时分秒。 WEEK 星期 函数返回有效值范围为(0-6),0表示星期天取得该周期的星期数。 YEAR 年份 函数返回有效值范围为(1970-2038)取得该周期的年份。 FROMOPEN 求距开盘有多长时间 FROMOPEN返回当前时刻距开盘有多长时间,单位为分钟。 注意:引用固定日期的函数为引用函数REFDATE(X,A) 作用:引用指定日期的数据. 用法: REFDATE(X,A),引用A日期的X值. 例如:REF(CLOSE,20011208)表示2001年12月08日的收盘价 4.5 引用函数 函数: DRAWNULL 说明: 当前值不画线返回无效数。 用法: DRAWNULL不画线。 例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时分析图上不画线。 函数: BACKSET (X,N) 说明: 向前赋值将当前位置到若干周期前的数据设为1。 用法: BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1。 例如: BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0 函数: BARSCOUNT(X) 说明: 有效值周期数 求总的周期数。 用法: BARSCOUNT(X)第一个有效数据到当前的天数。 例如: BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数 函数: BARSLAST(X) 说明: 上一次条件成立位置 上一次条件成立到当前的周期数。 用法: BARSLAST(X):上一次X不为0到现在的天数 。 例如: BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数 函数: BARSSINCE(X) 说明: 第一个条件成立位置到当前的周期数。 用法: BARSSINCE(X):第一次X不为0到现在的天数。 例如: BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数 ----- 函数: COUNT(X,N) 说明: 统计总数 统计满足条件的周期数。 用法: COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。 例如: COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数 ----- 函数: DMA(X,N) 说明: 动态移动平均 求动态移动平均。 用法: DMA(X,A),求X的动态移动平均。 算法: 若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。 例如: DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价 ------ 函数: EMA(X,N) 说明: 指数平滑移动平均 卖一价求指数平滑移动平均。 用法: EMA(X,N),求X的N日指数平滑移动平均。 算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。 例如: EMA(CLOSE,30)表示求30日指数平滑均价 ----- 函数: FILTER(X,N) 说明: 信号过滤 过滤连续出现的信号。 用法: FILTER(X,N):X满足条件后,删除其后N周期内的数据置为0 。 例如: FILTER(CLOSE>OPEN,5)查找阳线,5天内再次出现的阳线不被记录在内 ----- 函数: HHV(X,N) 说明: 求最高值 用法: HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始。 例如: HHV(HIGH,30)表示求30日最高价 ----- 函数: HHVBARS(X,N) 说明: 上一高点位置 求上一高点到当前的周期数。 用法: HHVBARS(X,N):求N周期内X最高值到当前周期数N=0表示从第一个有效值开始统计 例如: HHVBARS(HIGH,0)求得历史新高到到当前的周期数 ----- 函数: LLV(X,N) 说明: 求最低值 用法: LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始。 例如: LLV(LOW,0)表示求历史最低价 ----- 函数: LLVBARS(X,N) 说明: 上一低点位置 求上一低点到当前的周期数。 用法: LLVBARS(X,N):求N周期内X最低值到当前周期数N=0表示从第一个有效值开始统计 例如: LLVBARS(HIGH,20)求得20日最低点到当前的周期数 ----- 函数: MA(X,N) 说明: 简单移动平均 求简单移动平均。 用法: MA(X,N),求X的N日移动平均值。 算法: (X1+X2+X3+...+Xn)/N 例如: MA(CLOSE,10)表示求10日均价 ----- 函数: REF(X,A) 说明: 向前引用 引用若干周期前的数据 用法: REF(X,A),引用A周期前的X值。 例如: REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收 。 ----- 函数: REFDATE(X,A) 说明: 向前引用 引用指定日期的数据。 用法: REFDATE(X,A),引用A日期的X值。 例如: REF(CLOSE,20011208)表示2001年12月08日的收盘价 ----- 函数: SMA(X,N,M) 说明: 求移动平均 用法: 若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y')/N,其中Y'表示上一周期Y值,N必须大于M。 算法: (X1+X2+X3+...+Xn)/N 例如: SMA(CLOSE,30,1)表示求30日移动平均价 ----- 函数: SUM(X,N) 说明: 求总和 用法: SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。 例如: SUM(VOL,0)表示统计从上市第一天以来的成交量总和 ----- 函数: SUMBARS(X,A) 说明: 累加到指定周期数 向前累加到指定值到现在的周期数 用法: SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数 例如: SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数 4.6 逻辑算术函数 函数: NOT(X) 说明: 求逻辑非 用法: NOT(X)求逻辑非,返回非X,即当X=0时返回1,否则返回0。 例如: NOT(ISUP):是否平盘或收阴 ----- 函数: IF(X,A,B) 说明: 条件函数 根据条件求不同的值 用法: IF(X,A,B)若X不为0则返回A,否则返回B 例如: IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值 ----- 函数: IFF(X,A,B) 说明: 根据条件求不同的值 用法: IFF(X,A,B)若X不为0则返回A,否则返回B 例如: IFF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值 ----- 函数: IFN(X,A,B) 说明: 根据条件求不同的值 用法: IFN(X,A,B)若X不为0则返回B,否则返回A 例如: IFN(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值 ----- 函数: CROSS(A,B) 说明: 交叉函数 用法: A:变量或常量,判断交叉的第一条线B:变量或常量,判断交叉的第二条线 例如: CROSS(MA(CLOSE,5),MA(CLOSE,10))5日均线与10日均线金叉;CROSS(CLOSE,12):价格由下向上突破12元 ----- 函数: LonGCROSS(A,B,N) 说明: 两条线维持一定周期后交叉 用法: LonGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返 回1,否则返回0 例如: LonGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉 ----- 函数: UPNDAY(CLOSE,M) 说明: 连涨周期数 用法: UPNDAY(CLOSE,M)表示连涨M个周期 例如: UPNDAY(CLOSE>OPEN,7)表示连涨7天 ----- 函数: DOWNNDAY(CLOSE,M) 说明: 连跌周期 用法: DOWNNDAY(CLOSE,M)表示连跌M个周期 例如: DOWNNDAY(CLOSE,5) 表示连跌5天 ----- 函数: NDAY(X,Y,N) 说明: 连大 用法: NDAY(X,Y,N)表示条件X>Y持续存在N个周期 例如: NDAY(CLOSE>OPEN,3)表示连续3日收阳线 ----- 函数: EXIST(X,N) 说明: 存在 用法: EXIST(X,N) 表示条件X在N周期有存在 例如: EXIST(CLOSE>OPEN,10) 表示前10日内存在着阳线 ----- 函数: EVERY (X,N) 说明: 一直存在 用法: EVERY (X,N) 表示条件X在N周期一直存在 例如: EVERY(CLOSE>OPEN,10) 表示前10日内一直是阳线 ----- 函数: LAST (X,A,B) 说明: 区间存在 用法: LAST (X,A,B) 表示条件X在前M周期到前N周期存在 例如: LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日内一直阳线。若A为0,表示从第一天开始,B为0,表示到最后日止。 |
打赏
最新创建圈子
- 新闻EA运行效果图圈 2019-05-05
圈主:admin 帖子:1