In-Depth Look at Data Types in MQL5

Watch on YouTube: Understanding Data Types in MQL5

In MQL5, choosing the correct data type optimizes memory usage and enhances the precision of your calculations. Below is an overview of common data types and their use cases, with practical examples embedded in the OnStart function:

  1. int (Integer)

Used for whole numbers like counters or loops:

void OnStart() {
    int orderCount = 5;  // Stores the number of orders
    Print("Order Count: ", orderCount);
}

Use Case: Counting orders or iterations.
Limitations: Range of -2,147,483,648 to 2,147,483,647. Use long for larger numbers.

  1. double (Floating-point)

Handles decimal numbers with high precision, suitable for financial calculations:

void OnStart() {
    double balance = 1500.75;  // Account balance
    Print("Account Balance: ", balance);
}

Use Case: Prices, profit/loss calculations.
Precision: Up to 15-16 digits, perfect for financial computations.

  1. string (Text)

Stores sequences of characters, such as names or messages:

void OnStart() {
    string symbolName = "EURUSD";  // Symbol being analyzed
    string message = "Analyzing: " + symbolName;
    Print(message);
}

Use Case: Logging, displaying messages, or managing input/output.

  1. bool (Boolean)

Holds true or false, ideal for conditional logic:

void OnStart() {
    bool isEnabled = true;  // EA activation state
    if (isEnabled) {
        Print("EA is enabled.");
    } else {
        Print("EA is disabled.");
    }
}

Use Case: Control flow or toggling states.

  1. color (Color)

Represents color values for chart elements:

void OnStart() {
    color lineColor = clrBlue;  // Line color
    Print("Line color set to: ", lineColor);
}

Use Case: Chart visuals, like lines or zones.

  1. datetime (Date and Time)

Represents timestamps as seconds since January 1, 1970:

void OnStart() {
    datetime currentTime = TimeCurrent();  // Server time
    Print("Current Server Time: ", TimeToString(currentTime));
}

Use Case: Logging trade execution times or event tracking.

  1. void (No Return Type)

Used for functions that do not return values:

void ShowAlert() {
    Alert("Trade executed.");
}
void OnStart() {
    ShowAlert();  // Calling the function
}

Use Case: Operations without a return value (e.g., logging, notifications).

Final Thoughts

Mastering the appropriate data type for each task ensures your MQL5 code is efficient and precise. Whether you’re handling numbers, strings, dates, or logic, selecting the right type helps maintain readability and functionality in your trading algorithms or custom indicators.

Next: Variables

Previous: Comments, Identifiers, Reserved Words