Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Покажите, пожалуйста, эталонный код индикатора, который все время хранит актуальные последние 2000 тиков каждого символа из Обзора рынка.
А то получаются гадания с одной стороны и только рекомендации в виде слов - с другой.
Надо смотреть код.
Вот в коде выше явно букет логических и ресурсных проблем.
Делаю примерно так, подскажите пожалуйста, как и что подправить если требуется:
Надо смотреть код.
Вот в коде выше явно букет логических и ресурсных проблем.
В этом коде логические проблемы, или Я что-то упустил?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Баг MQL5 при работе c доступом к таймсериям iClose/iOpen и т.д.
Stanislav Dray, 2018.11.14 16:28
Странные у вас отношения к баг-рапортам. Мне как бы деньги не платят, чтоб я что-то доказывал. Я как мог расписал ситуацию.
Проблема не только у меня, проблема появилась после вашего 30-го обновления, но всё равно вы намекаете что я мол сам дурак и вовсём виноваты какие-то тормознутые индикаторы.
А до этого они целый год не были тормознутые ?
Вот пример кода который завис спустя 25 минут после запуска на М30:
Надо писать индикатор с четким осознанием, что сразу вы все не получите.
В OnInit вы должны простимулировать загрузку истории нужных инструментов одиночными вызовами CopyXXX, а вот дожидаться надо полной инициализации в OnCalculate.
У вас же фаза инициализации с ошибкой по всей видимости - вы неправильно дожидаетесь данных и блокируетесь.
Попробую так сделать,
сейчас я делаю запросы в OnCalculate и там жду (не каждый тик конечно же а только первый раз при расчёте).
Покажите, пожалуйста, эталонный код индикатора, который все время хранит актуальные последние 2000 тиков каждого символа из Обзора рынка.
А то получаются гадания с одной стороны и только рекомендации в виде слов - с другой.
Присоединяюсь! лучше даже не тики а бары.
Нужен пример Одобренного Истинного Мультивалютного Кода.
Иначе так и будем в потёмках...
Попробую локализовать ошибку, и отпишусь по мере нахождения
Присоединяюсь! лучше даже не тики а бары.
Нужен пример Одобренного Истинного Мультивалютного Кода.
Иначе так и будем в потёмках...
Также всегда рекомендовалось, если работаете с чужим таймфреймом - то раз в минуту необходимо получать OHLC с этого таймфрейма (любая CopyXXXX функция). Это было всегда.
Уже хотел плюнуть на все, что тут твориться, но к сожалению, на продукт MQ, было мной потрачено около 10 лет.
Теперь все же по делу. Владимир ваш совет по поводу использования CopyXXXX функций был мной использован, так как не представлял никакой сложности с точки зрения моего не профессионально написанного кода.
Честно я хотел, чтобы проблема была бы только в моих кривых руках, но нет проблема не только в них. Ниже будет скрин, предвосхищая странные объяснения со стороны технической поддержки, мол не правильно написанный код и 100500 других индикаторов и что вы хотите, будут проблемы. Нету никаких 100500 индикаторов кроме одного тестируемого, нету ни одного эксперта, в терминале открыто всего два инструмента, тест индикатора осуществляется на паре EURUSD 1M, данные индикатор подгружает с таймфрема М15 этого же инструмента, т.е. я не пытаюсь загрузить данные других инструментов, в обзоре рынка их всего несколько.
Для работы терминала с точки зрения нагрузки вообще идеальная ситуация, чего конечно же не будет в условиях рабочей эксплуатации, но даже в этом случай, есть проблема и по моему мнению это проблема называется "БАГ".
В индикаторе вызов функции iClose и iBars осуществляется только для отражения состояния в Commet(). В обзоре рынка время на момент создание скрина, в окне терминала текущее состояние вызова функций iClose и iBars, далее в расчетной части индикатора используется функции CopyXXXX.
Как видите индикатор был перезагружен в 16:31 и работал успешно(я даже уже было обрадовался), но обновление данных iClose прекратилась после 00:15, соответственно и функция CopyXXXX так же возвращает не обновленные данные, т.е. ошибка возникает где-то в недрах МТ.
По моему мнению, происходит сбой при чтении данных с сервера, причин может быть масса(отсутствие интернета, был занят сервер и т.д.), но почему то возобновление работы после устранения причин связи не происходит, отсюда делаю выводы, что вы можете тестировать исходные коды пользователей сколько угодно, но если у вас сервер находиться под боком, эту проблему вы никогда не выявите, а она есть и возникает она не только из-за кривых ручек кодера.
Тоже решил вчера протестировать код от Станислава. Через несколько часов обновление времени прекратилось. Переключать таймфреймы не стал, а просто сделал обновление через контекстное меню графика и время пошло дальше.
Сегодня немного модифицировал код чтобы смотреть время и текущего ТФ.
И буквально минут через 15 обновление на "не родном" ТФ прекратилось, а на текущем нормально обновлялось. После обновления графика, время опять пошло.
Терминал работает в портативном режиме. Система и сам терминал стоят на SSD диске.
Не знаю, что произошло, но когда я писал бота для последнего чемпионата MQ на MQL5, был он мультивалютным и проблем с загрузкой данных с других инструментов мной не было замечено.
Т.к. в каком то лахматом году, MQL5 был на столько не идеален (не оптимизирован), что работал без проблем, да он наверное поглощал много ресурсов, но он давал ожидаемый результат, а не то что сейчас, рулетка - либо повезет, либо нет.
Данная проблема, к примеру меня как разработчика коммерческих продуктов под MQL5, будет характеризовать не очень с хорошей стороны и в двойне это будет не приятно, если человек оплатит продукт приобретенный в маркете, а он просто будет глючным из-за подобных "БАГОВ".