MT4自动交易软件编程(2)- 运算符和表达式

MT4自动交易软件编程(2)- 运算符和表达式

运算符和表达式 [Operations & Expressions]

表达式

一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。

示例:

a++; b = 10; x = (y*z)/w;

注:分号(;)是表达式的结束符。

算术运算符

Sum of values i = j + 2;

Difference of values i = j - 3;

Changing the operation sign x = - x;

Product of values z = 3 * x;

Division quotient i = j / 5;

Division remainder minutes = time % 60;

Adding 1 to the variable value i++;

Subtracting 1 from the variable value k--;

加减1的运算符不能被嵌套在表达式中

int a=3;

a++; // 可行的表达式

int b=(a++)*3; // 不可行的表达式

赋值运算符

注:将右侧的结果赋值给左侧的变量

将x的值赋值给y y = x;

将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;

得到逻辑AND的值 y &= x;

得到逻辑OR的值 y |= x;

得到逻辑非OR的值 y ^= x;

注:一个表达式只能有一个赋值运算符.

关系运算符

用返回0(False)或1(True)来表示两个量之间的关系。

a是否等于b a == b;

a是否不等于b a != b;

a是否小于b a < b;

a是否大于b a > b;

a是否小于等于b a <= b;

a是否大于等于b a >= b;

真假运算符

否定运算符(!),用来表示真假的反面的结果。

// 如果a不是真的

if(!a)

Print("not 'a'");

逻辑运算符或(||)用来表示两个表达式只要有一个成立即可。

示例:

if(xl)

Print("out of range");

逻辑运算符和(&&)用来表示两个表达式要同时成立才行。

示例:

if(p!=x && p>y)

Print("true");

n++;

位逻辑运算符

~ 运算符对操作数执行按位求补操作。

b = ~n;

>> 运算符对操作数执行向右位移操作。

x = x >> y;

<< 运算符对操作数执行向左位移操作。

x = x << y;

一元 & 运算符返回操作数的地址

为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。

b = ((x & y) != 0);

二进制 | 运算符是为整型和 bool 类型预定义的。对于整型,| 对操作数进行按位“或”运算。对于 bool 操作数,| 对操作数进行逻辑“或”计算,也就是说,当且仅当两个操作数均为 false 时,其结果才为 false。

b = x | y;

为整型和 bool 类型预定义了 ^ 二进制操作数。对于整型,^ 计算操作数的按位“异或”。对于 bool 操作数,^ 计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true 时,其结果才为 true。

b = x ^ y;

注:位逻辑运算符只作用于Integers类型

其它运算符

索引。定位在数组中i位置的值。

array[i] = 3;

//将3负值到array数组第i位置上

使用 x1,x2,...,xn 这样的方法将各种值传送到function中进行运算。

示例:

double SL=Ask-25*Point;

double TP=Ask+25*Point;

int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,TP,

"My comment",123,0,Red);

优先级规则

下面是从上到下的运算优先规则,优先级高的将先被运算。

() Function call From left to right

[] Array element selection

! Negation From left to right

~ Bitwise negation

- Sign changing operation

* Multiplication From left to right

/ Division

% Module division

+ Addition From left to right

- Subtraction

<< Left shift From left to right

>> Right shift

< Less than From left to right

<= Less than or equals

> Greater than

>= Greater than or equals

== Equals From left to right

!= Not equal

& Bitwise AND operation From left to right

^ Bitwise exclusive OR From left to right

| Bitwise OR operation From left to right

&& Logical AND From left to right

|| Logical OR From left to right

= Assignment From right to left

+= Assignment addition

-= Assignment subtraction

*= Assignment multiplication

/= Assignment division

%= Assignment module

>>= Assignment right shift

<<= Assignment left shift

&= Assignment bitwise AND

|= Assignment bitwise OR

^= Assignment exclusive OR

, Comma From left to right

感谢您的阅读!

MT4自动交易软件编程(2)- 运算符和表达式

博客:

微博:


分享到:


相關文章: