
Khi đơn hàng đã được đặt thành công, chúng tôi sẽ cần thu thập thông tin về đơn hàng, đặc biệt nếu chúng tôi muốn sửa đổi đơn hàng. Tìm hiểu trong bài viết về chức năng MQL4 OrderSelect này cách lấy thông tin đơn hàng và cách sử dụng chức năng này nếu bạn muốn EA sửa đổi hoặc đóng nó.
Tất cả điều này được thực hiện thông qua hàm OrderSelect(). Để sử dụng OrderSelect(), chúng ta có thể sử dụng số phiếu của đơn hàng hoặc có thể lặp qua nhóm đơn hàng đang mở và chọn từng đơn hàng theo thứ tự.
Sau đây là cú pháp của hàm OrderSelect():
bool OrderSelect (int Index , int Select, int Pool=MODE_TRADES)
Để dễ tham khảo, bạn có thể tìm thấy mô tả về các tham số trên trong bảng sau:< /p>
| Thông số< /th> | Mô tả |
|---|---|
| Chỉ mục | Số thứ tự chúng ta muốn chọn hoặc vị trí trong nhóm lệnh. Chọn tham số cho biết tham số nào. |
| Chọn | Một hằng số cho biết tham số Index là số vé hay vị trí nhóm đơn đặt hàng:
|
| Pool | Hằng số tùy chọn chỉ ra nhóm lệnh: lệnh chờ/mở hoặc lệnh đã đóng.
|
Dưới đây là ví dụ về hàm OrderSelect() sử dụng số thứ tự. Nó được thiết lập để sửa đổi mức dừng lỗ và lợi nhuận sau khi lệnh mua xảy ra:
if (OrdersTotalMagicOpen()==0 & ;& OpenBuy==true)
{
ticket = OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lots,LotDigits),
Ask,vSlippage,0,0,EAName, MagicNumber, 0, Green );
trả lại (vé);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(OrderTicket(), OrderOpenPrice() ,Giá thầu – Dừng_Loss * vPoint, Hỏi+TakeProfit * vPoint,0,Green);
>
Trong ví dụ trên, chúng tôi sử dụng OrderSelect() để chọn số đơn hàng, sau đó kết hợp nó với hàm OrderModify() để có thể sửa đổi StopLoss và TakeProfit. Ví dụ này đặc biệt hữu ích cho các nhà môi giới ECN. Trong các nhà môi giới ECN, bạn không thể đặt các giá trị StopLoss và TakeProfit vào các tham số tương ứng bên trong hàm OrderSend(). Thay vào đó, các tham số này phải được giữ ở mức 0. Chỉ sau khi đặt lệnh, lệnh dừng lỗ và chốt lãi mới có thể được sửa đổi thông qua các hàm OrderSelect() và OrderModify(), như minh họa trong hình trên. Trong khi OrderSelect() ở trên được kết hợp với hàm OrderModify(), một loạt các hàm thông tin đơn hàng thực sự có thể được triển khai để lấy thông tin về đơn hàng. Tham khảo MLQ có danh sách đầy đủ các chức năng này. Sau đây là danh sách các chức năng thông tin đơn hàng thường được sử dụng:
| Functions | Description |
|---|---|
| OrderSymbol() | The symbol of the instrument that the order was placed on. |
| OrderType() | The type of order: buy or sell; market, stop or limit. |
| OrderOpenPrice() | The opening price of the selected order. |
| OrderLots() | The lot size of the selected order. |
| OrderStopLoss() | The stop loss price of the selected order. |
| OrderTakeProfit() | The take profit of the selected order. |
| OrderTicket() | The ticket number of the selected order. |
| OrderMagicNumber() | The magic number of the selected order. |