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

 
x100intraday:

 В https://www.mql5.com/ru/docs/basis/function/events сказано в конце: "Для лучшего понимания будет полезно запустить индикатор, код которого приложен ниже."

 Код запустил. На выходных. Лучшего понимания не произошло - оно и так было, как мне думается, в норме, а вот худшие впечатления добавились. Тиков в выходные нет, поэтому prev_calculated = 0 в это время всегда, при переходе с таймфрейма на таймфрейм:

 Однако в один прекрасный момент появляется (реконнектов не было, честное благородное!) вот такое значение:


 Стоит ли ожидать, что непостоянство в поведении терминала будет устранено? Или мне стоит учить матчасть?

 

Учите, ибо в писании документации сказано - Технические индикаторы:

Все функции типа iMA, iAC, iMACD, iIchimoku и т.п., создают в глобальном кеше клиентского терминала копию соответствующего технического индикатора. Если копия индикатора с этими параметрами уже существует, то новая копия не создается, а увеличивается счетчик ссылок на данную копию.

...

Примечание. Многократное обращение к функции индикатора с одними и теми же параметрами в пределах одной mql5-программы не приводит к многократному увеличению счетчика ссылок, счетчик будет увеличен всего один раз на 1.

Это означает, что при первом запуске индикатора (при переключении на новый таймфрейм в первый раз), значения индикатора еще не рассчитаны, поэтому и prev_calculated=0. При возврате на этот таймфрейм индикатор не создается заново, ибо хэндл его еще живой, в результате на графике рассчитывается уже существующий индикатор по существующему хэндлу. Поэтому и prev_calculated!=0
 
x100intraday:

 Однако в один прекрасный момент появляется (реконнектов не было, честное благородное!) вот такое значение:

и весёлые линии на графике:

 

или раза в два менее весёлые, вот так:

 

 Были даже линии в начале истории в виде ZigZag'а (увы, забыл сделать скриншот, а воспроизвести не удалось).

 На прочих ТФ линии тоже появляются, но более разреженно. Можете легко убедиться в этом сами.

 Авторы точно хотели сказать именно это?

Вообще, есть раздел Инициализация переменных :

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

Вы объявили индикаторный буфер, но значения в нем не определены. Поэтому исполнительная система терминала выделяет под него любой доступный кусок памяти, к котором может случайно оказаться и оставшийся бесхозным буфер индикатора со значениями Зигзага.
 
x100intraday:

 Недавно была ситуация, когда конструкция:

выводила только значение от первого Print, но дожидаться следом вывода значений элементов массива было бесполезно. После удаления первого Print и перекомпиляции циклический вывод элементов массива начинался моментально. Тайный заговор Print'ов против MQL5-Community или я один такой невезучий?

 

 Дополнительно отмечу, что эти странные случаи поведения терминала наблюдались не на перегруженном окнами чартов, графическими объектами и MQL-программами экземпляре MT5, а всего-навсего при единственном чистом (не считая наброса обкатываемого индикатора) окне чарта.

Пишите в Сервисдеск, разберутся.

PS И читайте раздел Выполнение программ

 
Karlson:

Мда..все тоже самое в принципе..

 

У меня из 5 функций, использующих OrderSend(), две стабильно выдают ошибку Invalid Request.

Визуально каких-либо ошибок или принципиальных отличий от работающих вариантов я не нахожу. 

Проблема в версии сборки терминала (build 540 от 11.11.11). Пророчество сбылось!!!

 
MoneyJinn:

У меня из 5 функций, использующих OrderSend(), две стабильно выдают ошибку Invalid Request.

Визуально каких-либо ошибок или принципиальных отличий от работающих вариантов я не нахожу. 

Проблема в версии сборки терминала (build 540 от 11.11.11). Пророчество сбылось!!!

Как то быренько все переписал через CTrade.Сам удивляюсь.Работает исправно.Просто и эффективно.
 

веселые выходные с 540-м билдом:


после его установки постоянно всплывает ==>

return code 10013   и  invalid request при установке ордера.

 
blef:

веселые выходные с 540-м билдом:


после его установки постоянно всплывает ==>

return code 10013   и  invalid request при установке ордера.

Можете предоставить исходники для воспроизведения? Напишите в Сервисдеск, пожалуйста.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
Rosh:

Вообще, есть раздел Инициализация переменных :

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

 Rosh, ирония возникшей у меня ситуации в том, что индикатор ZigZag и его аналоги я не запускал вот уже сто лет в обед, а машина ежедневно подвергается хардварному ребуту. Неоткуда в памяти взяться остаткам ZigZag'ов или чего-то ещё.

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

 
x100intraday:

 Rosh, ирония возникшей у меня ситуации в том, что индикатор ZigZag и его аналоги я не запускал вот уже сто лет в обед, а машина ежедневно подвергается хардварному ребуту. Неоткуда в памяти взяться остаткам ZigZag'ов или чего-то ещё.

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

Не имеет значения, мусор в буферах может нарисовать что-угодно, если не инициализировать их.

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

 
Rosh:

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

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

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

 

Rosh:

...так как из вас двоих - ученик и MQL5 - я знаю больше MQL5. 


  Птицу видно по полёту, а программиста - по его коду. Предложение взглянуть - в силе, facepalm гарантирую.

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