 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Функция OrderType() возвращает значение, которое определяет тип операции ордера, который предварительно выбран спомощью OrderSelect():
- OP_BUY позиция напокупку,
- OP_SELL позиция напродажу,
- OP_BUYLIMIT отложенный ордер Buy Limit,
- OP_BUYSTOP отложенный ордер Buy Stop,
- OP_SELLLIMIT отложенный ордер Sell Limit,
- OP_SELLSTOP отложенный ордер Sell Stop.
В предыдущем выпуске япоместил пример, которые определял, как была закрыта позиция поStop Loss ордеру или поTake Profit. Вместе стем вэтом примере есть небольшая ошибка: если выделенный ордер является отложенным ордером, тоэтот кусочек кода будет ошибочно считать, что позиция закрылась поTake Profit. Изменим наш пример, чтобы исключить эту ошибку:
//---- выбираем ордер/позицию с тикером 77777
if ( OrderSelect (77777, SELECT_BY_TICKET) == true)
{
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
// позиция выбрана успешно
if ( ((OrderClosePrice() <= OrderStopLoss()) && (OrderType() == OP_BUY)) ||
((OrderClosePrice() >= OrderStopLoss()) && (OrderType() == OP_SELL)) )
{
// позиция закрылась по Stop Loss
// ...
}
else
{
// позиция закрылась по Take Profit
// ...
}
}
else
Print("Ошибка: это не закрытая позиция, а отложенный ордер");
}
else
Print("OrderSelect() вернул ошибку - ",GetLastError());
Путем добавления дополнительной проверки, нам удастся отделить закрытые позиции ототложенных ордеров:
if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
Перейти к главе « функция OrderCloseTime».
|
|
|
|
|
|
| |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
+7 (495) 710-76-76
8 (800) 200-01-31 |
|
|