Tìm hiểu cách sử dụng kiểu dữ liệu int để lưu trữ số nguyên, từ khai báo đến các thao tác số học trong MQL5.
Trong MQL5, int là kiểu dữ liệu số nguyên 32-bit, có thể lưu trữ giá trị từ -2,147,483,648 đến 2,147,483,647. Đây là kiểu dữ liệu cơ bản nhất và được sử dụng rộng rãi trong lập trình EA và indicator.
// Khai báo cơ bản
int magicNumber = 12345;
int stopLoss = 50;
int takeProfit = 100;
// Khai báo nhiều biến cùng lúc
int x = 10, y = 20, z = 30;
// Khai báo không khởi tạo giá trị (mặc định = 0)
int counter;
int a = 100;
int b = 30;
// Phép cộng
int sum = a + b; // 130
// Phép trừ
int diff = a - b; // 70
// Phép nhân
int product = a * b; // 3000
// Phép chia (kết quả nguyên)
int quotient = a / b; // 3 (không phải 3.33)
// Phép chia lấy dư
int remainder = a % b; // 10
// Tăng/giảm giá trị
a++; // a = 101
b--; // b = 29
// Đếm số lượng order đang mở
int totalOrders = PositionsTotal();
// Magic number để phân biệt EA
int EA_MAGIC = 20250101;
// Lưu trữ điểm stop loss/take profit
int SL_Points = 50;
int TP_Points = 100;
// Đếm số nến (bars) trong chart
int totalBars = Bars(_Symbol, PERIOD_CURRENT);
// Lưu bar index
int currentBar = 0;
int previousBar = 1;
Lỗi 1: Overflow (tràn số)
int bigNumber = 2147483647;
bigNumber = bigNumber + 1; // Overflow! Kết quả = -2147483648
Giải pháp: Sử dụng long cho số lớn hơn:
long bigNumber = 2147483647;
bigNumber = bigNumber + 1; // OK: 2147483648
Lỗi 2: Chia cho 0
int result = 100 / 0; // Lỗi runtime!
Giải pháp: Luôn kiểm tra trước khi chia:
int divisor = 0;
int result = (divisor != 0) ? (100 / divisor) : 0;
stopLoss thay vì slconst int MAGIC = 12345;