Trang chủ Kiến thức Kiểu Dữ Liệu Integer (int) trong MQL5: Hướng Dẫn Chi Tiết
Knowledge

Kiểu Dữ Liệu Integer (int) trong MQL5: Hướng Dẫn Chi Tiết

14 tháng 11, 2025

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.

Kiểu Dữ Liệu Integer là gì?

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.

Cú Pháp Khai Báo

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

Các Phép Toán với Integer

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

Ứng Dụng Thực Tế trong Trading

// Đế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 Thường Gặp và Cách Khắc Phục

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;

Best Practices

  • ✅ Sử dụng tên biến có ý nghĩa: stopLoss thay vì sl
  • ✅ Khởi tạo giá trị ban đầu khi khai báo
  • ✅ Sử dụng const cho giá trị không thay đổi: const int MAGIC = 12345;
  • ✅ Kiểm tra overflow khi làm việc với số lớn
  • ⛔ Tránh hardcode magic numbers, sử dụng constants thay thế

Bài Tập Thực Hành

  1. Viết code tính tổng số pips profit/loss từ 10 trades với giá trị: 50, -30, 20, -10, 100, -5, 75, -20, 40, -15
  2. Tạo một counter đếm số lần price chạm upper band của Bollinger Bands trong 100 nến gần nhất
  3. Viết hàm tính magic number dựa trên YYYYMMDD (ví dụ: 20250114)

Tài Liệu Tham Khảo