Hướng dẫn kiểm tra và tối ưu hóa AI expert advisor | Deriv Blog
Hoàn thiện AI expert advisor của bạn với các kỹ thuật kiểm tra phù hợp. Hướng dẫn của chúng tôi bao gồm các vấn đề thường gặp, phương pháp kiểm tra và tối ưu hóa expert advisor để có bot giao dịch đáng tin cậy.
Nhóm biên tập Deriv · 21 tháng 4, 2025 · 4 phút đọc

AI trading expert advisor đã xuất hiện — nhưng bạn vẫn cần kiểm tra và tinh chỉnh chúng.
Nếu bạn đã sử dụng các công cụ AI như Claude hoặc ChatGPT để tạo expert advisor cho Deriv MT5 hoặc cBot cho Deriv cTrader, bạn đã có một khởi đầu tốt. Nhưng ngay cả khi mã trông đúng, vẫn có thể chứa những lỗi ảnh hưởng đến cách bot hoạt động.
Trước khi chạy expert advisor (EA) trên thị trường thực, bạn cần kiểm tra và đảm bảo nó hoạt động đúng như bạn mong đợi.
Trong hướng dẫn này, chúng tôi sẽ đi qua các lỗi lập trình thường gặp ở EA do AI tạo ra, cách khắc phục, cùng các mẹo thực tế để cải thiện hiệu suất bot của bạn.
Các lỗi lập trình MQL5 phổ biến do AI tạo ra
Đây là một số vấn đề thường gặp nhất ở EA do AI tạo ra, kèm theo cách khắc phục:
- Lỗi undeclared identifier trong MQL5
Lỗi này xuất hiện khi bot sử dụng một biến hoặc tên chưa được định nghĩa đúng, chẳng hạn thiếu tham số hoặc dùng sai tên trong các chỉ báo như iMA().
Cách khắc phục:
Kiểm tra các tham số của chỉ báo và đảm bảo tất cả tên biến khớp với những gì MetaEditor (công cụ lập trình của MT5) yêu cầu.
- Thiếu hàm thực thi lệnh Buy/Sell
Một số bot do AI tạo ra bỏ qua logic cần thiết để mở lệnh.
Cách khắc phục:
Thêm thủ công các hàm thực thi lệnh cơ bản. Dưới đây là ví dụ về cấu trúc cơ bản để đặt lệnh mua:
void OpenBuy() {
MqlTradeRequest request; MqlTradeResult result;
request.action = TRADE_ACTION_DEAL;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.volume = 0.1; request.magic = 12345;
OrderSend(request, result);
}
Hãy đảm bảo cũng bao gồm logic cho lệnh bán và xác định các điều kiện để đặt lệnh.
- Điều kiện vòng lặp không đúng trong Deriv cTrader
Trong Deriv cTrader, logic của bot cần chạy bên trong các hàm cụ thể như OnBar() hoặc OnTick(). Các hàm này được kích hoạt tự động khi thị trường biến động. Nếu mã của bạn nằm ngoài các phần này, chẳng hạn trong vòng lặp sai hoặc phạm vi toàn cục, bot sẽ không chạy như mong đợi.
Cách khắc phục:
Đảm bảo các bar và tick được xử lý bên trong OnBar() hoặc OnTick(). Điều này giúp bot phản hồi đúng với các tick hoặc bar mới trong quá trình backtest và giao dịch thực.
- Tính sai kích thước lot dựa trên phần trăm số dư
Khi AI cố gắng đặt kích thước lot dựa trên số dư tài khoản của bạn (ví dụ: rủi ro 2% mỗi lệnh), nó có thể bỏ qua một chi tiết quan trọng — kích thước hợp đồng. Điều này có thể dẫn đến kích thước lot không chính xác. Lỗi này sẽ không kích hoạt lỗi mã, nhưng khi kiểm tra, bạn sẽ thấy kích thước lệnh không khớp với thiết lập rủi ro, dẫn đến rủi ro quá mức hoặc thấp hơn mức mong muốn trong giao dịch thực.
Cách khắc phục:
Sử dụng công thức tính kích thước lot có tính đến kích thước hợp đồng, chẳng hạn:
//-----------------------------------------------------------------
double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = accountBalance * (RiskPercent / 100.0);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pointValue = tickValue / tickSize;
double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
if(contractSize > 0)
pointValue = pointValue / contractSize;
double lotSize = riskMoney / (StopLossPoints * pointValue);
double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lotSize = MathMax(lotSize, minLot);
lotSize = MathMin(lotSize, maxLot);
lotSize = MathFloor(lotSize / lotStep) * lotStep;
- Các lỗi khác
Nếu bạn gặp một trong những lỗi này—hoặc bất kỳ lỗi nào khác—bạn luôn có thể nhờ mô hình AI hỗ trợ xác định và khắc phục vấn đề.
Chỉ cần sao chép thông báo lỗi và đoạn mã liên quan, rồi chia sẻ với mô hình AI. Hầu hết trường hợp, AI sẽ xác định được vấn đề và đưa ra cách khắc phục hoặc đề xuất các giải pháp khả thi.
Mẹo: Luôn chạy backtest trước khi giao dịch thực. Những vấn đề như thế này chỉ lộ ra khi bạn kiểm tra chiến lược với dữ liệu thị trường thực.
Cải thiện expert advisor do AI tạo ra
Khi bot đã hoạt động, bạn có thể thực hiện một số thay đổi nhỏ để cải thiện hiệu suất và độ ổn định. Dưới đây là một vài mẹo phổ biến:
- Thêm logic xử lý lỗi để quản lý hành vi bất ngờ trong điều kiện biến động cao hoặc sự cố kết nối.
- Sử dụng trailing stop-loss để chốt lợi nhuận tiềm năng khi thị trường diễn biến có lợi cho bạn.
- Backtest chiến lược với dữ liệu lịch sử để xem chiến lược sẽ hoạt động ra sao.
- Dọn dẹp và tổ chức mã để cải thiện khả năng đọc và hiệu quả. Việc này giúp bạn dễ dàng cập nhật hoặc khắc phục sự cố sau này.
Mẹo: Sử dụng MetaEditor Debugger (trên MT5) để kiểm tra cách bot chạy từng bước.
Vì sao backtest giao dịch lại quan trọng
Bot do AI tạo ra là cách tuyệt vời để tự động hóa giao dịch mà không cần lập trình từ đầu. Nhưng ngay cả với AI, chiến lược của bạn vẫn cần được con người kiểm tra và điều chỉnh để hoạt động tốt trong điều kiện thực tế.
Trước khi giao dịch thực, hãy dành thời gian kiểm tra kỹ lưỡng và thực hiện những cải tiến nhỏ. Ngay cả những sửa chữa nhỏ cũng có thể tạo ra sự khác biệt lớn về mức độ ổn định và hiệu quả hoạt động của EA.