alizee 发表于 2012-12-3 17:18:53

MQL4运算符和表达式

一些数字和字符的组合是特别重要的,它们被称为运算符,例如:+ - * / %   算术运算符&& ||         逻辑运算符= += *=       负值运算符标识符加运算符就是表达式。举例说明:x = (y*z)/w;x,y,z和 w是标识符=,* 和/ 是运算符整个这行是表达式。表达式组成语句,语句组成函数,函数组成程序。■算数运算符算术运算符包括加法和乘法运算:
运算符名称示例
+加A = B + C;
-减A = B - C;
+ -改变符号A = -A;
*乘A = B * C;
/除A = B / C;
%求模A =A % C;
++自加一A++;
--自减一A--;
添加1的运算符不能使用在表达式中。
int a=3;a++;            // 有效表达式int b=(a++)*3;    // 无效表达式b=a*5               // 有效表达式
■赋值运算符任何表达式的目的是产生一个结果,赋值运算符把这个结果赋予给左边的操作数。例如:A=B*C在这里,我们把B和C相乘,并把结果赋予给A。(=在这儿是赋值运算符)MQL4有11个赋值运算符:把B的值赋予A                                A=B;在 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;■关系运算符用返回0(False)或1(True)来表示两个量之间的关系。逻辑值FALSE代表整数零值,逻辑值TRUE 代表不同于零的任何值。MQL4有六个关系运算符。示例如下:4 == 4;            //等于,结果TRUE,或14 < 4;            //小于,结果为FALSE或04>4;               //大于,结果为FALSE或04 <= 4 ;         //小于等于,结果为TRUE或14>=4 ;             //大于等于,结果为TRUE或14!=4 ;            //不等于,结果为FALSE或0■布尔运算符(逻辑运算符)逻辑运算符是根据表达式的值来返回真值或是假值。MQL4使用3个逻辑运算符:
运算符名称示例说明
&&逻辑与A && B;如果A和B值都是真实的,表达式值为TRUE (1)。 否则,表达式的值为FALSE (0).
||逻辑或A || B;A和B值的逻辑运算符或OR (||)用来表示两个表达式只要有一个成立即可。如果A和B值为真的,表达式值为TRUE (1)。否则,值为FALSE (0)。逻辑表达式被完全计算。
!逻辑非!A;否定运算符(!),用来表示真假的反面的结果。如果运算值是FALSE (0) 结果为TRUE (1);如果运算不同于FALSE (0)等于FALSE (0) 。
■位逻辑运算符位逻辑运算符和逻辑运算符比较相似,只是他们工作在一个比较小的范围---二进制数据。运算符对操作数执行按位求补操作。表达式的数字值中包含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类型。■其他运算符这些运算符不属于前面任何一个种类。
运算符名称示例说明
[]指数下一课中会有详细说明
()调用x1,x2,...,xn 自变数函数
,标点操作符
■ 优先级下面是从上到下的运算优先规则,优先级高的将先被运算。()   函数调用                     从左到右[]   数组元素参考!      真假运算符                   从右到左-      改变运算符++   增量--   减量~      位逻辑运算符&      位逻辑运算符 AND             从左到右|      位逻辑运算符 OR^      位逻辑运算符 OR<<   左移>>   右移*      乘法                        从左到右/      除法%      百分比+      加法                        从左到右-      减法<      小于                        从左到右<=   小于等于>      大于>=   大于等于==   等于!=   不等于||   逻辑 OR                      从左到右&&   逻辑 AND                     从左到右=      值                        从右到左+=   加法值-=   减法值*=   乘法值/=   除法值%=   百分比值>>=    右移值<<=    左移值&=   位逻辑运算符 AND值|=   位逻辑运算符OR值^=   位逻辑运算符 OR值,   逗号                         从左到右插入语会显示所优先执行的运算
注意:在MQL4程序中执行优先运算不同于在C 语言范围内的运算。在MQL4中,正常的流程控制是从上而下一个语句一个语句的执行。一个语句是一行代码,它让电脑做某些事情。例如:Print("Hello World");return 0;语句后面的分号是语法中至关紧要的部分,也是最容易被遗忘的部分。从上到下的执行方式并不是唯一的途径,它有两个例外:循环和选择。你希望你写的程序代码能根据情况的改变而做出不同的响应。在这种方式中,控制流程从程序的这一部分跳转到程序的另一部分。语句引起这样的跳转被叫做控制语句。这样的控制由循环和选择组成。

炒他妈的外汇 发表于 2014-11-1 15:08:02

路过。。看下先。

ewmwd 发表于 2014-11-15 02:39:09

亏损中……………………

ijvcuyhg 发表于 2014-11-18 11:04:46

看看吧,谢谢分享

hfize 发表于 2014-11-18 20:51:20

没有使用说明书

love404 发表于 2014-11-18 22:28:10

多谢分享 看看是什么

虾米 发表于 2018-8-26 17:17:53

学习了,不错,讲的太有道理了
页: [1]
查看完整版本: MQL4运算符和表达式