Внимание разработчикам. Глюк функции ArraySort()

 

Встроенная функция ArraySort() иногда выдает ошибку "incorrect start position 0 for ArraySort function" и при этом ничего не сортирует:

Код в котором данная ошибка проявляется был взят на блоге Rosh-a: http://simple-testing.blogspot.com/2007/07/blog-post_3924.html

Код был вставлен в советник без изменений и дополнений. Т.е. в нем вообще нет указания на номер стартовой позиции для сортировки. Других вызовов функции ArraySort() в советнике нет.

Ошибка проявляет себя не всегда, т.е. при одном тестировании появляется, а если перезагрузить терминал то при тех же параметрах советника тест проходит нормально.

Чаще всего ошибка появляется после оптимизации, но не всегда - неявный глюк.

 

Подозреваю, что ошибка выдаётся когда массив имеет нулевой размер.

 
stringo >>:

Подозреваю, что ошибка выдаётся когда массив имеет нулевой размер.

Можете не подозревать, т.к. проверку на предмет наличия сделок в истории я в свой советник воткнул - функция с сортировкой не вызывается. Да и на скриншоте также видно, что сделки открываются, закрываются, а ошибки продолжают сыпаться непрерывно. После перезагрузки терминала все работает нормально (по крайней мере после перезагрузки глюк пока еще не встречал).

 
Reshetov:

Встроенная функция ArraySort() иногда выдает ошибку "incorrect start position 0 for ArraySort function" и при этом ничего не сортирует:



У меня была такая же ошибка и не только в ArraySort.
На 100% не ручаюсь, но по-моему она действительно была связана с нулевым размером и решилась таким образом -

         if(ArrayRange(ARRAY_HIST,0)>0 ) {
            ArraySort(ARRAY_HIST, WHOLE_ARRAY,0,MODE_ASCEND);
         }
 

Такая же проблема была. Просто указал размер массива.

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