[公式编写教程] 通达信指标公式编写零基础入门:第2讲 公式编写规则详解

[复制链接]
查看11 | 回复0 | 2 小时前 | 显示全部楼层 |阅读模式
       在通达信软件中,所有指标公式的编写都遵循统一的运算法则和格式规范。只要我们掌握了技术指标公式的基本原理,就能轻松理解和编写其他各类公式。下面,我们以KDJ指标为例,详细解析公式编写的规则。

第2讲公式编写规则详解.png

一、KDJ指标公式示例
       右键点击KDJ指标,选择“编辑公式”后,即可打开公式算法编辑器,查看KDJ指标的具体内容。以下是KDJ指标的公式代码:

       参数名称:缺省值,最小值,最大值
       N:9,1,100
       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线与D线的差值(具体为3倍K线减去2倍D线)。

       二、公式编写规则详解
       2.1数据引用
       A.数据来源
       公式中的基本数据均来源于每日行情数据,这些数据由行情函数从数据库中提取,包括高开低收、成交量、成交额等。

       B.数据类型
       在公式中,数据类型主要分为变量和常量两类。变量是随时间变化而变化的数据,如成交量;而常量则是固定不变的数据,如数字3。函数计算时,所需的参数可能是变量也可能是常量,不能随意混用。函数计算的结果通常是一个变量。

       例如,在计算收盘价均线MA(CLOSE,5)时,MA函数要求第一个参数为变量,而CLOSE函数返回的正是变量;MA函数要求的第二个参数是常量,5就是一个常量。因此,我们不能将参数顺序颠倒,写成MA(5,CLOSE)。

       2.2特殊数据引用
       A.指标数据引用
       在编写公式时,有时需要引用其他指标的值。此时,可以使用“指标.指标线”(参数)的格式来调用。例如,“MACD.DEA”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9。如果参数缺失,则表示使用该指标的默认参数设置。

       B.跨周期引用指标数据
       引用大盘数据:可以使用INDEXC、INDEXV等函数来引用大盘数据。

       引用个股数据:可以使用“股票代码数据”的格式来引用个股数据。例如,“000002VOL”表示000002该股本周期的成交量,“999998$CLOSE”表示A股指数本周期的收盘价(此时A股指数被视为一只个股)。

       2.3公式构成
       A.公式语句
       公式体由若干语句组成,每个语句表示一个计算结果。根据语句的功能,可以分为赋值语句和中间表达式两类。

       B.赋值语句
       赋值语句用于计算并显示一个指标线。例如,“ST:MA(CLOSE,5);”表示计算收盘价的五日均线,并将结果命名为ST。在该语句后的语句中,可以直接用ST来替代MA(CLOSE,5)。

       C.中间语句
       中间语句用于计算但不显示结果。它使用“:=”替代冒号,与一般语句完全一样。使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。

       D.公式计算符
       公式计算符用于将函数连接成为公式。计算符分为算术计算符和逻辑计算符两类。
       算术计算符:包括+、-、*、/,用于对计算符两边的数据进行加减乘除计算。
       逻辑计算符:包括>、<、<>、>=、<=、=、AND、OR八种,用于进行逻辑判断。如果条件成立,计算结果等于1;否则等于0。

       E.线形描述符
       线形描述符用于表示如何画该语句描述的指标线。它写在语句后分号前,用逗号将它与语句分隔开。例如,“C:B*0.618,COLORSTICK;”表示在被执行时,会在图中添加彩色柱线。线形描述符包括多种类型,如COLORRED(红色)、COLORSTICK(彩色柱线)等,还可以自定义颜色和线型粗细。

       2.4关于无效数的问题
       无效数即指没有数据的情况。在某些情况下,一些数据项可能取不到数据,这时返回值为无效数。例如,MA(CLOSE,500)表示计算最近500天收盘价的均价,但如果某只股票上市时间较短没有500天,则其值为无效数。在分析图上,该指标线将不显示。在TDX分析系统中,函数NODRAW代表无效数,可作为常数使用。无效数与任何数作计算,其结果仍为无效数。
回复

使用道具 举报