公式体构成结构
# 公式体构成结构
# 公式语句
所有的公式体由若干语句按照一定的格式组成,每个语句表示一个计算结果,根据各个语句的功能分为两大类语句,一类是赋值语句,一类是中间表达式。
# 赋值语句
在技术指标“B:A/Z”和“C:B*0.618”就是分别两条指标线,语言间用冒号隔开。该语句被称为赋值语句,在技术指标当中,赋值语句的计算结果将会被计算机执行并形成相应的图形。每个语句可以有一个名称,该名称写在语句的最前面,并用一个冒号将它与语句分隔开。
例如: ST:MA(CLOSE,5);表示该语句求收盘价的五日均线,语句的名称为ST,在该语句后的语句中可以直接用ST来替代MA(CLOSE,5),例如:MA(ST,5)表示对收盘价的五日均线再求五日平均。
# 中间语句
一个语句如果不需要显示,可以将它定义为中间语句,例如在上例当中的第一句 “A:=X+Y;”,这样该语句就不会被系统辨认为是指标线了,中间语句用“:=”替代冒号,其他与一般语句完全一样,使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。 在每个模型中,中间公式数量没有限制,但是所有语句之间需要使用分号隔开。
# 公式计算符
公式计算符将函数连接成为公式,计算分为算术计算符和逻辑计算符。
a. 算术计算符
包括+、-、*、/,它们分别对计算符两边的数据进行加减乘除计算,这同一般意义上的算术计算没有差异。
b. 逻辑计算符
包括>、<、<>、>=、<=、=、AND、OR八种,分别表示大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或运算,如果条件成立计算结果就等于1,否则等于0 例如:3+4=7, 4>3都等于1,3<=12就等于0,“逻辑与”表示两个条件都成立时结果才成立;“逻辑或”表示两个条件中只要有一个成立结果成立。
例如,4>3 AND 12>=4的结果等于1,4>3 OR 3>12的结果等于1。
注意
运算符的优先级直接决定了表达式执行的先后顺序,用户使用多个算术和逻辑运算符时,要注意运算符的优先级,如果不太确定,最好用括号把紧密的表达式括起来。
# 线形描述符
对于技术指标公式可以在语句加上线形描述符,用来表示如何画该语句描述的指标线。
线形描述符号包括以下7种。描述符写在语句后分号前,用逗号将它们与语句分隔开,例如在上例当中加入一句线形描述符,C:B*0.618,COLORSTICK;该语句在被执行时,会在图中添加色彩柱线,该功能在编制MACD等指标的时候会显出它的用处。
STICK 柱状线
COLORSTICK:彩色柱状线,当值为正时显示红色,否则显示绿色
COLORRED:为线形色,RED表示红色
COLORBLUE:为线形色,BLUE表示蓝色
COLORYELLOW:为线形色,YELLOW表示黄色
VOLSTICK:成交量柱状线,当股价上涨时显示红色空心柱,否则绿色
LINESTICK:同时画出柱状线和指标线
LINETHICK:对线体的粗细作出描述
CROSSDOT:小叉线
CIRCLEDOT:小圆圈线
POINTDOT:小圆点线
2
3
4
5
6
7
8
9
10
11
a. COLORRED等三个线形描述符还可以自定义颜色,格式为COLOR+“BBGGRR”;BB、GG、 RR表示蓝色,绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制,例如:MA5: MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色;COLOR808000表示淡蓝色和淡绿色的混合色。
b. LINETHICK可以允许对线型的粗细进行自定义的描述,格式“LINETHICK+(0/7)”: 参数的取值范围在0-7之间,“LINETHICK0”表示最细的线,而“LINETHICK7”表示最粗的线。