Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 38
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Баг компилятора. Не выдаётся ошибка при модификации константного объекта:
А можно попросить, поясните пожалуйста почему должна быть ошибка? Ведь массив arr[] не является константой? Разве "костантность" 'a' обязательно должна распространяться и на все члены структуры?
Есть индикатор, выдаёт такой результат:
в OnInit() добавляю
Нигде не использую! Только получаю хэндл! Но результат становится такой:
Заметил, что не это фиксировано: один раз нажимаю "Компилировать" - всё возвращается, второй - снова не верно. Оказалось, что
получение хэндла переключает серийность массивов
Если ПОСЛЕ получения хэндла прописать ArraySetAsSeries - всё работает стабильно.
Посмотрел примеры, идущие в комплекте с терминалом - нигде серийность не задаётся.
А можно попросить, поясните пожалуйста почему должна быть ошибка? Ведь массив arr[] не является константой? Разве "костантность" 'a' обязательно должна распространяться и на все члены структуры?
Индикатор раньше работал стабильно, а теперь стали появляться ошибки такого содержания
Из хэлпа
ERR_HISTORY_NOT_FOUND
4401
Запрашиваемая история не найдена
Индикатор работает только с тем инструментом и ТФ, на котором размещен.
Если нужно, могу сбросить в личку представителям MQ. А впрочем вот код, приводящий к этой ошибке, почему она появляется?
Индикатор раньше работал стабильно, а теперь стали появляться ошибки такого содержания
Из хэлпа
ERR_HISTORY_NOT_FOUND
4401
Запрашиваемая история не найдена
Индикатор работает только с тем инструментом и ТФ, на котором размещен.
Если нужно, могу сбросить в личку представителям MQ. А впрочем вот код, приводящий к этой ошибке, почему она появляется?
Присоединяюсь к вопросу.
То же самое при использовании iBarShift.
Надеюсь, разработчики обращают внимание на эти сообщения.
Присоединяюсь к вопросу.
То же самое при использовании iBarShift.
Надеюсь, разработчики обращают внимание на эти сообщения.
Разработчики тут при чём? Проверять получение данных и обрабатыапть результат запроса лежит на плечах программиста. Нужно просто выйти из OnCalculate() с возвратом нуля.
Так почему технически это стало появляться - история то явно имеется.
Разработчики тут при чём? Проверять получение данных и обрабатыапть результат запроса лежит на плечах программиста. Нужно просто выйти из OnCalculate() с возвратом нуля.
Поведение раньше было другое. Текущий ТФ обрабатывался без проблем (т.е. данные были готовы с текущего ТФ еще до запроса). Это, конечно, не опровергает тот факт, что данные нужно проверять и синхронизировать, однако что-то действительно изменилось. Ну сейчас просто нужно раз в минуту вызывать принудительную подгрузку истории (например CopyTime()) для сохранения данных текущего символа/ТФ, что достаточно странно с учетом того, что мы работаем на графике этого же символа/ТФ. Зачем терминал "забывает" эти данные - не понятно... Возможно оптимизировали что-то.
Так почему технически это стало появляться - история то явно имеется.
в каком то из билдов этого года, что то было изменено с подготовкой истории в терминале - у меня эксперт строит кастомные графики, раньше без проблем все работало, а с этого года при открытии кастомного графика иногда будет черный экран, для себя я решил эту проблему - теперь нужно пробросить хоть один тик на кастомный график и все будет корректно
думаю и в Вашем случае теперь Вы иногда получаете ошибку на нулевом баре, т.к. новый бар то вроде уже открылся а тик еще не пришел... или еще какие ситуации, но по факту теперь терминал не формирует новую историю сразу - появилась какая то задержка
для индикаторов можно более простой код обнаружения нового бара на текущем ТФ использовать, примерно так:
для индикаторов можно более простой код обнаружения нового бара на текущем ТФ использовать, примерно так: