大智慧公式系统:语法

1、注释语句

描述: 注释语句不会被程序运行,可以起到描述作用。
语法: {注释文本}

{计算5日收盘价均线}
ma(close,5);

2、 数据类型

描述: 在大智慧公式系统中,系统可以处理的数据分为两类:常量和变量。

2.1、常量

描述: 常量是一个永远不变的数据,不可以被赋值修改。

比如在代码:ma(close,5); 中,函数的第二个参数5就是一个常量。

参数列表中的参数也是常量。
在这里插入图片描述

2.2、变量

描述: 变量是一个可以被赋值修改的数据。
语法1: 变量名 := 数据;
       如果使用 := 定义变量。可以在代码的各个阶段直接定义。但是当该变量没有被赋值直接被使用时,该变量是个空值。

{定义数值型变量}
temp1 := 100;

{定义字符串型变量}
temp2 := '这是一个字符串';

语法2: variable: 变量名 = 数据;
       如果使用variable:定义变量,必须在代码开始位置定义并初始化该变量。如果用这种方法不会出现空值情况。

{定义数值型变量}
variable: temp1 = 100;

{定义字符串型变量}
variable: temp2 = '这是一个字符串';

3、赋值语句

描述: 在技术指标中,赋值语句的计算结果将会被计算机执行并形成相应的图形,每个语句可以有一个名称。该图形被称为指标线,每个公式最多可以有6个指标线。
语法: 线名 : [语句];

{用每天的开盘价绘制一条线,线名为temp}
temp:open;

4、中间语句

描述: 一个语句如果不需要显示,可以将它定义为中间语句。例如上文中的定义变量 temp := 100; 这样该语句就不会被系统辨认为是指标线了。中间语句用 := 替代冒号,其它与一般语句完全一样。使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。每个公式中的中间语句没有数量限制。

5、公式计算符

描述: 公式计算符将函数连接成为公式。计算分为算术计算符和逻辑计算符。

5.1、算数计算符

描述: 算数计算符有 +-*/ 四种,分别对应加减乘除,计算符号两边的数据,同一般意义上的算术计算没有差异。

5.2、逻辑计算符

描述: 逻辑计算符有 ><<>、>=、<=、=、andor 八种,分别对应大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或。
       如果条件成立计算结果就等于1,否则等于0。例如:3+4等于7,4>3就等于1,3<=2就等于0。
       逻辑与 表示两个条件都成立时结果才成立;逻辑或 表示两个条件中只要有一个成立结果就成立。例如:4>3 and 12>=4的结果等于1,4>3 or 3>12的结果等于1。

6、线形描述符

描述: 在技术指标公式中可以在语句加上线形描述符,用来表示如何画该语句描述的指标线。线形描述符有以下11种。

线形描述符描述
stick柱状线
colorstick彩色柱状线,当值为正时显示红线,否则显示绿线
colorred为线形赋色,red表示红色
colorblue为线形赋色,blue表示蓝色
coloryellow为线形赋色,yellow表示黄色
volstick成交量柱状线,当股价上涨时显示红色空心柱,否则显示绿色实习柱
linestick同时画出柱状线和指标线
linethick设置线体的粗细
crossdot小叉线
circledot小圆圈线
pointdot小圆点线

       线形描述符写在语句后分号前,用逗号将它与语句分开。
       colorred等三个线形描述符还可以自定义颜色,格式为color + bbggrr:bb、gg、rr表示蓝色、绿色和红色的分量,每种颜色的取值范围是00至ff,采用16进制。例如:ma5:ma(close,5),color00fffff; 表示纯红色与纯绿色的混合色;color808000表示淡蓝色和淡绿色的混合色。
       linethick可以允许对线形的粗细进行自定义设置。范围在0至7之间,linethick0 表示最细的线,而linethick7表示最粗的线。

DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  : EMA(DIFF,9);
MACD : 2*(DIFF-DEA), COLORSTICK;

在这里插入图片描述

7、if条件语句

描述: 当条件成立时运行指定代码,否则运行其它代码。
语法1: if [条件] then [一条语句]

{当收盘价大于开盘价时,temp赋值为1}
variable: temp = 0;
if close > open then    
    temp := 1;

语法2: if [条件] then begin [多条语句] end

{当收盘价大于开盘价时,temp1赋值为1,temp2赋值为2}
variable: temp1 = 0;
variable: temp2 = 0;
if close > open then begin
    temp1 := 1;
    temp2 := 2;
end

语法3: if [条件] then begin [多条语句] end else if [条件] then begin [多条语句] end else begin [多条语句] end

{当收盘价大于开盘价时,temp1赋值为1,temp2赋值为2}
{当收盘价小于开盘价时,temp1赋值为2,temp2赋值为1}
{当收盘价等于开盘价时,temp1赋值为3,temp2赋值为3}
variable: temp1 = 0;
variable: temp2 = 0;
if close > open then begin
    temp1 := 1;
    temp2 := 2;
end
else if open > close then begin
    temp1 := 2;
    temp2 := 1;
end
else begin
    temp1 := 3;
    temp2 := 3;
end

8、for循环语句

描述: 循环运行指定次数的代码。
语法: for [变量]=[初值] to [终值] do begin [多条语句] end

{循环运行10次代码}
variable: nSum = 0;
variable: nEnd = 10;
for i = 0 to nEnd do begin
    nSum := nSum + 1;
end

9、while循环语句

描述: 循环运行指定条件的代码。
语法: while [条件] do begin [多条语句] end

{当nFirst<nEnd时,循环运行代码}
variable: nFirst = 0;
variable: nEnd = 5;
variable: nSum = 0;
while nFirst < nEnd do begin
    nSum := nSum + 1;
    nFirst := nFirst + 1;
end

10、数组

描述: 数组是一个可以存储多个元素的变量。

  • 大智慧公式系统只支持一维数组。
  • 数组在使用之前一定要在代码开头先声明。
{定义一个数值型数组,初始值为0}
variable: v1[20] = 0; 

{定义一个字符串型数组,初始值为'a'}
variable: v2[20] = 'a';
  • 在使用数组变量时,需要在变量名后面带上序号,表示引用数组中的第几个元素,元素的序号从1开始。
variable v1[20] = 1;
p := v1[1] * close;

11、字符串

描述: 大智慧公式系统有两种数据,一种是数值型,另一种就是字符串。

  • 字符串变量定义
{方法一}
variable: s1 = '你好世界';
{方法二}
s2 := '你好世界';
  • 字符串拼接
s := '你好' + '世界';  {s = '你好世界'}
  • 字符串比较
s := strcmp('ABC','abc');  {当s等于0代表两个字符串相等,不等于0代表不相等}

12、定义常量参数

  • 在参数列表中定义
    在这里插入图片描述
  • 在代码中定义
{
语法:input: name(default,min,max,step);
		name:参数名
		default:缺省值
		min:最小值
		max:最大值
		step:步长
}
input: n1(5,1,100,1),n2(10,1,100,1);

13、定义参考线

描述: 使用参考线作为横坐标线。
语法: refline: l1,l2,l3…;

refline:0,20,50,80,100;
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值