您的位置 首页 外汇EA指标

(三)Operations & Expressions 操作表达式

    Operations & Expressions  操作表达式   一些数字和字符的组合是特别重要的,它们被称为运算符,例如: + – * /…

 

 
Operations & Expressions  操作表达式
 
一些数字和字符的组合是特别重要的,它们被称为运算符,例如:
+ – * / % 算术运算符
&& || 逻辑运算符
= += *= 负值运算符
运算符应用在表达式中实现特定的作用。
需要特别注意标点符号如圆括号、方括号、逗号、冒号、分号。
运算符、标点符号、空格用来分割语句的不同部分。
Expressions  表达式
 
一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。
示例:
a++; b = 10;
x = (y * z) /
(w + 2) + 127;
一个表达式的最后一个分号(;) 操作符。
Arithmetical operations  算术运算
 
算术运算符包括加法和乘法运算:
求和 i = j + 2;
求差 i = j – 3;
改变运算符 x = – x;
求积 z = 3 * x;
求商 i = j / 5;
求模 minutes = time % 60;
自加 1 i++;
自减 1 k–;
添加 1 的运算符不能使用在表达式中。
示例:
int a=3;
a++; // 有效表达式
int b=(a++)*3; // 无效表达式
Assignment operation  赋值操作
 
表达式的值包括左边值给出的赋值运算符。
把变量 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;
把 y 值向左做 x 位逻辑移位 y <<= x;
AND 位运算符 y &= x;
OR 位运算符 y |= x;
把 x 和 y 按做逻辑异或的操作 y ^= x;
表达式中可以只能有一个赋值运算符。 位运算符只能用于整型数据。逻辑移位运算符中 x
值只能是小于 5 位的二进制数,过大的数值将会被拒绝。所以移动范围只能是 0 到 31 。
用 %= 运算符 ( 用 x 的模板求 y 值),其结果等于余数。
Operations of relation  操作关系
逻辑值 FALSE 代表整数零值,逻辑值 TRUE 代表不同于零的任何值。
用返回 0(False)或 1(True)来表示两个量之间的关系。
等于 b a = b;
不等于 b a != b;
小于 b a< b;
大于 b a >b;
小于等于 b a <=b;
大于等于 b a >= b;
2 个不规范的浮点型数据不能用 = 或 != 运算符比较,但是我们可以把 2 者相减, 正常化
后和 null 进行比较。
Boolean operations  布尔运算
 
否定运算符(!),用来表示真假的反面的结果。如果运算值是 FALSE (0) 结果为 TRUE (1);如果
运算不同于 FALSE (0)等于 FALSE (0) 。
if(!a) Print(“不是 ‘a'”);
x 和 y 值的逻辑运算符或 OR (||)用来表示两个表达式只要有一个成立即可。如果 x 和 y 值为
真的,表达式值为 TRUE (1)。否则,值为 FALSE (0)。逻辑表达式被完全计算。
if(x<0 || x>=max_bars) Print(“超出范围”);
x 和 y 值的逻辑运算符 AND (&&)。 如果 x 和值都是真实的, 表达式值为 TRUE (1)。 Otherwise,
it is FALSE (0).
if(p!=x && p>y) Print(“TRUE”);
Bitwise operations  位运算
 
运算符对操作数执行按位求补操作。表达式的数字值中包含 1,其中 n 包含 0 和数字值中
包含 0 ,其中 n 包含 1。
b = ~n;
运算符 x 向右移动到数字 y 代表二进制代码。向右移动是逻辑运算,即左侧将被零填满。
x = x >> y;
运算符 x 向右移动到数字 y 代表二进制代码。左侧将被零填满
x = x << y;
二进制的 x 和 y 代表位逻辑运算符 AND 。在所有数组中 x 和 y 的值都不含有零表达式的值
包含 1 (TRUE);在所有其他数字中包含 0 (FALSE)。
b = ((x & y) != 0);
二进制的x 和y代表位逻辑运算符OR。 在所有数字中x和y的值都不等于零表达值包含1 并
且在所有其他数字中包含 0。
b = x | y;
二进制的 x 和 y 代表位逻辑运算符 EXCLUSIVE 。在所有数字中 x 和 y 的值都不同于二进制
值表达值包含 1 并且在所有其他数字中包含 0 。
b = x ^ y;
位逻辑运算符只作用于 Integers 类型。
Other operations  其他运算
 
指数
在数组第一元素的位置,表达式值为 i 的系列数变量值。
示例:
array[i] = 3; //数组的 3 的计算值到第 i 个元素。
只有整数能够成为数组指数。 四维以下的数组是禁止的。 每组的检测是从 0 到 测量大小-1。
特定情况下,对于维数组由 50 个元素组成,参照的第一个数组将为[0],这样最后一个数组
将是[49]。
获取超出数组,将会发生常规错误 ERR_ARRAY_INDEX_OUT_OF_RANGE, 可以调用
GetLastError() 函数。
调用 x1,x2,…,xn 自变数函数
每一个自变数可以显示一个常数, 一个变量和相应类型表达式。 自变数的通过必须根据通道
命令。
用此函数返回表达式值。如果返回的表达式值为空,一些函数不能进行中转。请确认表达式
x1,x2,…,xn 是按照命令执行的。
示例:
double SL=Bid-25*Point;
int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,Ask+25*Point,”My comment”,123,0,Red);
标点操作符
从左到右的表达式用标点分开。所有表达式的计算是从左至右的。结果类型和值相互吻合,
说明表达式是正确的。参量列表可以作为范例被通过。
示例:
for(i=0,j=99; i<100; i++,j–) Print(数组[i][j]);
Precedence rules  优先规 则
 
