XAUXXNhật ký
← Quay lại nhật ký

Cách khắc phục lỗi 130 của MT4 EA? Phương pháp bốn bước từ khoảng cách dừng lỗ đến giới hạn động

Dùng sơ đồ quy trình màu xanh nhạt nguyên bản để từng bước khắc phục ERR_INVALID_STOPS của MT4 EA: nhật ký, độ chính xác báo giá, MODE_STOPLEVEL và giới hạn động, tránh nới rộng dừng lỗ để che giấu rủi ro.

Thomas · Đã cập nhật 2026-10-20

Tác giả: Thomas|Thực hành EA và MT4|20 tháng 10 năm 2026

EA đã được gắn lên biểu đồ, giao dịch tự động cũng đã bật, nhưng khi gửi lệnh lại xuất hiện "130", thường khiến người ta lầm tưởng chương trình hoàn toàn hỏng. Tài liệu tham khảo MQL4 liệt kê 130 là ERR_INVALID_STOPS: dừng lỗ, chốt lời trong yêu cầu, giá lệnh chờ hoặc cách chuẩn hóa của chúng không được máy chủ giao dịch chấp nhận. Đây là manh mối định vị, không phải lý do để cho phép nới rộng dừng lỗ một cách mù quáng. Bài viết này dùng phương pháp bốn bước để giải thích cần xem những bản ghi nào.

Bước một: Trước tiên xác định yêu cầu nào đã thất bại

Mở nhật ký liên quan của terminal MT4 hoặc chương trình, ghi lại thời gian máy chủ xảy ra lỗi, mã sản phẩm, hướng lệnh, thao tác là OrderSend hay OrderModify, và mã lỗi trả về. Nếu nhật ký chỉ có bốn chữ "đặt lệnh thất bại", trước tiên hãy để EA ghi lại giá yêu cầu, dừng lỗ, chốt lời và giá trị trả về mà không xuất mật khẩu và dữ liệu nhạy cảm khác. Trước tiên phân biệt mở vị thế thất bại, sửa dừng lỗ thất bại, đặt lệnh chờ thất bại; quan hệ giá cần kiểm tra của ba trường hợp là khác nhau.

Không nên "thử vận may" bằng cách liên tục gửi lại cùng một yêu cầu thất bại trong tài khoản thời gian thực. Thử lại nhiều lần có thể tạo thêm tải, cũng có thể đột nhiên thành công sau khi thị trường thay đổi và tạo ra vị thế ngoài ý muốn. Trước tiên hãy tái hiện trong môi trường mô phỏng, và lưu lại phiên bản tham số cùng báo giá nền tảng tại thời điểm đó.

Bước hai: Đối chiếu Bid, Ask, Point và Digits

MarketInfo của MQL4 có thể đọc Bid, Ask, Point và Digits hiện tại của mã sản phẩm. Point đại diện cho một trong các đơn vị hiển thị nhỏ nhất của báo giá đó, Digits biểu thị số chữ số thập phân; "10 point" bằng bao nhiêu đô la phải tính theo Point thực tế của mã sản phẩm đó, không thể nhầm lẫn mã vàng và độ chính xác của các nhà môi giới khác nhau. Trước khi truyền giá còn phải chuẩn hóa theo số chữ số tương ứng.

Ví dụ chỉ mang tính minh họa toán học: nếu Point của một mã sản phẩm mô phỏng là 0.01, khoảng cách tối thiểu là 50 point, khoảng cách tính được là 0.50 đơn vị báo giá; đổi sang mã sản phẩm có Point là 0.001 thì là 0.05. Con số không đại diện cho quy tắc hợp đồng thực tế của bất kỳ nền tảng nào hôm nay. Khi xem nhật ký đồng thời lưu giá mua bán, tránh dùng giá bán để kiểm tra phía lẽ ra phải tham chiếu giá mua, hoặc ngược lại.

Bước ba: Kiểm tra MODE_STOPLEVEL và loại lệnh

Tài liệu chính thức OrderSend giải thích rằng dừng lỗ và chốt lời không được quá gần giá thị trường; giá mở lệnh dự định của lệnh chờ cũng không được quá gần thị trường hiện tại. Có thể dùng MarketInfo(Symbol(),MODE_STOPLEVEL) để truy vấn khoảng cách tối thiểu công khai, đơn vị là point. Sau đó căn cứ vào lệnh là mua, bán hay loại lệnh chờ nào, kiểm tra riêng hướng giá, khoảng cách và chuẩn hóa, thay vì áp một độ lệch cố định cho tất cả lệnh.

