保持敬畏之心
交易是一场持久战

​MQL4(3):语法基础与注释、标识符

我们先来回顾一些基础的编程概念,这将有助于编程新手更好地理解后续内容。如果您已是经验丰富的程序员,可以直接跳到下一节。

语法 (Syntax)

如果您熟悉 C++、PHP 或其他许多语法源自 C 语言的编程语言,那么您会发现 MQL 编程非常容易上手。在 MQL4中,每条语句都必须以分号(;)结束,这被称为一个表达式,一个表达式可以多行,但结尾处必须有分号。

// 获取上一个 K 线的高点值
double LastHigh = High[1];
// 拼接一个跨行的字符串
string MultiLine = StringConcatenate("这是一个跨行语句。",
"这是一个跨行语句。");

如果您是编程初学者,或者习惯使用的语言不需要用分号来结束语句,那么请务必记住在MQL4的每条语句末尾都要加上分号,忘记加分号是新手常犯的错误。

不过也有几种例外:复合运算符结构本身不需要分号。所谓复合运算符,是指由一对大括号 {} 包裹起来的代码块,其中可以包含一条或多条语句。典型的复合运算符包括控制流语句(如 if, switch)、循环语句(如 for, while)以及函数定义。

// 这是一个 if 条件控制语句
if(Compound == true)
{
    // 大括号内的语句需要以分号结束
    Print("这是一个复合表达式内的语句");
}
// 结束大括号 } 后面不需要分号

请注意,在上述 if 语句的起始行(if(Compound == true))之后,以及结束大括号 } 之后,都不需要加分号。但是,在大括号内部的 Print() 函数调用语句则必须以分号结束。大括号内可以包含一条或多条语句,每一条语句都必须以分号结尾。

注释 (Comments)

注释 非常有用,既可以为代码添加解释性文档,也能在测试和调试阶段暂时“注释掉”或禁用部分代码。使用双正斜杠(//)可以注释掉其后的单行内容:

// 这是一个单行注释,从 // 开始直到行尾

多行注释以 /* 开始,以 */ 结束。这种注释可以跨越多行,所有在 /**/ 标记之间的内容都会被编译器忽略。

/*
这是一个多行注释块,
可以包含任意多行文本,
这里的所有内容都会被当作注释处理。
*/

标识符 (Identifiers)

标识符是您为变量 (variables) 和自定义函数指定的名称。标识符可由数字、字母以及下划线(_)自由组合构成,但其总长度不能超过 31 个字符。

理想情况下,您应当选择具有描述性的标识符来表明其用途,但同时必须确保所选名称不与 MQL4语言自身的关键字或内置函数名(也称为保留字, reserved words)冲突。以下分别为变量标识符和自定义函数标识符的示例(标识符分别为 StopLossOrder_Count):

// 定义一个双精度浮点型变量,其标识符是 StopLoss
double StopLoss;
// 声明一个返回整型值的自定义函数,其标识符是 Order_Count
int Order_Count()

请注意,MQL4中的标识符是区分大小写的。这意味着 StopLossstoploss 会被视为两个完全不同的标识符!这也是编程新手常犯的一个错误,因此请务必仔细检查您所使用的标识符名称的大小写拼写是否准确。

赞(0)
未经允许不得转载:图道交易 » ​MQL4(3):语法基础与注释、标识符