下面是从上到下的运算优先规则,优先级高的将先被运算。
() 函数调用 从左到右
[] 数组元素参考
! 真假运算符 从右到左
– 改变运算符
++ 增量
— 减量
~ 位逻辑运算符
& 位逻辑运算符 AND 从左到右
| 位逻辑运算符 OR
^ 位逻辑运算符 OR
<< 左移
>> 右移
* 乘法 从左到右
/ 除法
% 百分比
+ 加法 从左到右
– 减法
< 小于 从左到右
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
|| 逻辑 OR 从左到右
&& 逻辑 AND 从左到右
= 值 从右到左
+= 加法值
-= 减法值
*= 乘法值
/= 除法值
%= 百分比值
>>= 右移值
<<= 左移值
&= 位逻辑运算符 AND 值
|= 位逻辑运算符 OR 值
^= 位逻辑运算符 OR 值
, 逗号 从左到右
插入语会显示所优先执行的运算
注意:在 MQL4 程序中执行优先运算不同于在 C 语言范围内的运算。
 
Operations & Expressions  操作表达式
 
一些数字和字符的组合是特别重要的,它们被称为运算符,例如:
+ – * / % 算术运算符
&& || 逻辑运算符
= += *= 负值运算符
运算符应用在表达式中实现特定的作用。
需要特别注意标点符号如圆括号、方括号、逗号、冒号、分号。
运算符、标点符号、空格用来分割语句的不同部分。
Expressions  表达式
 
一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。
示例:
a++; b = 10;
x = (y * z) /
(w + 2) + 127;
一个表达式的最后一个分号(;) 操作符。
Arithmetical operations  算术运算
 
算术运算符包括加法和乘法运算:
求和 i = j + 2;
求差 i = j – 3;
改变运算符 x = – x;
求积 z = 3 * x;
求商 i = j / 5;
求模 minutes = time % 60;
自加 1 i++;
自减 1 k–;
添加 1 的运算符不能使用在表达式中。
示例:
int a=3;
a++; // 有效表达式
int b=(a++)*3; // 无效表达式
Assignment operation  赋值操作
 
表达式的值包括左边值给出的赋值运算符。
把变量 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;
把 y 值向左做 x 位逻辑移位 y <<= x;
AND 位运算符 y &= x;
OR 位运算符 y |= x;
把 x 和 y 按做逻辑异或的操作 y ^= x;
表达式中可以只能有一个赋值运算符。 位运算符只能用于整型数据。逻辑移位运算符中 x
值只能是小于 5 位的二进制数,过大的数值将会被拒绝。所以移动范围只能是 0 到 31 。
用 %= 运算符 ( 用 x 的模板求 y 值),其结果等于余数。
Operations of relation  操作关系
逻辑值 FALSE 代表整数零值,逻辑值 TRUE 代表不同于零的任何值。
用返回 0(False)或 1(True)来表示两个量之间的关系。
等于 b a = b;
不等于 b a != b;
小于 b a< b;
大于 b a >b;
小于等于 b a <=b;
大于等于 b a >= b;
2 个不规范的浮点型数据不能用 = 或 != 运算符比较,但是我们可以把 2 者相减, 正常化
后和 null 进行比较。
Boolean operations  布尔运算
 
