Подсчет позиций в MT5-Hedge - страница 5

 
Vladimir Karputov:

Пример кода CCI_Reversy.

Функция CalculateAllVolumes подсчитываем ОБЪЁМЫ позиций (volumne_buys, volumne_sells) и отложенных ордеров (volumne_buy_limits, volumne_sell_limits, volumne_buy_stops, volumne_sell_stops)


А вот отдельные функции для подсчёта ПОЗИЦИЙ и ОТЛОЖЕННЫХ ордеров (уже не помню из какого кода взято)

считает ТОЛЬКО Buy stop и Sell stop


считает ПОЗИЦИИ

Верна ли будет фукнция, если я хочу посчитать отложки по типу и магику без учета символа?


int TotalByMagic(ENUM_ORDER_TYPE type,long const magic_number) 
  { 
   ulong order_ticket; 
   int total=0; 

   for(int i=0;i<OrdersTotal();i++) 
      if((order_ticket=OrderGetTicket(i))>0) 
         if(magic_number==OrderGetInteger(ORDER_MAGIC) && type == OrderGetInteger(ORDER_TYPE)) 
         total++; 
//--- 
   return(total); 
  }
 
Evgeniy Zhdan:

Здравствуйте! 99% роботов делаю на заказ под MT4, MT5 только пару раз просили. Поэтому, МТ5 не заморачивался. Возникла необходимость написать мультивалютного EA под МТ5. Столкнулся с банальной проблемой - как посчитать количество уже открытых ордеров. Казалось бы, уже должна быть какая-то готовая  функция....  Но нет. Поиск и чтение доков показывает, что для написания чего-то простейщего на МТ5 надо написать портянку кода на 2 экрана. Чтобы сделать автолот, надо подключить 10 библиотек,  чтоб открыть ордер, надо написать около 20 строк. Чтоб вытащить данные из индикатора это вообще песня с танцем на углях....

По сути вопроса. Вот такую, теоретически правильную функцию подсчета ордеров написал:

Однако, считает она  непонятно что. При наличии БАЙ-ордера, показывает 0. При 15 селл ордерах, показывает что их 5. Может кто направит на путь? Прошу не писать "читай справку". Читаем

Evgeniy Zhdan:

Здравствуйте! 99% роботов делаю на заказ под MT4, MT5 только пару раз просили. Поэтому, МТ5 не заморачивался. Возникла необходимость написать мультивалютного EA под МТ5. Столкнулся с банальной проблемой - как посчитать количество уже открытых ордеров. Казалось бы, уже должна быть какая-то готовая  функция....  Но нет. Поиск и чтение доков показывает, что для написания чего-то простейщего на МТ5 надо написать портянку кода на 2 экрана. Чтобы сделать автолот, надо подключить 10 библиотек,  чтоб открыть ордер, надо написать около 20 строк. Чтоб вытащить данные из индикатора это вообще песня с танцем на углях....

По сути вопроса. Вот такую, теоретически правильную функцию подсчета ордеров написал:

Однако, считает она  непонятно что. При наличии БАЙ-ордера, показывает 0. При 15 селл ордерах, показывает что их 5. Может кто направит на путь? Прошу не писать "читай справку". Читаем и так.



Спасибо! Может пригодиться! 

 
Yuriy Vins:

Спасибо! Может пригодиться! 

Ток нифига не работает )

 
Ладно. Сам напишу )
 
Yuriy Vins:
Ладно. Сам напишу )
Пишите для мт4, а для мт5 подключите библу MT4 Orders.mqh от fxsaber к исходники для мт4
Причина обращения: