int x,y;
for(pos=0;pos<OrdersTotal();pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderType()==OP_BUY) x++;
if (OrderType()==OP_SELL) y++;
}
}
Print ("Buy - ",x," Sell - ",y);
Огромная благодарность вам Roger
Для начинающего, взглянуть на код с другой стороны очен полезно. Mike1101
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня такая проблема
Хочу подсчитать сколько открыто ордеров по типу OP_BUY и по OP_SELL
Допустим открыто 10 ордеров по OP_BUY и 5 по OP_SELL
Считаю по OP_BUY
int x;
for(pos=0;pos<OrdersTotal();pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderType()==OP_BUY)
{
x=pos;
}
}
}
int result=MathMax(0,x);
Print (result);
пишет = 9 (правильно т.к. начинает считать с 0 )
Считаю по OP_SELL
int y;
for(pos=0;pos<OrdersTotal();pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderType()==OP_SELL)
{
y=pos;
}
}
}
int result=MathMax(0,y);
Print (result);
пишет = 14 (т.к. начинает считать с 0 ) а хотелось бы 4, не могу понять в чем дело
Помогите пожалуйста разобраться где ошибка?
P.S. можно ли другим способом подсчитать?
MT ver:4.00 build 220