Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2051

 
Alexandr Nikolaev #:

Читаем внимательно, обычно расчет производится слева направо, но если нам нужно справа налево, меняем направление индексации с помощью функции ArraySetAsSeries(), то есть функция работает в любом направлении индексации. И я проверял это на практике, так и есть. Проблема не в этом.

Обнаружил ещё один момент, если массив объявить глобальным, ошибка пропадает, если в блоке функции, как выше, то ошибка появляется. Ошибка точно не в логике. Ошибка в mql.

вот вы упёртый...а где-же у вас в примере выставлена серийность ? :-) хорошо хоть документацию почитали

PS/отличия в применении (и поведении) статические vs динамические массивы действительно есть. Где-то с пару-тройку лет назад внесли, чтобы пользователям было не скучно

PPS/ iMAOnArray довольно капризная штука, и его нелегко разъяснять. поэтому и не портирована в 5. И поэтому-же лучше самодельные аналоги. 

 
Alexandr Nikolaev #:


Обнаружил ещё один момент, если массив объявить глобальным, ошибка пропадает, если в блоке функции, как выше, то ошибка появляется.

Ну, наконец-то😁 Возможно действительно дальше в коде есть ещё обращение к массиву или функции... Тогда всё верно компилятор показывает) 

И ещё, чёткое указания компилятора на ошибку, строку и столбец - НЕ гарантирует, что именно в этом месте что-то неправильно. Он как бы показывает что может влиять на ошибку. Как-то так.

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

Цикл за пределы по разным причинам выходить может, даже поменяв местами порядок строк, уже меняется логика исполнения цикла. Так же иногда помогает знак равенстра добавлять к знакам больше или меньше i>=0, i<=10, но это от логики смотреть надо)

 
to_ha #:

Ну, наконец-то😁 Возможно действительно дальше в коде есть ещё обращение к массиву или функции... Тогда всё верно компилятор показывает) 

И ещё, чёткое указания компилятора на ошибку, строку и столбец - НЕ гарантирует, что именно в этом месте что-то неправильно. Он как бы показывает что может влиять на ошибку. Как-то так.

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

Цикл за пределы по разным причинам выходить может, даже поменяв местами порядок строк, уже меняется логика исполнения цикла. Так же иногда помогает знак равенстра добавлять к знакам больше или меньше i>=0, i<=10, но это от логики смотреть надо)

Выход за пределы массива - ошибка времени исполнения. Компилятор её не выдаёт.
 
Maxim Kuznetsov #:

вот вы упёртый...а где-же у вас в примере выставлена серийность ? :-) хорошо хоть документацию почитали

PS/отличия в применении (и поведении) статические vs динамические массивы действительно есть. Где-то с пару-тройку лет назад внесли, чтобы пользователям было не скучно

PPS/ iMAOnArray довольно капризная штука, и его нелегко разъяснять. поэтому и не портирована в 5. И поэтому-же лучше самодельные аналоги. 

Зачем выставлять мне в примере серийность, если  iMAOnArray работает при любом направлении серийности? Я этот факт проверял на практике.))

ПС: не понимаю, почему никого не смущает странное поведение и появления ошибки...

 
to_ha #:

Ну, наконец-то😁 Возможно действительно дальше в коде есть ещё обращение к массиву или функции... Тогда всё верно компилятор показывает) 

И ещё, чёткое указания компилятора на ошибку, строку и столбец - НЕ гарантирует, что именно в этом месте что-то неправильно. Он как бы показывает что может влиять на ошибку. Как-то так.

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

Цикл за пределы по разным причинам выходить может, даже поменяв местами порядок строк, уже меняется логика исполнения цикла. Так же иногда помогает знак равенстра добавлять к знакам больше или меньше i>=0, i<=10, но это от логики смотреть надо)

Я указал не кусок кода и весь код из скрипта. Дальше обращения к массиву нету.

 

Уважаемые эксперты и все кто помогает. Спасибо вам за ваши советы и мысли. Ваша помощь для многих порой неоценима.

Но прошу вас, пожалуйста не будьте только теоретиками, но иногда проверяйте свои советы на практике, тогда вы увидите, что иногда ваш совет не работает. Будьте внимательнее, т.к. некоторые советы, которые мне писали, были ошибочны и вводили в заблуждение. Перед тем как сюда написать я всё тщательно протестировал и опробовал, и справочник внимательно перечитывал, но причину проблемы так и не нашёл, решил, что проблема в mql, и надо им сообщить об этом, но перед этим обратился сюда, и ещё раз проверил и опробовал все выше приведенные советы, но проблема так и не решилась. Вы и сами, кто советовал что то, могли у себя этот простой и незамысловатый код в скрипте запустить, и увидели бы странную проблему и то что ничего не помогает в ее устранении (не считая того, что я обнаружил, про вынесение массива в глобальные). Думал если и вы подтвердите наличия этой странной ошибки в mql, то разработчики обратят внимание на это и исправят. Вот цель моего поста, исправить данную проблему. Простите, если задел чьи то чувства.

 

Alexandr Nikolaev #:

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

Возможно это не ошибка, а условие работы iMAOnArray только с глобальными переменными.

 

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

https://www.mql5.com/ru/forum/432624/unread#unread

Там есть разработчик Слава, можете ему написать сообщение

Новая версия платформы MetaTrader 5 build 3440: Новый отчет по торговому счету - В новой версии MetaTrader 5 выпущена обновленная версия платформы MetaTrader 5. Улучшена работа функции CArrayList LastIndexOf.
Новая версия платформы MetaTrader 5 build 3440: Новый отчет по торговому счету - В новой версии MetaTrader 5 выпущена обновленная версия платформы MetaTrader 5. Улучшена работа функции CArrayList LastIndexOf.
  • 2022.09.14
  • www.mql5.com
Terminal Исправлено отображение комментариев на графиках пользовательских символов. переданного в функцию в виде ссылки на указатель объекта. MetaEditor Исправлено отображение ссылок на комплексные числа в отладчике
 
Alexandr Nikolaev #:

Уважаемые эксперты и все кто помогает. Спасибо вам за ваши советы и мысли. Ваша помощь для многих порой неоценима.

Но прошу вас, пожалуйста не будьте только теоретиками, но иногда проверяйте свои советы на практике, тогда вы увидите, что иногда ваш совет не работает. Будьте внимательнее, т.к. некоторые советы, которые мне писали, были ошибочны и вводили в заблуждение. Перед тем как сюда написать я всё тщательно протестировал и опробовал, и справочник внимательно перечитывал, но причину проблемы так и не нашёл, решил, что проблема в mql, и надо им сообщить об этом, но перед этим обратился сюда, и ещё раз проверил и опробовал все выше приведенные советы, но проблема так и не решилась. Вы и сами, кто советовал что то, могли у себя этот простой и незамысловатый код в скрипте запустить, и увидели бы странную проблему и то что ничего не помогает в ее устранении (не считая того, что я обнаружил, про вынесение массива в глобальные). Думал если и вы подтвердите наличия этой странной ошибки в mql, то разработчики обратят внимание на это и исправят. Вот цель моего поста, исправить данную проблему. Простите, если задел чьи то чувства.

Ну проверил… И что? 

Где ошибка-то?

 
Aleksei Stepanenko #:

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

https://www.mql5.com/ru/forum/432624/unread#unread

Там есть разработчик Слава, можете ему написать сообщение

iMAOnArray() в mql5 нету. Выходит, что говорится об mql4. Зачем-же посылать в ветку по mql5?

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