6评论

0收藏

MQL4运算符和表达式

avatar alizee | 5634 人阅读 | 6 人评论 | 2012-12-03

一些数字和字符的组合是特别重要的,它们被称为运算符,例如:
+ - * / %     算术运算符
&& ||         逻辑运算符
= += *=       负值运算符
标识符加运算符就是表达式。
举例说明:
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
在这里,我们把BC相乘,并把结果赋予给A。(=在这儿是赋值运算符)
MQL411个赋值运算符:
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,或1
4 < 4;              //小于,结果为FALSE0
4>4;               //大于,结果为FALSE0
4 <= 4 ;           //小于等于,结果为TRUE1
4>=4 ;             //大于等于,结果为TRUE1
4!=4 ;              //不等于,结果为FALSE0
■布尔运算符(逻辑运算符)
逻辑运算符是根据表达式的值来返回真值或是假值。
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;
语句后面的分号是语法中至关紧要的部分,也是最容易被遗忘的部分。
从上到下的执行方式并不是唯一的途径,它有两个例外:循环和选择。
你希望你写的程序代码能根据情况的改变而做出不同的响应。在这种方式中,控制流程从程序的这一部分跳转到程序的另一部分。
语句引起这样的跳转被叫做控制语句。
这样的控制由循环和选择组成。

""
还没有人打赏,支持一下

评论|共 6 个

炒他妈的外汇

发表于 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 | 显示全部楼层

学习了,不错,讲的太有道理了

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则