mt4 编程手册

  • 格式:doc
  • 大小:599.00 KB
  • 文档页数:109

语法 [Syntax]

数据类型 [Data types]

运算符和表达式 [Operations & Expressions]

操作符 [Operators]

函数 [Function]

变量 [Variables]

预处理程序 [Preprocessor]

账户信息 [Account Information]

数组函数 [Array Functions]

类型转换函数 [Conversion Functions]

公用函数 [Common Functions]

自定义指标函数 [Custom Indicator Functions]

日期时间函数 [Date & Time Functions]

文件处理函数 [File Functions]

全局变量函数 [Global Variables Functions]

数学运算函数 [Math & Trig]

物体函数 [Object Functions]

预定义变量 [Pre-defined Variables]

字符串函数 [String Functions]

标准常量 [Standard Constants]

技术指标调用 [Technical Indicator calls]

交易函数 [Trading Functions]

窗口函数 [Window Functions]

语法 [Syntax]

代码格式

空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。

注释

多行注释使用 /* 作为开始到 */ 结束,在这之间不能够嵌套。单行注释使用 // 作为开始到新的一行结束,可以被嵌套到多行注释之中。

示例:

// 单行注释

/* 多行

注释 // 嵌套的单行注释

注释结束 */

标识符

标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节

你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.

示例:

// NAME1 namel Total_5 Paper

保留字

下面列出的是固定的保留字。不能使用以下任何保留字进行命名。

数据类型 存储类型 操作符 其它

bool extern break false

color static case true

datetime continue

double default

int else

string for

void if

return

switch

while

数据类型 [Data types]

数据类型概述

主要数据类型有:

• Integer (int)

• Boolean (bool)

• ëèòåðàëû (char)

• String (string)

• Floating-point number (double)

• Color (color)

• Datetime (datetime)

我们用Integer类型数据来作为DateTime和Color数据的存储。

使用以下方式可以进行类型站换:

int (bool,color,datetime);

double;

string;

Integer 类型

十进制: 数字0-9;0不能作为第一个字母

示例:

12, 111, -956 1007

十六进制: 数字0-9;拉丁字母a-f或A-F用来表示10-15;使用0x或者0X作为开始。

示例:

0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7

Integer 变量的取值范围为-2147483648到2147483647。

Literal 类型

任意在单引号中的字符或十六进制的任意ASCII码例如'\x10'都是被看作为一个字符,

一些字符例如单引号('),双引号("),问号(?),反斜杠(\)和一些控制符都需要在之前加一个反斜杠(\)进行转意后表示出来:

line feed NL (LF) \n

horizontal tab HT \t

carriage return CR \r

reverse slash \ \\

single quote ' \'

double quote " \"

hexadecimal ASCII-code hh \xhh

以上字符如果不经过反斜杠进行转意将不能被使用 示例:

int a = 'A';

int b = '$';

int c = '©'; // code 0xA9

int d = '\xAE'; // symbol code ®

Boolean 类型

Boolean 用来表示 是 和 否, 还可以用数字 1 和 0 进行表示。True和Flase可以忽略大小写。

示例:

bool a = true;

bool b = false;

bool c = 1;

Floating-point number 类型

浮点型变量在整数型后面加一个点(.)用来更精确的表示十进制数字。

示例:

double a = 12.111;

double b = -956.1007;

double c = 0.0001;

double d = 16;

浮点型的取值范围从 2.2e-308 到 1.8e308.

String 类型

字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:"Character constant".

示例:

"This is a character string"

"Copyright symbol \t\xA9"

"this line with LF symbol \n"

"A" "1234567890" "0" "$"

Color 类型

颜色类型可以使用以下示例里的几种方式进行定义。

示例:

// symbol constants

C'128,128,128' // gray

C'0x00,0x00,0xFF' // blue

// named color

Red Yellow

Black

// integer-valued representation

0xFFFFFF // white

16777215 // white

0x008000 // green

32768 // green

Datetime 类型

时间类型使用年、月、日、时、分、秒来进行定义,你可以使用以下示例中的方式来定义变量。

示例:

D'2004.01.01 00:00' // New Year

D'1980.07.19 12:30:27'

D'19.07.1980 12:30:27'

D'19.07.1980 12' //equal to D'1980.07.19 12:00:00'

D'01.01.2004' //equal to D'01.01.2004 00:00:00'

D'12:30:27' //equal to D'[compilation date] 12:30:27'

D'' //equal to D'[compilation date] 00:00:00'

运算符和表达式 [Operations & Expressions]

表达式

一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。

示例:

a++; b = 10; x = (y*z)/w;

注:分号(;)是表达式的结束符。

算术运算符

Sum of values i = j + 2;

Difference of values i = j - 3;

Changing the operation sign x = - x;

Product of values z = 3 * x;

Division quotient i = j / 5;

Division remainder minutes = time % 60;

Adding 1 to the variable value i++;

Subtracting 1 from the variable value k--;

加减1的运算符不能被嵌套在表达式中

int a=3;

a++; // 可行的表达式 int b=(a++)*3; // 不可行的表达式

赋值运算符

注:将右侧的结果赋值给左侧的变量

将x的值赋值给y y = x;

将x的值加到y上面 y += x;

在y上面减去x的值 y -= x;

得到y的x倍的值 y *= x;

得到y除以x的值 y /= x;

取y除以x后的余数

y %= x;

y向右位移x位 y >>= x;

y向左位移x位 y <<= x;

得到逻辑AND的值 y &= x;

得到逻辑OR的值

y |= x;

得到逻辑非OR的值 y ^= x;

注:一个表达式只能有一个赋值运算符.

关系运算符

用返回0(False)或1(True)来表示两个量之间的关系。

a是否等于b a == b;

a是否不等于b a != b;

a是否小于b a < b;

a是否大于b a > b;

a是否小于等于b a <= b;

a是否大于等于b a >= b;

真假运算符

否定运算符(!),用来表示真假的反面的结果。

// 如果a不是真的

if(!a)

Print("not 'a'");

逻辑运算符或(||)用来表示两个表达式只要有一个成立即可。

示例:

if(xl)

Print("out of range");

逻辑运算符和(&&)用来表示两个表达式要同时成立才行。

示例:

if(p!=x && p>y)