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ÂM

EA 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Ế

Điều 1

THỰC

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ê.

Điều 2

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ế.

Điều 3

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

Core
Signal Engine
Risk Engine
Execution Engine
Position Manager
Money Manager
Journal
Dashboard
Utility

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

Chương IV

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.

Chương V

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ý

Chương VI

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.

Chương VII

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ố

Chương VIII

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.

Chương IX

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

Chương X

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ử.

Chương XI

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

Chương XII

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.

Chương XIII

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ệ.

Chương XIV

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.

Chương XV

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.