Mục lục
Trả lời ngắn: CFD là hợp đồng theo chênh lệch giá của một tài sản tham chiếu; MT5 terminal là phần mềm có thể gửi yêu cầu theo quyền của broker; còn execution là chuỗi kiểm tra, xử lý và ghi nhận request. Ba lớp này cần tách riêng vì một nút bấm không tự chứng minh giao dịch đã hoàn tất.
Đọc xong, bạn sẽ hiểu:
- CFD, MT5 và execution khác nhau ở đâu.
- Vì sao request được nhận chưa đồng nghĩa đã có kết quả cần đối chiếu.
- Cách review bằng log giả trước khi tin vào điều màn hình hiển thị.
Lưu ý giáo dục: Bài này giải thích cấu trúc vận hành, không phải lời khuyên đầu tư hay tín hiệu giao dịch. CFD thường có đòn bẩy; biến động, chi phí và lỗi vận hành có thể làm mất vốn. Không dùng bài tập dưới đây với tiền thật.
1. CFD, MT5 và execution là ba lớp khác nhau
a. CFD không phải chính tài sản tham chiếu
CFD là viết tắt của contract for difference: hợp đồng ghi nhận chênh lệch giá dựa trên một tài sản tham chiếu. Tài sản tham chiếu có thể là chỉ số, hàng hóa, ngoại hối hoặc cổ phiếu. Điều này khác với việc bạn trực tiếp sở hữu tài sản đó. Khi nghe “tôi đang xem giá X trên CFD”, cần hỏi thêm: đây là hợp đồng nào, theo dõi cái gì, và điều kiện của bên cung cấp là gì?
Với sản phẩm có đòn bẩy, thay đổi nhỏ của giá tham chiếu có thể làm biến động lớn hơn so với phần tiền ký quỹ. ESMA từng nêu rủi ro này trong các biện pháp bảo vệ nhà đầu tư retail tại EU. Phạm vi đó không phải luật chung cho mọi quốc gia hay mọi broker; nó chỉ là lời nhắc rằng cần đọc đúng điều kiện và phạm vi sản phẩm. ESMA CFD FAQ
b. MT5 là terminal, không phải người xử lý cuối cùng
MT5 terminal là phần mềm MetaTrader 5 để quan sát thông tin và, nếu quyền được cấp, gửi trade request. Nó có thể chạy script hoặc EA. Nhưng terminal không phải broker, và cũng không tự đặt một điều kiện execution giống nhau cho mọi symbol hay loại tài khoản.
Ví dụ đời thường: ứng dụng giao đồ ăn tạo yêu cầu, còn nhà hàng và hệ thống giao nhận mới xử lý. Tương tự, MT5 tạo/hiển thị request, còn broker hoặc trade server xử lý theo điều kiện của họ.
c. Execution là điều xảy ra sau request
Execution là chuỗi từ lúc request được kiểm tra đến lúc các trạng thái liên quan được ghi nhận. Nó không chỉ là nút Buy hoặc Sell. Trong tài liệu MQL5, nhóm trade functions phân biệt order là chỉ dẫn, deal là lần mua/bán được ghi nhận, và position là nghĩa vụ còn mở; một order có thể dẫn tới nhiều deal. MQL5 Trade Functions
Hình 1 — CFD là lớp hợp đồng, MT5 tạo request, còn broker hoặc trade server xử lý và ghi nhận các trạng thái liên quan.
Nói ngắn gọn: CFD trả lời “đang nói về loại hợp đồng nào?”, MT5 trả lời “dùng công cụ gì để tạo hoặc quan sát request?”, còn execution trả lời “request ấy đã đi qua những trạng thái nào?”. Gộp cả ba thành “MT5 khớp lệnh” là sai lầm đầu tiên cần bỏ.
2. Một request đi từ terminal tới log như thế nào?
a. Request là gói thông tin, không phải lời hứa
Một trade request mô tả thao tác được yêu cầu. Tùy loại execution, nó có thể chứa action, symbol, volume, loại order, thời hạn hoặc cách xử lý khối lượng. Tài liệu MQL5 cũng ghi rõ một số trường bắt buộc thay đổi theo execution mode; vì thế không nên chép một mẫu request rồi coi nó đúng cho mọi symbol. MQL5 Trade Request Structure
b. Response cần được đọc cùng retcode
MQL5 mô tả OrderSend() là hàm gửi request tới trade server. Hàm có thể trả về true khi request qua kiểm tra cơ bản và được server nhận để xử lý tiếp; điều đó không tự chứng minh trade operation đã thực hiện xong. Tài liệu khuyến nghị kiểm tra retcode trong result và theo dõi các sự kiện sau đó. MQL5 OrderSend
Đây là chỗ dễ mắc sai lầm thứ hai: response tốt không phải kết quả cuối cùng. Hãy tách “terminal đã tạo request”, “server đã phản hồi” và “đã có transaction/log để đối chiếu”. Ba câu liên quan nhưng không thay thế nhau.
c. Transaction và log là phần bằng chứng
Khi một request được xử lý, có thể có thay đổi ở order, deal hoặc position. MQL5 cung cấp OnTradeTransaction() để nhận các transaction và lưu ý một request có thể sinh nhiều transaction, thứ tự nhận không được bảo đảm. MQL5 Trade Transaction Structure
Vì vậy, log là dấu vết để đối chiếu request, response, trạng thái đã đến và phần còn chưa biết.
Hình 2 — Một response được nhận là mốc giữa đường; transaction và log mới cho phép đối chiếu vòng đời request.
3. Những giới hạn dễ bị bỏ qua khi review execution
a. Điều kiện không giống nhau ở mọi nơi
Không có một câu “MT5 luôn xử lý như thế này” đúng cho mọi tình huống. Broker, instrument, loại tài khoản, quyền giao dịch và execution mode có thể làm trường request hoặc cách xử lý khác nhau. Điều an toàn là xem specification và documentation chính thức của môi trường bạn đang quan sát, thay vì suy luận từ một ảnh chụp màn hình hoặc video.
Khi không rõ permission, symbol specification hoặc response, hãy ghi “chưa đủ bằng chứng” và dừng review.
b. Slippage và chi phí không phải lỗi đánh máy
Slippage là chênh lệch giữa mức kỳ vọng và mức thực tế khi xử lý. Cùng spread, phí và điều kiện thị trường, nó nhắc rằng không nên biến một màn hình tĩnh thành lời hứa cho lần sau. Execution luôn cần request, điều kiện, response và log.
c. Rủi ro CFD không biến mất khi phần mềm đẹp hơn
Giao diện gọn, EA chạy được hay log nhiều dòng không làm CFD ít rủi ro hơn. Đòn bẩy, biến động, thanh khoản, chi phí và lỗi vận hành đều có thể làm kết quả khác dự kiến. ESMA giải thích các biện pháp của họ theo bối cảnh bảo vệ khách retail tại EU; không nên dùng trang đó để suy ra điều kiện bảo vệ giống nhau ở nơi khác. ESMA CFD FAQ
Hình 3 — Khi specification, permission, retcode hoặc log chưa rõ, lựa chọn đúng là dừng và kiểm tra thay vì tự điền phần còn thiếu.
4. Checklist review trước khi tin vào màn hình
Bạn có thể dùng checklist này khi đọc demo, log mẫu hoặc code review. Nó không thay cho xác minh broker và không phải chỉ dẫn giao dịch.
- Gọi đúng lớp: ghi rõ đang nói về CFD, tài sản tham chiếu, MT5 terminal hay execution. Đừng dùng một từ để thay cho cả bốn.
- Đọc request trước: request giả định muốn làm gì, với symbol nào, theo thông tin nào? Thiếu trường thì đánh dấu thiếu, không tự bổ sung.
- Tách response: ghi riêng kết quả hàm, retcode và comment. “Được nhận” chưa phải “đã hoàn tất”.
- Tìm transaction/log: đối chiếu order, deal, position hoặc event phù hợp; không lấy một popup làm nguồn sự thật duy nhất.
- Đặt stop gate: nếu permission không rõ, specification chưa có nguồn, retcode chưa đọc hoặc log không khớp, dừng và quay lại documentation/support chính thức.
5. Practice Bridge 15 phút: lập bản đồ execution bằng dữ liệu giả
Mở Google Sheets, LibreOffice Calc hoặc giấy bút. Không đăng nhập broker, không mở MT5 ở chế độ giao dịch thật và không dùng tiền thật. Mục tiêu là luyện cách mô tả bằng chứng, không phải mô phỏng lợi nhuận.
Tạo sáu cột: Ý định giả, Request dự kiến, Server response, Transaction/log, Điều đã xác minh, Điều còn thiếu. Sau đó tự đặt một tình huống vô hại: bạn chỉ gửi yêu cầu quan sát một symbol giả trong tài liệu, không gửi lệnh mua hay bán.
a. Mẫu đối chiếu đã điền
| Ý định giả | Request dự kiến | Server response | Transaction/log | Điều đã xác minh | Điều còn thiếu |
|---|---|---|---|---|---|
| Quan sát symbol giả | Request ghi action quan sát, không có tiền thật | “Đã nhận request” | Chưa có transaction mẫu | Có request và response | Chưa có log để kết luận execution |
| Đọc log mẫu | Không gửi request mới | Không áp dụng | Có một dòng event nhưng thiếu context | Có dấu vết event | Chưa biết event thuộc request nào |
Sau 15 phút, bạn phải nói được request, response và log nào đã có — hoặc ghi rõ “chưa đủ bằng chứng”.
Hình 4 — Worksheet dữ liệu giả giúp tách điều đã thấy trong request, response và log khỏi điều còn phải kiểm tra.
6. Tổng kết: nhìn execution như bằng chứng
a. Năm ý chính
- CFD là lớp hợp đồng, không mặc định là tài sản tham chiếu được sở hữu trực tiếp.
- MT5 terminal là công cụ tạo hoặc quan sát request; nó không thay broker hoặc trade server.
- Execution là chuỗi xử lý và ghi nhận, không phải một nút bấm duy nhất.
- Retcode và transaction/log giúp tách response ban đầu khỏi bằng chứng cần đối chiếu.
- Khi specification, permission hoặc log chưa rõ, dừng và kiểm tra là một kết luận hợp lệ.
b. Câu hỏi tự kiểm tra
- Vì sao CFD và tài sản tham chiếu không nên bị gọi là một?
OrderSend()trả về tốt có chứng minh execution hoàn tất không?- Order, deal và position giúp đọc ba loại thông tin nào?
- Khi log thiếu context, bạn nên ghi kết luận gì?
c. Gợi ý đáp án
Xem gợi ý câu 1
CFD là hợp đồng theo dõi giá của tài sản tham chiếu, không tự nói rằng bạn sở hữu tài sản đó. Xem lại mục 1.
Xem gợi ý câu 2
Không. Hãy đọc retcode và tìm transaction hoặc log phù hợp trước khi kết luận. Xem lại mục 2.
Xem gợi ý câu 3
Order là chỉ dẫn, deal là lần ghi nhận mua/bán, còn position là nghĩa vụ còn mở. Xem lại mục 2.
Xem gợi ý câu 4
Ghi “chưa đủ bằng chứng”, đặt stop gate và quay lại nguồn chính thức; không tự điền phần thiếu. Xem lại mục 4.
d. Thuật ngữ cần nhớ
| Thuật ngữ | Giải thích ngắn |
|---|---|
| CFD | Hợp đồng theo chênh lệch giá của tài sản tham chiếu. |
| Tài sản tham chiếu | Thứ có giá được hợp đồng theo dõi. |
| MT5 terminal | Phần mềm MetaTrader 5 để quan sát và gửi request theo quyền. |
| Trade request | Gói thông tin yêu cầu một thao tác. |
| Retcode | Mã phản hồi từ server cho request. |
| Order | Chỉ dẫn được gửi hoặc lưu để xử lý. |
| Deal | Bản ghi một lần mua/bán đã xảy ra. |
| Position | Nghĩa vụ còn mở sau các deal liên quan. |
| Transaction/log | Sự kiện và dấu vết để đối chiếu điều đã xảy ra. |
e. Nguồn tham khảo
- MQL5 Trade Functions
- MQL5 OrderSend
- MQL5 Trade Request Structure
- MQL5 Trade Transaction Structure
- ESMA CFD FAQ
Bài trước là System Trading Knowledge Map #1: bản đồ cho thấy execution chỉ là một khối trong toàn hệ thống. Bài tiếp theo là Signal, Filter và Risk Engine Review #3, nơi ta tách điều tạo candidate khỏi điều có quyền chặn nó.
Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch. Khi thông tin, quyền hoặc log chưa rõ, không dùng tiền thật và hãy dừng để kiểm tra nguồn chính thức.
Bài tiếp theo