# ⚡ Operators in MQL

## Operators in MQL ⚡

Programming work on the Logical solution of the given problem. when you trying to solve some problem, you need to perform some operations on the provided data like:-
• Mathematical Operations - Addition, Subtraction, Division, Multiplication
• Logical Operations - AND, OR, NOR, etc.
• Conditional Operations - less than (<), greater than (>), equal to (=)
For Example,
You want to place a Buy Order of "XAUUSD" in Your Demo Forex Trading Account if the ASK price is greater than \$1745.23.

This can be written logically like this,

let, current price p = ASK; If p > 1745.23, place "BUY"

## What is an Operator in MQL?

You can say that Operators are special symbols, which have a specific pre-defined meaning and use in the programming language. In MQL4, there are many types of Operators for easy performing of Forex Trading. which is quite similar to C and C++ programming languages.

## Types of Operators in MQL

### Assignment Operator in MQL

Assignment Operator is the most used and basic operator is used to assign value to variables. which is denoted by the equal (=) sign.

Source Code Example
`int x = 10 ;`
here, Equal Sign is the Assignment Operator which is used to assign value "10" to the variable "x" which is a type of Integer.

In MQL4, There are some other different forms also of Assignment Operator as mentioned below.

No Operator Use in Operation of Example Mathematical Expression
1. += Increase of the variable y by x y += x y = y + x
2. -= Reduce the value of the variable y by x y -= x y = y - x
3. *= Multiply the value of variable y by x y *= x y = y * x
4. /= Divide the value of variable y by x y /= x y = y / x
5. %= The residue of the division of the variable y by x y %= x y = y % x

Source Code Examples
`void OnStart()  {      // we are learning Assignment Operators                  int x = 2;      int y = 10;            y += x;      Alert("Value of y = ", y);            y -= x;      Alert("Value of y = ", y);            y *= x;      Alert("Value of y = ", y);            y /= x;      Alert("Value of y = ", y);    }`
Output
In the above example, you get the output as mentioned above. Now I try to explain to you the reason for the output generated by the MQL Compiler.
• Initial value of x = 2 and y = 10
• Next, y += x means y = y + x, that is y = 10 + 2, hence y = 12 (see the last line of output, because Alert function shows the latest Message on Top and Oldest Message on bottom)
• Next, y -= x means y = y - x, that is y = 12 - 2 (*Attention Now the value of y is changed by the previous Instruction that's why I mentioned y as 12 and not as 10 ), hence y = 10.
• Next, y *= x means y = y * x, that is y = 10 * 2, hence y = 20
• Next y /= x means y = y / x, that is y = 20/2, hence y = 10.

### Arithmetic Operators in MQL

Arithmetical Operation can be performed using the Following Arithmetic Operators in MQL.

No Operator Use in Operation of Example Mathematical Expression
1. + Addtion of the variable y and x z = x + y z = 2 + 3
2. - Subtraction of the value of variable y from x z = x - y z = 5 - 3
3. * Multiply the value of variable y with x z = y * x z = 5 * 3
4. / Divide the value of variable y with x z = y / x z = 20 / 5
5. % The remainder of the division of the variable y by x z = y % x z = 21 % 5
6. ++ Increment the value of Variable by +1 x++ x = x + 1;
Example: x = 10; x++;
(then x = 11 when we use)
7. -- Decrement of the value of the variable by 1 x-- x = x - 1;
Example: x = 21; x--;
(then x = 20 when we use)

Source Code
```void OnStart() { // we are learning Arithmetic Operators int z = 20; z++; Alert("Value of z = ", z); z--; Alert("Value of z = ", z); int x = 10; int y = 3; z = x % y; Alert("Value of z =", z); } ```
Output
In MQL, relational operators are used for comparison between two variables. The list of Available Relational Operators is as follows.

No Operator Use in Operation of Example Mathematical Expression
1. == True, if Two variables are Equal,
otherwise False
z = x == y if x = 3 and y = 3
then z = True
2. != True, if Two variables are not Equal
otherwise False
z = x != y if x = 3 and y = 7
then z = True
3. > True, if x is greater than y (x > y)
otherwise False
z =  x > y if x = 3 and y = 2
then z = True
4. < True, if x is less than y (x < y)
otherwise False
z =  x < y
if x = 3 and y = 23
then z = True
5. >= True, if x is greater or equal to y (x >= y)
otherwise False
z = x >= y
if x = 13 and y =13
then z = True
6. <= True, if x is less or equal to y (x <= y)
otherwise False
z = x <= y if x = 13 and y =13
then z = True

### Logical Operators in MQL

No Operator Use in Operation of Example Mathematical Expression
1. ! NOT (Logical Negation) !x if x = True then "!x" is value is False, which means this change the value of the operator from True to False and False to True
2. && AND (Logical Disjunction) x > y
&&
y > z
Gives True, if both side conditions are True, otherwise False
3. || OR (Logical Conjunction) x > y
||
y > z
Gives True, if anyone side condition is True, if both conditions are False then it gives False

Source Code Examples
``` void OnStart() { // we are learning Arithmetic Operators int x, y, z; bool enable= False; enable = !enable; Alert("Enable = ", enable); x = 10; y = 20; enable = x > y ; z = x > y ; Alert("Value of z =", z); Alert("Value of Enable =", enable); } ```
Output
if you use DataType "bool", which is used for storing the Boolean Values {True or False} then you can store the output of Logical Instruction in True or False.

Nonetheless,
For showing the difference, I have used both of the styles.
[ enable = x > y ] is giving output as "enable = False" because [ x =10 and y = 20] and
[ z = x > y ] is giving output as "z = 0" for[ x = 10 and y = 20]. because "z" is an Integer variable and 0 is work as a False in 1 works as a True, if you use Integer variable for logical operations instead of Boolean variable. Keep in mind.

We will discuss more examples of Relational and Logical Operators in the Tutorials of If-Else decision-making statements in Forex Trading Programming MQL.

## Summary

Operators are used to performing the operations on data. there are many types of operators in MQL as per the requirements of different types of Data Operations like Arithmetic, Logical, Relational operations.