не закрываются ордеры в эксперте

 
Вопрос знатокам :)
не закрываются ордеры в эксперте. причин понять не могу. уже и флажков наставил, чтобы отслеживать свои сигналы. СИГНАЛЫ ПРОХОДЯТ, а ордеры не закрываются и ОШИБОК НЕТ!!!
Джентльмены, я видел в формуе, что такая проблема уже обсуждалась (номер темы 3153) и я даже использовал идеи из того обсуждения, но, обсуждение не имело логического разрешения.
Прикрепил файл с кодом.
Посмотрите пожалуйста, мож у кого будут соображения - весь моск уже сломал :)))
Файлы:
 
у тебя ret=OrderClose(ticket,Lots,Ask,3,Violet);
а по пробуй OrderClose(ticket,Lots,Ask,3,Violet);
 
po_saa:
Вопрос знатокам :)
не закрываются ордеры в эксперте. причин понять не могу. уже и флажков наставил, чтобы отслеживать свои сигналы. СИГНАЛЫ ПРОХОДЯТ, а ордеры не закрываются и ОШИБОК НЕТ!!!
Джентльмены, я видел в формуе, что такая проблема уже обсуждалась (номер темы 3153) и я даже использовал идеи из того обсуждения, но, обсуждение не имело логического разрешения.
Прикрепил файл с кодом.
Посмотрите пожалуйста, мож у кого будут соображения - весь моск уже сломал :)))



Внимательно посмотрите чему равно total при контроле за открытыми позициями. В одном случае ф-ция CalculateCurrentOrders() возвращает только часть ордеров (BUY) в другом вообще отрицательное число и цикл не выполняется.
 

Написать лучше всего так:

total=OrdersTotal()-1;
for(i=total;i>=0;i--)
{....}
 
Может поможет, параметры конечно нужно еще обдумать. Но идея интересная....
Файлы:
 
nikko:
у тебя ret=OrderClose(ticket,Lots,Ask,3,Violet);

а по пробуй OrderClose(ticket,Lots,Ask,3,Violet);




Внимательней нужно код смотреть :)
 
nikko:
nikko:

у тебя ret=OrderClose(ticket,Lots,Ask,3,Violet);



а по пробуй OrderClose(ticket,Lots,Ask,3,Violet);








Внимательней нужно код смотреть :)

я только не понимаю, в чём фишка. К коду "ret=Order..." я пришёл для прояснения ситуёвины. Этот код НЕ ПРОТИВОРЕЧИТ мануалу.
это не работает В ОБОИХ СЛУЧАЯХ!
 
Talex:
po_saa:

Вопрос знатокам :)

не закрываются ордеры в эксперте. причин понять не могу. уже
и флажков наставил, чтобы отслеживать свои сигналы. СИГНАЛЫ
ПРОХОДЯТ, а ордеры не закрываются и ОШИБОК НЕТ!!!

Джентльмены, я видел в формуе, что такая проблема уже обсуждалась
(номер темы 3153) и я даже использовал идеи из того обсуждения,
но, обсуждение не имело логического разрешения.

Прикрепил файл с кодом.

Посмотрите пожалуйста, мож у кого будут соображения - весь моск
уже сломал :)))







Внимательно посмотрите чему равно total при контроле за открытыми
позициями. В одном случае ф-ция CalculateCurrentOrders() возвращает только
часть ордеров (BUY) в другом вообще отрицательное число и цикл
не выполняется.

...ага... total передвинул к контролю за позициями - логически МОГЛА произойти ситуация, когда ордеры выставляются ПОСЛЕ подсчёта позиций.
 
а это уже вопрос скорее к разработчикам
привожу LOG и рисунок графика
в LOG-е видно, что 11 ордер ЗАКРЫТ!!!
 
а это MT4 с передвинутым TOTAL
 
po_saa:
nikko:

nikko:



у тебя ret=OrderClose(ticket,Lots,Ask,3,Violet);







а по пробуй OrderClose(ticket,Lots,Ask,3,Violet);

















Внимательней нужно код смотреть :)


я только не понимаю, в чём фишка. К коду "ret=Order..." я пришёл
для прояснения ситуёвины. Этот код НЕ ПРОТИВОРЕЧИТ мануалу.


это не работает В ОБОИХ СЛУЧАЯХ!





это я себе :), сам мануал плохо смотрел
Причина обращения: