Độ sâu thị trường
Ngoài một số loại dữ liệu giá thị trường cập nhật (Ask/Bid/Last
) và khối lượng giao dịch cuối cùng được nhận trong thiết bị đầu cuối dưới dạng ticks, MetaTrader 5 hỗ trợ Độ sâu Thị trường (sổ lệnh), là một mảng các bản ghi về khối lượng của các lệnh mua và bán được đặt quanh mức giá thị trường hiện tại. Khối lượng được tổng hợp ở nhiều mức trên và dưới giá hiện tại, với mức tăng giá nhỏ nhất theo đặc điểm kỹ thuật của ký hiệu. Như chúng ta đã thấy, kích thước tối đa của sổ lệnh (số lượng mức giá) được đặt trong thuộc tính ký hiệu SYMBOL_TICKS_BOOKDEPTH.
Người dùng thiết bị đầu cuối biết đến tính năng Độ sâu Thị trường trong giao diện và nguyên tắc hoạt động của nó. Nếu bạn cần thêm chi tiết, vui lòng xem tài liệu.
Sổ lệnh chứa thông tin thị trường mở rộng thường được gọi là "độ sâu thị trường". Việc biết nó cho phép bạn tạo ra các hệ thống giao dịch tinh vi hơn.
Thực tế, thông tin về một tick chỉ là một lát cắt nhỏ của sổ lệnh. Theo nghĩa đơn giản hóa một chút, một tick là sổ lệnh 2 cấp với một giá Ask
gần nhất (đề nghị có sẵn) và một giá Bid
gần nhất (nhu cầu có sẵn). Hơn nữa, các tick không cung cấp khối lượng lệnh tại các mức giá này.
Thay đổi trong Độ sâu Thị trường có thể xảy ra thường xuyên hơn nhiều so với các tick, vì chúng không chỉ ảnh hưởng đến phản ứng với các giao dịch đã hoàn tất mà còn thay đổi trong khối lượng của các lệnh giới hạn đang chờ xử lý trong Độ sâu Thị trường.
Thông thường, các nhà cung cấp dữ liệu cho sổ lệnh và báo giá (tick, giao dịch) là các thực thể khác nhau, và các sự kiện tick (OnTick
trong Expert Advisors hoặc OnCalculate
trong các chỉ báo) không khớp với các sự kiện Độ sâu Thị trường. Cả hai luồng đến một cách không đồng bộ và song song nhưng cuối cùng đều kết thúc trong hàng đợi sự kiện của một chương trình MQL.
Điều quan trọng cần lưu ý là sổ lệnh thường có sẵn cho các công cụ giao dịch trên sàn, nhưng cũng có những ngoại lệ ở cả hai hướng:
- Độ sâu Thị trường có thể bị thiếu vì một lý do nào đó đối với một công cụ giao dịch trên sàn.
- Độ sâu Thị trường có thể được nhà môi giới cung cấp cho một công cụ OTC dựa trên thông tin họ thu thập từ lệnh của khách hàng.
Trong MQL5, dữ liệu Độ sâu Thị trường có sẵn cho Expert Advisors và các chỉ báo. Bằng cách sử dụng các hàm đặc biệt (MarketBookAdd
, MarketBookRelease
), các chương trình có thể bật hoặc tắt đăng ký để nhận thông báo về các thay đổi trong Độ sâu Thị trường trên nền tảng. Để nhận thông báo, chương trình phải định nghĩa hàm xử lý sự kiện OnBookEvent
trong mã của nó. Sau khi nhận được thông báo, dữ liệu sổ lệnh có thể được đọc bằng hàm MarketBookGet
.
Thiết bị đầu cuối duy trì lịch sử báo giá và tick, nhưng không duy trì dữ liệu Độ sâu Thị trường. Cụ thể, người dùng hoặc một chương trình MQL có thể tải lịch sử ở mức hồi cứu cần thiết (nếu nhà môi giới có) và thử nghiệm Expert Advisors và chỉ báo trên đó.
Ngược lại, Độ sâu Thị trường chỉ được phát trực tuyến và không có sẵn trong trình thử nghiệm. Nhà môi giới không có kho lưu trữ dữ liệu Độ sâu Thị trường trên máy chủ. Để mô phỏng hành vi của sổ lệnh trong trình thử nghiệm, bạn nên thu thập lịch sử Độ sâu Thị trường trực tuyến và sau đó đọc nó từ chương trình MQL chạy trong trình thử nghiệm. Bạn có thể tìm thấy các sản phẩm sẵn có trong MQL5 Market.