提示
这是 2011 年写的一个系列教程。
声明一个函数¶
这一篇介绍一些编程基础,还是以默认的 MT5 指标程序为例。注释前一篇已经讲过了,拿初始化函数开讲。
声明一个自定义指标函数,大致结构是:
返回值的数据类型 函数名(参数1类型 参数1, 参数2类型 参数2, ...) { 执行语句1; 执行语句2; ... }
常用的数据类型¶
关键字 | 类型 | 说明 | 举例 |
---|---|---|---|
int | 整数值型 | 约正负 20 亿以内的整数。 | 2; 1854; 96 |
char | 字符型 | 字母和一些常用英文符号(个位数字也可以是一个字符),用引号括起来。 | "a"; "e"; "-"; "3" |
string | 字符串型 | 一串字符,用引号括起来。 | "abcdef"; "12345"; "abc123" |
bool | 布尔型 | 值为 true 或 false,表示“真”或“假”,另外整数 0 也是“假”,非零整数为“真”。 | true; false; 0; 1; 2 |
datetime | 时间型 | 日期时间型常量可被当做数字串,由 6 个部分的字符组成:年、月、日(或是日、月、年)、时、分、秒,数据以 D 开头,时间值用单引号括起来。 | D'1980.07.19 12:30:27' |
color | 颜色型 | 表示颜色。 | 0xFFFFFF(十六进制的白色); clrBlack(黑色); C'128,128,128'(RGB 里的灰色) |
float | 单精度浮点型 | 小数,7 位有效数字。 | 1.234567 |
double | 双精度浮点型 | 更精确的小数,15 位有效数字。 | 1.23456789012 |
void | 空类型 | 声明一个特殊类型的变量或函数,一个空类型的函数没有返回值,一个空类型的指针可以指向任何地址(MT5/MQL5 指标编程通常用不到指针)。 |
最常用的是这几个,还有比如 short 和 long 分别表示小整数和大整数,关于颜色的换算以后用到的时候再讲。
标识符¶
标识符是用来给函数和变量命名用的,长度不能超过 63 个字节。可以使用数字 0-9、拉丁字母大写 A-Z 和小写 a-z(大小写有区分的),还有下划线 _。此外首字母不可以是数字,不能和保留字冲突。
比如:abc、a1b、a_b 都是合法的,123a 就不是合法的。初始化函数的名字就是 OnInit。
刚才提到了保留字,保留字就是数据类型、声明、计算,等要用到的,慢慢会介绍全的。
参数¶
参数要放在括号里,多个参数要用逗号隔开,如:OnInit(参数1, 参数2, 参数3)。后面的 OnCalculate 函数就有若干个参数。
函数体¶
一个函数内所有要运行的语句都要用大括号括起来,并且每个语句要用分号结束以区分:
init OnInit(类型1 参数1, 类型2 参数2, 类型3 参数3){ 语句1; 语句2; 语句3; }
要注意的是最后一个参数后面不要加逗号,最后一个语句后面依然要有分号。
现在这个函数内就只有一句 return(0);,除了空型函数,所有函数都要返回一个值,根据声明时声明的数据类型,也就是大部分函数后面都要加一句 return(某个值); 才行。目前初始化函数返回零。