Как изменить скрипт? - страница 2

 

А никто не сталкивался с такой проблемой, что при большом количестве ордеров время отвремени удаляются не все ордера в обычном цикле for (int i=0; i < OrdersTotal(); i++) if (select(i, SELECT_BY_POS, MODE_TRADES) ..., хотя вроде бы все написано правильно?

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

Я сделал 2 цикла, первый без изменений, но только вместо удаления я собираю тикеты ордеров в массив, а во втором цикле я уже пробегаюсь по массиву и закрываю одера. На такую мысль меня после долгих ломаний мозгов привела идея о том, что в процессе закрывания ордеров может приходить новый тик и вместе с ним происходить перенумерация ордеров в общем списке.

То есть, допустим есть пять ордеров

0 а

1 б

2 в

3 г

4 д

Скрипт начал пробегать список и удалил, допустим,ордера 1 а и 2 б, здесь i = 1. Приходит новый тик и происходит перенумерация, имеем

0 в

1 г

2 д

На следующей итерации i = 2 - доудаляется ордер 2 д, еще 2 итерации проходят с ошибками при отборе ордера, но мы этого не замечаем. У нас остаются 2 неудаленных ордера:

0 в

1 г

Когда я изменил код выше описанным способом, то глюк больше не повторялся. Значит мои предположения верны?

 

тогда должны быть ошибки..

у меня тоже что-то такое было, поэтому я сначала получаю массив ордерТикетов, а затем их удаляю..

 
keekkenen >>:

тогда должны быть ошибки..

у меня тоже что-то такое было, поэтому я сначала получаю массив ордерТикетов, а затем их удаляю..

Какой-то противоречивый ответ... Вы меня не поняли, наверное... Таки не сумел я сформулировать свой вопрос...

Тут, ИМХО, либо я прав и идет перенумерация, что вы подтверждаете последним предложением, либо я не прав и тогда должны быть ошибки...

Так есть такая перенумерация или это плод моей больной фантазии?

 

я точно не помню что у меня тогда было, по-моему несуразица какая-то - ошибок не было и это было непонятно..

поэтому я решил увеличить определенность создавая массив ордерТикетов..

Причина обращения: