EA phải phản ánh đúng logic giao dịch. Không tối ưu để đẹp Backtest, không che giấu lỗi, không viết mã đánh lừa thống kê.
TMS / EDS-001
EA Development Standard
Tiêu chuẩn Phát triển Expert Advisor · Áp dụng cho MQL5 · v1.0
THỰC · TÍN · TÂMEA không được lập trình chỉ để tạo lợi nhuận. EA phải được thiết kế để bảo vệ vốn, tuân thủ kỷ luật, hoạt động ổn định, dễ bảo trì, có thể kiểm chứng, và có thể mở rộng.
CHƯƠNG I
TRIẾT LÝ THIẾT KẾ
TÍN
EA phải luôn thực hiện đúng quy trình. Không được bỏ qua Risk, bỏ qua Stop Loss, hay thay đổi quy tắc ngoài thiết kế.
TÂM
EA phải giảm tối đa ảnh hưởng của cảm xúc con người. Mọi quyết định phải dựa trên dữ liệu, điều kiện, quy tắc.
CHƯƠNG II
Kiến trúc module
CHƯƠNG III
Quy ước mã nguồn
Nguyên tắc coding
Tên biến rõ nghĩa. Tên hàm theo chức năng.
Magic Number khó hiểu.
Biến toàn cục không cần thiết.
Mã lặp lại.
Áp dụng: DRY, KISS, Single Responsibility.
CHƯƠNG IV – V
Quản trị rủi ro & quản lý lệnh
EA bắt buộc phải hỗ trợ
Risk %
Auto Lot
Max Daily Loss
Max Weekly Loss
Max Drawdown
Max Open Positions
Spread Filter
ATR Filter
Trading Session Filter
News Filter
Không được phép bỏ qua RMS-001.
Mọi lệnh phải có
Stop Loss, Take Profit, Magic Number, Comment, Timestamp. Không tồn tại lệnh không có Stop Loss.
CHƯƠNG VI – VII
Kiểm soát lỗi & ghi nhật ký
Kiểm soát lỗi
Mọi lỗi phải được xử lý (OrderSend(), PositionModify(), CopyBuffer(), CopyRates()...). Nếu thất bại: retry hợp lý, ghi Log, không bỏ qua lỗi.
Ghi nhật ký
EA phải ghi: thời gian, điều kiện, tín hiệu, risk, lot, SL, TP, lý do vào lệnh, lý do thoát lệnh, mã lỗi (nếu có). Nhật ký phải đủ để tái hiện quyết định của EA.
CHƯƠNG VIII – IX
Dashboard & tham số
Dashboard hiển thị tối thiểu
Tên EA, phiên bản, Symbol, Timeframe, Risk, Spread, ATR, Equity, Balance, Drawdown, Daily P/L, Open Positions, Trading Status.
Mọi Input phải
Có tên rõ ràng, giá trị mặc định, giới hạn hợp lý, chú thích. Không để người dùng nhập giá trị gây mất an toàn.
CHƯƠNG X – XI
Kiểm thử & phiên bản
Mỗi phiên bản phải trải qua
✓ Unit Test
✓ Compile không Warning nghiêm trọng
✓ Backtest
✓ Walk Forward
✓ Forward Test
Không phát hành phiên bản chưa kiểm thử.
Quy tắc phiên bản
Major.Minor.Patch (ví dụ v5.0.0, v5.1.0, v5.1.1). Mỗi phiên bản phải có Change Log, ngày phát hành, người phát triển, danh sách thay đổi.
CHƯƠNG XII – XV
Hiệu năng, bảo mật, tài liệu, phát hành
Hiệu năng
Không tạo tải CPU bất thường. Giảm số lần CopyBuffer/ObjectCreate. Giảm cấp phát bộ nhớ động. Không tính toán nặng mỗi Tick nếu có thể xử lý theo sự kiện hoặc nến mới.
Bảo mật
Không lưu thông tin nhạy cảm trong mã nguồn. Kiểm tra đầu vào trước khi sử dụng. Không giao dịch khi dữ liệu không hợp lệ.
Tài liệu bắt buộc
Tài liệu cài đặt, hướng dẫn sử dụng, giải thích tham số, nhật ký phiên bản, kết quả Backtest, kết quả Forward Test.
Tiêu chuẩn phát hành
✓ Tuân thủ Constitution / SOP / RMS / BTS. ✓ Không có lỗi nghiêm trọng. ✓ Đã chạy Demo ổn định. ✓ Có đầy đủ tài liệu.
PHỤ LỤC A
Checklist phát triển
| Hạng mục | |
|---|---|
| Compile thành công | ☐ |
| Không Warning nghiêm trọng | ☐ |
| Đúng Coding Style | ☐ |
| Có Unit Test | ☐ |
| Có Backtest | ☐ |
| Có Walk Forward | ☐ |
| Có Journal | ☐ |
| Có Dashboard | ☐ |
| Có Risk Manager | ☐ |
| Có Log | ☐ |
| Có Version | ☐ |
| Có Documentation | ☐ |
ĐIỀU LỆ TỐI CAO
Một EA nhiều lợi nhuận nhưng thiếu khả năng quản trị rủi ro sẽ không được triển khai.
Một EA ổn định, minh bạch và tuân thủ quy trình luôn được ưu tiên hơn một EA chỉ có kết quả Backtest đẹp.
TUYÊN NGÔN EDS
- Mã nguồn phải phản ánh triết lý giao dịch.
- EA phải tuân thủ kỷ luật ngay cả khi con người không làm được.
- THỰC để lập trình đúng logic.
- TÍN để thực thi đúng quy trình.
- TÂM để đặt sự an toàn của tài khoản lên trên lợi nhuận.