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

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 

Продублирую по проблеме ошибки 4401.

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

В прикрепленном индикаторе это наглядно показано. На OnCalculate запрашиваем последовательно увеличивающееся количество rates, всё работает быстро, в одном вызове OnCalculat, пока не запросим кол-во, превышающее реальное кол-во. Тогда возвращается реальное кол-во, но все остальные вызовы CopyRates заканчиваются err 4401. Со следующего OnCalculate снова работает, пока запрошенное не превысит имеющееся.

Повторю, запрашиваемое количество меньше TERMINAL_MAXBARS.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
CopyRates - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Файлы:
 

Быстро переинициазировать советник можно следующим образом.

На чарте ENTER->a->ENTER.

 
Boris:
Так тоже не работает. Может ошибка в отладчике? Если а присвоить др тип, то все ок.

Эта ошибка исправлена, обновитесь на последний бета билд 2781

 
Aliaksandr Hryshyn:

И как быть? Не работает толком упаковка и распаковка данных:

Это тест

Результат. 4001-Неожиданная внутренняя ошибка

Прошу разработчиков решить этот вопрос

Спасибо за сообщение. Исправлено.

Для работы в текущей версии, передавайте в функцию пустой приёмный массив, используйте ArrayFree(arr, 0);
Документация по MQL5: Операции с массивами / ArrayFree
Документация по MQL5: Операции с массивами / ArrayFree
  • www.mql5.com
ArrayFree - Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ilyas:

Для работы в текущей версии, передавайте в функцию пустой приёмный массив, используйте ArrayFree(arr, 0);

Наверное, лишнее.

 

Ни на что не подписывался, а в ЛС такое.


 
fxsaber:

Ни на что не подписывался, а в ЛС такое.

всех бесит, разрабам пофиг

 
Ilyas:

Спасибо за сообщение. Исправлено.

Для работы в текущей версии, передавайте в функцию пустой приёмный массив, используйте ArrayFree(arr, 0);

Спасибо.

 

Не могу никак понять почему этот код выдаёт результат всегда 0,0

  long_lot=m_money.CheckOpenLong(m_symbol.Ask(),0);

    short_lot=m_money.CheckOpenShort(m_symbol.Ask(),0);


Кто сталкивался с подобным, какие варианты могут быть сходу? куда копать?