
주문이 성공적으로 접수되면 특히 주문을 수정하려는 경우 주문에 대한 정보를 수집해야 합니다. 이 MQL4 OrderSelect 함수 문서에서 주문 정보를 얻는 방법과 EA가 수정하거나 종료하도록 하려는 경우 이 함수를 사용하는 방법을 알아보세요.
이 모든 작업은 OrderSelect() 함수를 통해 수행됩니다. OrderSelect()를 사용하려면 주문의 티켓 번호를 사용하거나 열려 있는 주문 풀을 반복하여 각 주문을 순서대로 선택할 수 있습니다.
다음은 OrderSelect() 함수의 구문입니다:
bool OrderSelect (int Index , int Select, int Pool=MODE_TRADES)
참조의 편의를 위해 위 매개변수에 대한 설명은 다음 표에서 확인할 수 있습니다.< /p>
| 매개변수< /th> | 설명 |
|---|---|
| 색인 | 선택하려는 주문의 번호 또는 주문 풀에서의 위치입니다. 선택 매개변수는 어떤 것을 나타냅니다. |
| 선택 | Index 매개변수가 티켓 번호인지 주문 풀 위치인지 나타내는 상수:
| < /tr>
| 풀 | 주문 풀을 나타내는 선택적 상수: 보류/미결 주문 또는 마감 주문.
|
다음은 주문 번호를 사용한 OrderSelect() 함수의 예입니다. 매수 주문 발생 후 손절매 및 이익을 수정하도록 설정되었습니다.
if (OrdersTotalMagicOpen()==0 & ;& OpenBuy==true)
{
ticket = OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lots,LotDigits),
Ask,vSlippage,0,0,EAName, MagicNumber, 0, Green );
반환(티켓);
if(티켓>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(OrderTicket(), OrderOpenPrice() ,Bid – Stop_Loss * vPoint, Ask+TakeProfit * vPoint,0,Green);
}
}
위의 예에서는 OrderSelect()를 사용하여 주문 번호를 선택한 다음 이를 OrderModify() 함수와 결합하여 StopLoss 및 TakeProfit을 수정할 수 있습니다. 이 예는 ECN 브로커에게 특히 유용합니다. ECN 브로커에서는 OrderSend() 함수 내부의 해당 매개변수에 손절매 및 이익실현 값을 넣을 수 없습니다. 대신 이 매개변수는 0으로 유지되어야 합니다. 주문이 완료된 후에만 위 그림과 같이 OrderSelect() 및 OrderModify() 함수를 통해 주문 손실 중지 및 이익 실현을 수정할 수 있습니다. 위의 OrderSelect()가 OrderModify() 함수와 결합되는 동안 실제로 일련의 주문 정보 함수를 배포하여 주문에 대한 정보를 검색할 수 있습니다. MLQ 참조에는 이러한 기능의 전체 목록이 있습니다. 다음은 일반적으로 사용되는 주문 정보 기능 목록입니다.:
| 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. |