文章来源 /123财经导航
作者:william
(第一单元)第4小节:语法表达
语法表达是编程中不可缺少的学习环节,就像我们日常生活中说话做事一样,需要清晰明了的话术才能把一件事表达清楚。编程也一样,在写EA时,只有把逻辑表达清楚再能让整段代码跑起来,本节我们就开始接触MQL4语言的基础语法和表达式。
下面代码中虽然语法正确,但逻辑是混乱且错误的,我们只需要理解其编写过程中用到的运算符即可,这段代码用到最常用的多种运算符号,详细描述了从定义到比较再到运算的的过程。
操作符/运算符
运算符是用于执行各种操作的特殊符号或字符序列。它们用于操作和组合变量、常量和表达式,以执行算术、逻辑、赋值等各种操作。在进行代码编写时,运算表达少不了运算符的存在,也可以理解为操作符,即用来操作参与运算时所需的符号,比如中文里用逗号分割语句,用句号代表一个语句结束一个原理,但在编程中还是有很大区别的。
常见的运算符包含:算术运算符(如 +、-、*、/)和逻辑运算符(如 &&、||、!)。还有比较运算符(如 ==、!=、>、<)和赋值运算符(如 =、+=、-=)。运算符的使用方式和其他编程语言类似。可以简单理解成加减乘除,再加上造句中使用到的标点符号。
表达方式解析
1、注释:
可以使用 // 进行单行注释,或使用 /* */ 进行多行注释。注释对于解释代码的功能、提供相关信息介绍非常有用,也便于日后维护。
- 对于暂时不需要但可以在日后查看的代码片段,我们可以以/* 注释内容 */的格式进行注释掉;对于需要备注功能解释的我们可以使用双斜杠的方式注释。
- 无论哪种注释方式都可以让代码片段失效(不会被编译到ex4中,不会对实际使用时产生影响)
- 使用须知:多行注释必须成对出现,中间不能相互嵌套
(下列为错误的注释方式:嵌套使用)
2、算术运算表达
在表达的同时,经常涉及到算术运算,配合适当的算术运算符,可用于执行复杂的数学计算和操作。以下是MQL4中常用的算术运算符及其功能:
加法运算符 +:用于将两个值相加。例如,a + b 将 a 和 b 的值相加。
减法运算符 -:用于从一个值中减去另一个值。例如,a - b 将 b 的值从 a 中减去。
乘法运算符 *:用于将两个值相乘。例如,a * b 将 a 和 b 的值相乘。
除法运算符 /:用于将一个值除以另一个值。例如,a / b 将 a 的值除以 b。
取余运算符 (求模运算符)%:用于获取除法运算的余数。例如,a % b 将 a 的值除以 b 并返回余数。
自增运算符 ++:用于将变量的值增加1。它可以作为前缀(++i)或后缀(i++)使用。
自减运算符 --:用于将变量的值减少1。它可以作为前缀(--i)或后缀(i--)使用。
3、赋值操作表达
在MQL4中,赋值操作符 = 用于将一个值赋给一个变量。赋值操作是一种基本的操作,它允许您将数据存储在变量中以供以后使用。以下是关于赋值操作的一些重要点:
- 基本赋值操作:基本的赋值操作使用等号 = 将右边的值赋给左边的变量。例如,a = 10; 将整数值 10 赋给变量 a。
- 表达式赋值:除了简单的值赋给变量外,赋值操作还可以使用表达式。例如,a = b + c; 将变量 b 和 c 的值相加,并将结果赋给变量 a。
- 复合赋值操作:MQL4提供了一组复合赋值操作符,可以将赋值操作与其他算术或逻辑运算结合使用,以便更简洁地执行操作并更新变量的值。以下是一些常见的复合赋值操作符:
+=:加法赋值。例如,a += b; 相当于 a = a + b;。
-=:减法赋值。例如,a -= b; 相当于 a = a - b;。
*=:乘法赋值。例如,a *= b; 相当于 a = a * b;。
/=:除法赋值。例如,a /= b; 相当于 a = a / b;。
4、关系比较表达
关系运算符用于比较两个值之间的关系,并返回一个布尔值(true 或 false)作为结果。以下是MQL4中常用的关系运算符及其功能:
- 等于运算符 ==:当变量 a 的值等于变量 b 的值时,表达式 a == b 的结果为 true,否则为 false。
- 不等于运算符 !=:当变量 a 的值不等于变量 b 的值时,表达式 a != b 的结果为 true,否则为 false。
- 小于运算符 <:当变量 a 的值小于变量 b 的值时,表达式 a < b 的结果为 true,否则为 false。
- 大于运算符 >:当变量 a 的值大于变量 b 的值时,表达式 a > b 的结果为 true,否则为 false。
- 小于等于运算符 <=:当变量 a 的值小于或等于变量 b 的值时,表达式 a <= b 的结果为 true,否则为 false。
- 大于等于运算符 >=:当变量 a 的值大于或等于变量 b 的值时,表达式 a >= b 的结果为 true,否则为 false。
- 三元运算符?:三元运算符是一种特殊的条件运算符,也称为条件表达式。它由三个部分组成,形式为 条件 ? 表达式1 : 表达式2。它的作用是根据条件的真假选择性地执行不同的表达式。
表达方式解读:
1、如果条件 (a > 0) 为真,则表达式 b + a 的结果将被赋给 c。这意味着当 a 大于 0 时,计算 b 加上 a 的值,并将结果赋给 c。
2、如果条件 (a > 0) 为假,则表达式 0 将被赋给 c。这意味着当 a 小于等于 0 时,c 的值将为 0。
这些关系运算符可用于比较变量之间的大小关系,并根据比较结果返回布尔值。可以在条件语句、循环控制和逻辑判断等方面使用关系运算符,以根据变量之间的关系执行相应的操作。
5、布尔运算表达
布尔运算是MQL4中用于处理逻辑值(true 或 false)的操作。也就是与、或、非的关系运算。下面是布尔运算的几个重要部分:
-
逻辑否定运算(NOT)!:逻辑否定运算符 ! 对操作数进行取反操作。如果操作数的值为 false(0),则结果为 true(1);否则结果为 false(0)。
-
逻辑或运算(OR)||:逻辑或运算符 || 对两个操作数进行逻辑或运算。如果其中一个操作数的值为 true(非零),则表达式的值为 true(1);否则为 false(0)。
-
逻辑与运算(AND)&&:逻辑与运算符 && 对两个操作数进行逻辑与运算。只有当两个操作数的值都为 true(非零)时,表达式的值才为 true(1);否则为 false(0)。
通过使用这些布尔运算符,您可以在编程中进行逻辑判断和条件控制,根据条件的真假执行相应的代码块。布尔运算使您能够根据不同的条件情况来控制程序的执行路径。
6、位运算表达(冷门语法,了解即可):
- 按位与(Bitwise AND):用符号 & 表示,对两个操作数的对应位执行逻辑与运算。
- 按位或(Bitwise OR):用符号 | 表示,对两个操作数的对应位执行逻辑或运算。
- 按位异或(Bitwise XOR):用符号 ^ 表示,对两个操作数的对应位执行逻辑异或运算。
- 按位取反(Bitwise NOT):用符号 ~ 表示,对操作数的每个位执行逻辑取反运算。
- 左移(Left Shift):用符号 << 表示,将操作数的二进制位向左移动指定的位数。
- 右移(Right Shift):用符号 >> 表示,将操作数的二进制位向右移动指定的位数。
位运算符可以用于处理二进制数据、位掩码、标志位等情况。
本节知识点
参与运算的时候可以分为三大类:
- 算术运算:包括 +、-、*、/ 等运算符,用于执行基本的数学运算,如加法、减法、乘法和除法。
- 条件运算(逻辑运算符和比较运算符):包括 &&、||、!、==、!=、>、< 、?等运算符,用于实现条件判断和逻辑运算。逻辑运算符用于组合和操作布尔值(true/false),比较运算符用于比较两个值的大小关系。
- 赋值运算:包括 =、+=、-= 等运算符,用于将一个值赋给变量或对变量进行修改。