Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, это по делу. А терминал реально дает ошибку 4066 после обращения через iTime к необновленной таймсерии? Я столкнулся с тем что iClose отдает необновленную информацию вместо нуля.
В том и дело, это ключевой момент, из-за которого у тебя затык.
Ошибка 4066 - когда истории по этому ТФ нет, не готова, надо обращаться к серваку.
А когда она уже есть, но обновляется она, только когда обращаешься к ней, т.е. ошибку не выдает, просто отдаёт тебе что есть сейчас, и одновременно с запросом начинает обновлять тайм-серию.
Если запрашиваешь редко и нерегулярно,то иногда получаешь старьё. Если обращаешься к каждому нужному ТФ регулярно, вплоть до каждого тика - то всё ок.
Если открыт график этого ТФ, то обновляется регулярно на графике. Кстати наверное можно из советников просто пооткрывать графики всех нужных ТФ, если обращение нерегулярное, но это ненадёжно, т.к. их же могут вручную закрыть/сменить ТФ.
А зачем прибавлять 0 в [i + 0] ?
вместо нуля подставлял 1 и 2, 1 или 2. Оставил 0, то есть 1 бар. Код не подчистил, это и не принципиально для логики.
В том и дело, это ключевой момент, из-за которого у тебя затык.
Ошибка 4066 - когда истории по этому ТФ нет, не готова, надо обращаться к серваку.
А когда она уже есть, но обновляется она, только когда обращаешься к ней, т.е. ошибку не выдает, просто отдаёт тебе что есть сейчас, и одновременно с запросом начинает обновлять тайм-серию.
Если запрашиваешь редко и нерегулярно,то иногда получаешь старьё. Если обращаешься к каждому нужному ТФ регулярно, вплоть до каждого тика - то всё ок.
Если открыт график этого ТФ, то обновляется регулярно на графике. Кстати наверное можно из советников просто пооткрывать графики всех нужных ТФ, если обращение нерегулярное, но это ненадёжно, т.к. их же могут вручную закрыть/сменить ТФ.
Когда должна получиться ошибка он отдает старые данные, зашибись. Это одна из причин почему брокеры любят MT4 и не переходят на MT5.))
Тоесть обращаемся за нужным таймфремом каждый тик или sleep, до тех пор пока ошибки 4066 не будет. Я правильно понял?
Когда должна получиться ошибка он отдает старые данные, зашибись. Это одна из причин почему брокеры любят MT4 и не переходят на MT5.))
Тоесть обращаемся за нужным таймфремом каждый тик или sleep, до тех пор пока ошибки 4066 не будет. Я правильно понял?
Почти. Вот готовая функция:
Вставляете ее в OnTick() и, если возвращает true, то к таймфрейму eTF можно обращаться, данные валидные.Когда должна получиться ошибка он отдает старые данные, зашибись. Это одна из причин почему брокеры любят MT4 и не переходят на MT5.))
Тоесть обращаемся за нужным таймфремом каждый тик или sleep, до тех пор пока ошибки 4066 не будет. Я правильно понял?
sleep использовать лучше только в ОнИнит конечно, и он по идее нужен только в индикаторах. В остальных случаях обращение в ОнТик, как выше Игорь привёл - достаточно.
В зависимости от задачи можно же лавировать как лучше. Обычно, проверяя появился ли новый бар, уже обращаемся к iTime на каждом тике для всех используемых тф, этого хватает чтобы они были актуальны.
з.ы. а если функцию Игоря использовать не на каждом тике, а по каким то там редким условиям, то тоже будет рассинхрон.sleep использовать лучше только в ОнИнит конечно, и он по идее нужен только в индикаторах. В остальных случаях обращение в ОнТик, как выше Игорь привёл - достаточно.
В зависимости от задачи можно же лавировать как лучше. Обычно, проверяя появился ли новый бар, уже обращаемся к iTime на каждом тике для всех используемых тф, этого хватает чтобы они были актуальны.
з.ы. а если функцию Игоря использовать не на каждом тике, а по каким то там редким условиям, то тоже будет рассинхрон.Sleep не работает в индикаторах
Почти. Вот готовая функция:
Вставляете ее в OnTick() и, если возвращает true, то к таймфрейму eTF можно обращаться, данные валидные.Все гениальное просто. Спасибо. Почему разработчикам это не описать в мануале на функции iClose и тп? Или поправить логику обновления котировок MT4, чтобы не создавать теории заговора.
Когда должна получиться ошибка он отдает старые данные, зашибись. Это одна из причин почему брокеры любят MT4 и не переходят на MT5.))
Тоесть обращаемся за нужным таймфремом каждый тик или sleep, до тех пор пока ошибки 4066 не будет. Я правильно понял?
В МТ5 с этим на порядок сложнее.
В четверке достаточно раз в 2 минуты запросить iTime со всех используемых ТФ, и все данные будут актуальными.
Все гениальное просто. Спасибо. Почему разработчикам это не описать в мануале на функции iClose и тп? Или поправить логику обновления котировок MT4, чтобы не создавать теории заговора.
Потому что практически все ЕА делают проверки нужных условий на каждом тике, и всё обновляется само собой.
Sleep не работает в индикаторах
Если очень надо. то работает :)
В МТ5 с этим на порядок сложнее.
В четверке достаточно раз в 2 минуты запросить iTime со всех используемых ТФ, и все данные будут актуальными.
Именно