![Sơ đồ khắc phục bốn bước lỗi 130 của MT4 EA, không phải ảnh chụp nền tảng thực tế](/media/201800aa-1111-4444-8888-123456789abc.png)

Hình trên là sơ đồ quy trình nguyên bản, không có báo giá hoặc dữ liệu tài khoản thực tế. Khoảng cách tối thiểu chỉ là ranh giới kỹ thuật để máy chủ chấp nhận lệnh, không bằng khoảng cách dừng lỗ hợp lý về mặt chiến lược. Nếu để vượt qua 130 mà dời dừng lỗ ra xa, rủi ro đơn lệnh theo kế hoạch ban đầu sẽ tăng lên; nên tính lại quy mô vị thế trước, nếu cần thì từ bỏ lệnh đó.

Bước bốn: Trả về 0 cũng không thể khẳng định không có giới hạn

Tài liệu chính thức MQL4 về MODE_STOPLEVEL đặc biệt nhắc nhở: trả về 0 có thể có nghĩa là không có khoảng cách tối thiểu cố định, cũng có thể là máy chủ áp dụng giới hạn động mà terminal không thể biểu diễn trực tiếp. Trường hợp sau vẫn có thể trả về 130. Vì vậy "tra được 0 thì đặt dừng lỗ sát giá" không đứng vững. Khi thị trường biến động mạnh, cập nhật báo giá, thay đổi chênh lệch giá và quy tắc phía máy chủ cũng có thể khiến khoảng cách đã tính trước đó mất hiệu lực.

Nếu công thức mã khớp với nhật ký tại thời điểm đó mà vẫn gặp 130, hãy giữ lại thời gian thất bại, mã sản phẩm, tham số lệnh và phiên bản nền tảng, tra cứu thông số mã sản phẩm và giới hạn lệnh của nhà môi giới, đồng thời xác minh với hỗ trợ kỹ thuật nền tảng. Không dựa vào Point và StopLevel của nền tảng khác để suy đoán quy tắc tài khoản này, càng không nên xóa dừng lỗ để che giấu nguyên nhân thất bại thực sự.

Thứ tự xác minh sau khi sửa

Trước tiên chạy trường hợp tái hiện tối thiểu trong tài khoản mô phỏng: dùng cùng mã sản phẩm ghi lại bốn tham số báo giá và StopLevel, gửi một yêu cầu kiểm tra duy nhất, kiểm tra giá trị trả về của máy chủ và trạng thái lệnh. Sau đó kiểm tra hành vi khi giá thay đổi nhanh hoặc ở các phiên giao dịch khác nhau. Xác nhận chương trình có cơ chế dừng hoặc làm nguội sau thất bại, và không mở lại vị thế khi thử lại. Cuối cùng đối chiếu ngân sách rủi ro, chênh lệch giá và tổn thất có thể chấp nhận có còn phù hợp với kế hoạch ban đầu không.

Trọng tâm khắc phục lỗi 130 là "tại sao yêu cầu bị từ chối", không phải "làm thế nào ép nó khớp lệnh". Kết quả chạy EA còn chịu ảnh hưởng của logic chiến lược, mạng và thực thi nền tảng; bất kỳ sửa chữa nào cũng không đảm bảo lợi nhuận hoặc tránh tổn thất. Giao dịch đòn bẩy có thể gây tổn thất lớn.

原创MT4 EA错误130排查流程,非真实平台截图
原创MT4 EA错误130排查流程,非真实平台截图
Cảnh báo rủi ro: giao dịch đòn bẩy có thể gây thua lỗ đáng kể. Nội dung chỉ nhằm mục đích nghiên cứu và giáo dục, không đảm bảo lợi nhuận. Hiệu suất trong quá khứ không dự báo kết quả tương lai.
WECHAT

Connect with Thomas

Gold research · Trading reviews · MT4 discussions

WeChat ID:xauxx666
Open QR image

Scan with WeChat to add. On mobile, open and save the image, then select it from your album in WeChat Scan.

Thomas’s WeChat QR code, ID xauxx666