- Код: выделить все
int f_GetTypePosByMaxPrice(string sy, int mn)
{
/*
Версия : 03.03.2017
Описание : Возвращает тип позиции (покупка или продажа) сделки, открытой по
наибольшей цене
Вернет -1 в случае отсутствие позиции
Параметры:
sy - наименование инструмента ("0" - текущий символ)
mn - MagicNumber (-1 - любой магик)
*/
double dbl_Ymax = 0;
int int_op = -1; // 0 - покупка, 1 - продажа
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol())
{
if(OrderType()== OP_BUY || OrderType()== OP_SELL)
{
if(mn < 0 || OrderMagicNumber() == mn)
{
if(OrderOpenPrice() > dbl_Ymax)
{
dbl_Ymax = OrderOpenPrice();
int_op = OrderType();
}
}
}
}
}
}
return(int_op);
}
Функция с именем f_GetTypePosByMaxPrice имеет два параметра: имя торгового инструмена и мэджик. Функция возвращает значение целого типа: 0 - для покупки и 1 - для продажи (см. скрин ниже). Если позиции нет, то будет возвращено "-1".