Ошибки, баги, вопросы - страница 1997

 
Alexey Viktorov:

Что первым вспомнилось

Есть ещё где-то...

Спасибо, не пришло в голову, что это общее правило.

 
Alexey Viktorov:

Возможно ваши мысли о чём-то другом, но для конкретного случая банальная невнимательность программиста привела к такой ошибке.

Да, я о другом. Если бы переменные насильно инициализировались самим MQL5, то количество случаев "тестер выдает разные результаты" значительно сократилось бы. Сейчас же имеем много возможностей написания рэндомных советников.

 
fxsaber:

Если бы переменные насильно инициализировались самим MQL5, то количество случаев "тестер выдает разные результаты" значительно сократилось бы.

...и упала бы скорость инициализации.

Понятно, что в общем случае — незначительно, но все же.

 
Andrey Khatimlianskii:

...и упала бы скорость инициализации.

Понятно, что в общем случае — незначительно, но все же.

Именно по этой причине только озвучиваю мысли, но не выступаю за это решение. Спасибо @Anton Ohmat, что обратил внимание на рэндомные ТС с еще одной стороны.

 
Andrey Khatimlianskii:

...и упала бы скорость инициализации.

Понятно, что в общем случае — незначительно, но все же.

Вот этого аргумента я не понимал (когда его MQ выдвигали) и не понимаю сейчас. Инициализация-то никуда не денется. Сейчас она возложена на прикладного программиста и он её все равно делает, но как показывает практика - иногда с ошибками. А если бы её делало ядро, то на быстродействии это никак бы не сказалось, а ошибок бы не было.

 
Stanislav Korotky:

Вот этого аргумента я не понимал (когда его MQ выдвигали) и не понимаю сейчас. Инициализация-то никуда не денется. Сейчас она возложена на прикладного программиста и он её все равно делает, но как показывает практика - иногда с ошибками. А если бы её делало ядро, то на быстродействии это никак бы не сказалось, а ошибок бы не было.

Полная инициализация нужна не всегда. Например, для индикатора, который значение буфера для каждого бара заполняет в цикле (и делает это вне зависимости от того, инициализирован индикаторный буфер или нет).

В этом случае будет экономнее без принудительного обнуления.

 
Stanislav Korotky:

Вот этого аргумента я не понимал (когда его MQ выдвигали) и не понимаю сейчас. Инициализация-то никуда не денется. Сейчас она возложена на прикладного программиста и он её все равно делает, но как показывает практика - иногда с ошибками. А если бы её делало ядро, то на быстродействии это никак бы не сказалось, а ошибок бы не было.

Давайте возьмём к примеру массив буфер индикатора: При инициализации индикатора буфер имеет нулевую длину. Что там инициализировать нулями? При добавлении очередного индекса его принудительно обнулять и потом заполнять каким-то значением??? Для чего это обнуление или заполнение EMPTY_VALUE? А если есть необходимость назначить PLOT_EMPTY_VALUE и не 0 и не EMPTY_VALUE или принудительно одно, а надо другое... Как ни крути получается лишняя трата времени...

А пользовательский массив... Массив-то объявляется для каких-то данных отличных от нуля и EMPTY_VALUE. Так с какой целью его принудительно инициализировать чем-то?

Вот и получается, что на быстродействие в большинстве случаев сказывается.

 
Alexey Viktorov:

А пользовательский массив... Массив-то объявляется для каких-то данных отличных от нуля и EMPTY_VALUE. Так с какой целью его принудительно инициализировать чем-то?

Чтобы было меньше "результаты тестера на совпадают".

 
fxsaber:

Чтобы было меньше "результаты тестера на совпадают".

А кому оно надо?

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

 
Alexey Viktorov:

А кому оно надо?

Мне и, почти уверен, разработчикам.