否定运算符(!),用来表示真假的反面的结果。如果运算值是 FALSE (0) 结果为 TRUE (1);如果
运算不同于 FALSE (0)等于 FALSE (0) 。
if(!a) Print(“不是 ‘a'”);
x 和 y 值的逻辑运算符或 OR (||)用来表示两个表达式只要有一个成立即可。如果 x 和 y 值为
真的,表达式值为 TRUE (1)。否则,值为 FALSE (0)。逻辑表达式被完全计算。
if(x<0 || x>=max_bars) Print(“超出范围”);
x 和 y 值的逻辑运算符 AND (&&)。 如果 x 和值都是真实的, 表达式值为 TRUE (1)。 Otherwise,
it is FALSE (0).
if(p!=x && p>y) Print(“TRUE”);
Bitwise operations  位运算
 
运算符对操作数执行按位求补操作。表达式的数字值中包含 1,其中 n 包含 0 和数字值中
包含 0 ,其中 n 包含 1。
b = ~n;
运算符 x 向右移动到数字 y 代表二进制代码。向右移动是逻辑运算,即左侧将被零填满。
x = x >> y;
运算符 x 向右移动到数字 y 代表二进制代码。左侧将被零填满
x = x << y;
二进制的 x 和 y 代表位逻辑运算符 AND 。在所有数组中 x 和 y 的值都不含有零表达式的值
包含 1 (TRUE);在所有其他数字中包含 0 (FALSE)。
b = ((x & y) != 0);
二进制的x 和y代表位逻辑运算符OR。 在所有数字中x和y的值都不等于零表达值包含1 并
且在所有其他数字中包含 0。
b = x | y;
二进制的 x 和 y 代表位逻辑运算符 EXCLUSIVE 。在所有数字中 x 和 y 的值都不同于二进制
值表达值包含 1 并且在所有其他数字中包含 0 。
b = x ^ y;
位逻辑运算符只作用于 Integers 类型。
Other operations  其他运算
 
指数
在数组第一元素的位置,表达式值为 i 的系列数变量值。
示例:
array[i] = 3; //数组的 3 的计算值到第 i 个元素。
只有整数能够成为数组指数。 四维以下的数组是禁止的。 每组的检测是从 0 到 测量大小-1。
特定情况下,对于维数组由 50 个元素组成,参照的第一个数组将为[0],这样最后一个数组
将是[49]。
获取超出数组,将会发生常规错误 ERR_ARRAY_INDEX_OUT_OF_RANGE, 可以调用
GetLastError() 函数。
调用 x1,x2,…,xn 自变数函数
每一个自变数可以显示一个常数, 一个变量和相应类型表达式。 自变数的通过必须根据通道
命令。
用此函数返回表达式值。如果返回的表达式值为空,一些函数不能进行中转。请确认表达式
x1,x2,…,xn 是按照命令执行的。
示例:
double SL=Bid-25*Point;
int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,Ask+25*Point,”My comment”,123,0,Red);
标点操作符
从左到右的表达式用标点分开。所有表达式的计算是从左至右的。结果类型和值相互吻合,
说明表达式是正确的。参量列表可以作为范例被通过。
示例:
for(i=0,j=99; i<100; i++,j–) Print(数组[i][j]);
Precedence rules  优先规 则
 
下面是从上到下的运算优先规则,优先级高的将先被运算。
() 函数调用 从左到右
[] 数组元素参考
! 真假运算符 从右到左
– 改变运算符
++ 增量
— 减量
~ 位逻辑运算符
& 位逻辑运算符 AND 从左到右
| 位逻辑运算符 OR
^ 位逻辑运算符 OR
<< 左移
>> 右移
* 乘法 从左到右
/ 除法
% 百分比
+ 加法 从左到右
– 减法
< 小于 从左到右
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
|| 逻辑 OR 从左到右
&& 逻辑 AND 从左到右
= 值 从右到左
+= 加法值
-= 减法值
*= 乘法值
/= 除法值
%= 百分比值
>>= 右移值
<<= 左移值
&= 位逻辑运算符 AND 值
|= 位逻辑运算符 OR 值
^= 位逻辑运算符 OR 值
, 逗号 从左到右
插入语会显示所优先执行的运算
注意:在 MQL4 程序中执行优先运算不同于在 C 语言范围内的运算。
本文来自网络,不代表迈投财经立场,转载请注明出处:http://www.myfxtop.cn/ea/820.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: myfxtop@hotmail.com

9:30 - 18:00/Mon-Fri
返回顶部