Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет, не так. В справке про функцию что написано о возвращаемом значении?
Возвращаемое значение
Значение цены закрытия бара (указанного параметром shift) соответствующего графика или 0 в случае ошибки. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
А если сменить таймфейм на отличный от текущего данные перестанут вовремя обновляться даже с RefreshRates(). Выходит фундаментальные функции iClose и тп. в MT4 выдают неактуальную туфту. Уверен что 80% инфопродуктов не учитывают эти уникальные особенности MT4. Как жить дальше?)))
Смена тф ничего не даст. Текущее значение iClose равно значению Bid независимо от периода графика.
Я сделал советник и запустил на M5 на сутки. В момент смены часа он рисует горизонтальные линии по каждому из значений: iClose(symbol,PERIOD_H1,1),iClose(symbol, PERIOD_ M5,1), iClose(symbol, PERIOD_ M1,1 ),Close[1],Bid
Вопрос к разработчикам. Зачем в MQL4 нужны функции iClose и тп, если они дают не достоверную информацию и обновить их данные ни как не возможно?
Я сделал советник и запустил на M5 на сутки. В момент смены часа он рисует горизонтальные линии по каждому из значений: iClose(symbol,PERIOD_H1,1),iClose(symbol, PERIOD_ M5,1), iClose(symbol, PERIOD_ M1,1 ),Close[1],Bid
Вопрос к разработчикам. Зачем в MQL4 нужны функции iClose и тп, если они дают не достоверную информацию и обновить их данные ни как не возможно?
Чушь какая-то. Вызывать RefreshRates() обязательно только в том случае, если по какой либо причине произошла задержка выполнения. Такие случаи как длительный цикл или просто обновление цен в момент отправки приказа на открытие ордера. В вашем варианте никаких проблем быть не должно. Лучше выложите пример кода который так неправильно получает значения цен.
Я сейчас запустил такой код
по сути закрытие минутки должно совпадать с любым старшим периодом графика. Позже посмотрю будет-ли что-то написано в логе.А если сменить таймфейм на отличный от текущего данные перестанут вовремя обновляться даже с RefreshRates().
Есть тестовый код, подтверждающий это утверждение? У себя такого не замечал. При переключении ТФ просто ждем подкачки истории и тогда работаем.
Выходит фундаментальные функции iClose и тп. в MT4 выдают неактуальную туфту.
Слишком громкое утверждение. В некоторых случаях такое возможно, но для этого и существуют коды ошибок. Если их не проверять, то никогда не понять, можно ли использовать полученный результат.
Уверен что 80% инфопродуктов не учитывают эти уникальные особенности MT4. Как жить дальше?)))
Скажу больше: почти все программы чего-то не учитывают. Для этого и выходят их новые версии. Как только прекращается поддержка продукта, он оказывается недееспособным.
Чушь какая-то. Вызывать RefreshRates() обязательно только в том случае, если по какой либо причине произошла задержка выполнения. Такие случаи как длительный цикл или просто обновление цен в момент отправки приказа на открытие ордера. В вашем варианте никаких проблем быть не должно. Лучше выложите пример кода который так неправильно получает значения цен.
Я сейчас запустил такой код
по сути закрытие минутки должно совпадать с любым старшим периодом графика. Позже посмотрю будет-ли что-то написано в логе.Код у меня похожий. Ошибка в OnTick
надо
Если у нас текущий таймфрейм M5 cравнивать надо М5 c H1 и M1
Текущий таймфрейм а именно M5 у меня отображался корректно. Проблема была с H1 и M1.
Я проверял на Альпари реал EURCHF M5 только вместо Print рисовал горизонтальные отрезки на каждом из уровней.
Есть тестовый код, подтверждающий это утверждение? У себя такого не замечал. При переключении ТФ просто ждем подкачки истории и тогда работаем.
Слишком громкое утверждение. В некоторых случаях такое возможно, но для этого и существуют коды ошибок. Если их не проверять, то никогда не понять, можно ли использовать полученный результат.
Скажу больше: почти все программы чего-то не учитывают. Для этого и выходят их новые версии. Как только прекращается поддержка продукта, он оказывается недееспособным.
Вот код, поставь и проверь. У меня не соответствие на каждой свече. Альпари реал EURCHF M5.
iClose: ноль - ошибка. Ошибки функция не выдает. Выдает устаревшее на данный момент значение.
Если подозреваете ошибки в функциях iXXXXX, используйте функции SymbolInfoXXXX