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

 
Иногда в журнале ME вижу такое.
MQL5 debugger   array range 2 is too large (2682258448)
Что это?
 
Alexey Viktorov #:

Я не могу объяснить почему так. Это из личных наблюдений. Проверьте.

Он ошибку обозначил. 
 
Sergey Gridnev #:
Он ошибку обозначил. 

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

Чем отличаются эти два варианта

int i;
……………
i = 123;
int i = 123;

Почему вы считаете, что в первом случае переменная используется, а во втором нет…

 
Alexey Viktorov #:

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

Чем отличаются эти два варианта

Почему вы считаете, что в первом случае переменная используется, а во втором нет…

В обоих случаях переменная не используется, а только инициализируется.
Во всех нормальных IDE неиспользуемые переменные(вне зависимости от инициализации) подсвечиваются(не красным, а жёлтым, т.к. это не ошибка), или на крайний случай компилятор должен выдавать предупреждения. Местный компилятор выдает предупреждение только в случае неиспользуемой и неинициализированной переменной.
Писал об этом несколько лет назад, но до сих пор нет заметных улучшений в ME. MetaEditor - IDE из прошлого тысячелетия.
Это начинаешь отчётливо осознавать когда поработаешь с современными IDE. Тот же VS Code или все IDE от JetBrains.

 
Sergey Gridnev #:
Он ошибку обозначил. 

Это не ошибка - с учетом того, что в MetaEditor нет возможности отключить Warning

Цитата: "временные фиктивные переменные, которые намеренно не используются в коде приложения. Они могут сократить выделение памяти и упростить чтение кода"

 
Alexey Viktorov #:


Чем отличаются эти два варианта

Почему вы считаете, что в первом случае переменная используется, а во втором нет…


В обоих случаях переменная не используется. Нигде не извлекается значение из неё.
 
Sergey Gridnev #:

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

Если вернуться к исходному примеру:

i так уж точно там используется:

int k = i;
а по k - выше ответ
 
Nikolai Semko #:
В обоих случаях переменная не используется, а только инициализируется.
Во всех нормальных IDE неиспользуемые переменные(вне зависимости от инициализации) подсвечиваются(не красным, а жёлтым, т.к. это не ошибка), или на крайний случай компилятор должен выдавать предупреждения. Местный компилятор выдает предупреждение только в случае неиспользуемой и неинициализированной переменной.
Писал об этом несколько лет назад, но до сих пор нет заметных улучшений в ME. MetaEditor - IDE из прошлого тысячелетия.
Это начинаешь отчётливо осознавать когда поработаешь с современными IDE. Тот же VS Code или все IDE от JetBrains.

Николай, извините, не сочтите за грубость, но это получается примерно как муж предъявляет жене претензию, что у неё грудь маловата.

Рассмотрите ещё переменные объявленные на глобальном уровне. Они даже если не инициализированы и не используются, всё по-фигу, нет никаких предупреждений.
Что получили тем и пользуемся. И зачем говорить о том, что у кого-то лучше или хуже…

 
freemovpalmg #:
Почему на фьючерсе Si брокер Финам, платформа метатрейдер 5 при тестировании советника, график результатов выглядит неверно, там появляется просадка которой нет в списке сделок и ордеров, а в бектесте просадка в 200%, например депозит 100 000 рублей, и показывает просадку около 269 000 рублей, когда в списке убыточные сделки по 500 рублей и их не так много по сравнению с прибыльными, а итог теста прибыль 7000? См скрины. Спасибо.

Вероятно, это следствие неверного расчёта маржи. MQ считает, что это правильно и что ошибка у Финама. Попробуйте откатиться на 4073 или ранее, там маржа, вроде, нормально считается.

 
Alexey Viktorov #:

Николай, извините, не сочтите за грубость, но это получается примерно как муж предъявляет жене претензию, что у неё грудь маловата.

Рассмотрите ещё переменные объявленные на глобальном уровне. Они даже если не инициализированы и не используются, всё по-фигу, нет никаких предупреждений.
Что получили тем и пользуемся. И зачем говорить о том, что у кого-то лучше или хуже…

Сразу видно, что Вы, Алексей, не кодили ни в VS Code, ни в JetBrains
Причина обращения: