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

 
Slawa:
Покажите, как выглядит вкладка с таблицей результатов оптимизации

Например вот так  (Balance + max Recovery Factor) :


т.е.  одного nan'a  достаточно чтоб насмерть убить график (он уже не жилец, даже если нанов больше не будет). 

// кстати, из таблицы заметно, что нан получается в данном случае при отрицательном балансе (исходный депозит 1000000).

 
Renat Fatkhullin:

Голословно, когда вы сами не подкрепляете свои слова своими доказательствами.

Даже картинку чужую привели, хотя могли бы свой лог (не картинку) компиляции приложить.

....

Если компилятор показывает на баги в коде, нужно этому верить.

А если не верить, то выложить на форум лог компиляции для разбора. Там и ошибки и время компиляции есть.

Ок, прикладываю лог билда 1159, в котором компилируется около секунды,  билда 1241, где компилируется около 20 секунд,  и билда 1325, где не компилируется (ошибки)

Файлы:
MQL_1159.txt  7 kb
MQL_1241.txt  7 kb
MQL_1325.txt  8 kb
 
2600 предупреждений в старом билде вас не смущают.

Но 2000 предупреждений и найденные новым компилятором ошибки вдруг делают компилятор неправильным?

Рекомендую разобраться с этим бардаком в вашем коде и привести его в порядок.

Право же, странно делать такие заявления, когда компилятор вопиет о проблемах в коде. Мы специально увеличиваем требования к качеству кода и не желаем скрывать по умолчанию проблемы. Это финансовая индустрия.
 
Renat Fatkhullin:
2600 предупреждений в старом билде вас не смущают.

Но 2000 предупреждений и найденные новым компилятором ошибки вдруг делают компилятор неправильным?

Рекомендую разобраться с этим бардаком в вашем коде и привести его в порядок.

Право же, странно делать такие заявления, когда компилятор вопиет о проблемах в коде. Мы специально увеличиваем требования к качеству кода и не желаем скрывать по умолчанию проблемы. Это финансовая индустрия.

Не надо мешать всё в кучу.  Предупреждения предупреждениями, а ошибки ошибками,  все прекрасно понимают разницу.  До последнего билда всё компилировалось.  А если вы там втихаря ввели какие-то новые правила в компилятор, не поставив нас в известность, то разве мой код виноват в этом?  Зачем перекладывать проблему с больной головы на здоровую?

Там лишь предупреждения типа "implicit conversion from 'number' to 'string'" ,  "possible loss of data due to type conversion",  "sign mismatch" и аналогичные.  Т.е. речь идёт лишь о преобразовании числовых/текстовых типов друг в друга.  Какое вообще отношение они имеют к тем ошибкам, которые выдаёт последний компилятор:

declaration without type
cannot to apply function template
comma expected
undeclared identifier
'*' - pointer cannot be used
class type expected
no one of the overloads can be applied to the function call
object pointer expected
semicolon expected

Т.е. очевидно, что тут появились некие изменения в синтаксисе языка. И всё молчком.   А вы тут нам мораль читаете про "качество кода" и т.д., уводя разговор в сторону как обычно.

 
Alexey Navoykov:

Не надо мешать всё в кучу.  Предупреждения предупреждениями, а ошибки ошибками,  все прекрасно понимают разницу.  До последнего билда всё компилировалось.  А если вы там втихаря ввели какие-то новые правила в компилятор, не поставив нас в известность, то разве мой код виноват в этом?  Зачем перекладывать проблему с больной головы на здоровую?

Там лишь предупреждения типа "implicit conversion from 'number' to 'string'" ,  "possible loss of data due to type conversion",  "sign mismatch" и аналогичные.  Т.е. речь идёт лишь о преобразовании числовых/текстовых типов друг в друга.  Какое вообще отношение они имеют к тем ошибкам, которые выдаёт последний компилятор:

declaration without type
cannot to apply function template
comma expected
undeclared identifier
'*' - pointer cannot be used
class type expected
no one of the overloads can be applied to the function call
object pointer expected
semicolon expected

Т.е. очевидно, что тут появились некие изменения в синтаксисе языка. И всё молчком.   А вы тут нам мораль читаете про "качество кода" и т.д., уводя разговор в сторону как обычно.

если у вас 2600 предупреждений, вы можете дать гарантию, что там все предупреждения безобидные, вы все 2600 просмотрели

по поводу головы, только больная голова может допускать такое количество предупреждений и считать что это нормально и права еще качать 

 
Alexey Navoykov:

Не надо мешать всё в кучу.  Предупреждения предупреждениями, а ошибки ошибками,  все прекрасно понимают разницу.  До последнего билда всё компилировалось.  А если вы там втихаря ввели какие-то новые правила в компилятор, не поставив нас в известность, то разве мой код виноват в этом?  Зачем перекладывать проблему с больной головы на здоровую?

Там лишь предупреждения типа "implicit conversion from 'number' to 'string'" ,  "possible loss of data due to type conversion",  "sign mismatch" и аналогичные.  Т.е. речь идёт лишь о преобразовании числовых/текстовых типов друг в друга.  Какое вообще отношение они имеют к тем ошибкам, которые выдаёт последний компилятор:

declaration without type
cannot to apply function template
comma expected
undeclared identifier
'*' - pointer cannot be used
class type expected
no one of the overloads can be applied to the function call
object pointer expected
semicolon expected

Т.е. очевидно, что тут появились некие изменения в синтаксисе языка. И всё молчком.   А вы тут нам мораль читаете про "качество кода" и т.д., уводя разговор в сторону как обычно.

Товарисч, ты и дальше здесь будешь дер*** компилятор поливать, или может хотя бы строчек двадцать своего опуса на MQL приведешь? Неизвестно что у тебя за инфернальная хрень написана. Или по-твоему здесь все телепаты должны быть, что бы выслушать тебя, сделать печальные глаза и со всем этим бредом согласиться?

ГДЕ КОНКРЕТНЫЙ КОД ВЫЗЫВАЮЩИЙ ОШИБКИ?

 
Alexey Navoykov:

Не надо мешать всё в кучу.  Предупреждения предупреждениями, а ошибки ошибками,  все прекрасно понимают разницу.  До последнего билда всё компилировалось.  А если вы там втихаря ввели какие-то новые правила в компилятор, не поставив нас в известность, то разве мой код виноват в этом?  Зачем перекладывать проблему с больной головы на здоровую?

Я не мешаю. За плечами 26 лет безостановочного программирования.

Предупреждения - это по сути ошибки, если мы говорим о финансовом секторе. И все тысячи сообщений о "потере знака, потере точности, потере на приведениях и тд" являются приговором качеству кода. Видимо, вы не вполне понимаете последствия.

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

Без этого все обсуждение выглядит неприглядно и не честно.

 

В логе журнала эксперта нашел ошибку:

unknown command E0

Что это значит? 

 

Renat Fatkhullin:

Введите пожалуйста механизм пространств имен в MQL5, сами ведь понимаете как он полезен, а то вставлять костыли в виде макросов для отключения одинаковых имен в объявлениях, не элегантно как то выглядит :)

 
Renat Fatkhullin:

...

Предупреждения - это по сути ошибки, если мы говорим о финансовом секторе. И все тысячи сообщений о "потере знака, потере точности, потере на приведениях и тд" являются приговором качеству кода. Видимо, вы не вполне понимаете последствия.

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