![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
OnChartEvent() не должно работать в тестере. Проверил, вижу, что на всех тиках срабатывает 1 - 2 раза за бар Н1. Видимо, это реакция на перемещение графика в момент образования нового бара. Причем у меня эта реакция, чаще всего, не в момент открытия бара, а где-то в его середине. Если в этот момент запросить данные текущего графика, то все данные возвращаются правильно.
Вы проводите тест на EURGBP, а запрашиваете данные с AUDUSD. В МТ4 тестер одновалютный. Для того, чтобы правильно обратиться к другим символам, нужно изрядно потрудиться. Прямое обращение не подойдет.
Ну и в принципе у Вас еще достаточно хороший случай. Ведь текущий ТФ М1, а запрашиваются данные на Н1. То есть бар на Н1 не меняется в течение долгого времени. Вот и получаете Open-цену.
Как-то OnChartEvent работает в 4 даже лучше чем в 5))
Если в Ontick вставить эффект будет такой же.
У меня есть ещё похожий экземпляр, мне кажется там данные приходят. Сейчас облегчу его и буду проверять. А что значит не прямое обращение?
ps и если тестер одновалютный, то кто даёт цену Open) Значит всё же цены получать можно)
Как-то OnChartEvent работает в 4 даже лучше чем в 5))
Просто знайте, что в тестере на него особо надеяться нельзя. ))
Если в Ontick вставить эффект будет такой же.
Да, потому что идет обращение к другому символу, поведение которого не эмулируется тестером.
У меня есть ещё похожий экземпляр, мне кажется там данные приходят. Сейчас облегчу его и буду проверять. А что значит не прямое обращение?
Через индекс бара. Индексы баров у разных символов не обязаны совпадать по времени. Поэтому сначала следует найти нужный бар (iBarShift), а потом только использовать полученный индекс бара для получения данных.
ps и если тестер одновалютный, то кто даёт цену Open) Значит всё же цены получать можно)
Получать то можно. Только не факт, что это требуемые данные.
Через индекс бара. Индексы баров у разных символов не обязаны совпадать по времени. Поэтому сначала следует найти нужный бар (iBarShift), а потом только использовать полученный индекс бара для получения данных.
С индексом бара вопросы изредка бывают, это правда.
Попробую мож и сработает. Спасибо.
При запросе данных из индикаторов (4) обычно, ищу бар.
ChartTimePriceToX
тоже требует иного обращения, чем в 5.
0-ю свечу другого инструмента, получить можно, но только Open. Цены всех других свечей получить можно. Прямым способом.
Дело в том что свеча была 0. а не например 10.
Pavel Verveyko #:
iBarshift тоже не работает.
Покажите, как запрашиваете.
Вообще странно. Не важно какое время у бара. Я просто хочу получить 0-й бар и не важно с каким он временем. Время у него возвращается как раз правильно.
Допустим, тестируется интервал с 2021.10.01 до 2021.10.15. Для тестируемого символа 0-ой бар будет постоянно изменяться по времени. А вот 0-ой бар другого символа будет всегда соответствовать текущему времени. Это тот бар, который в реальности сейчас формируется. Если нужен 0-ой бар, который соответствует тестируемому 0-ому бару, то нужно сделать такое преобразование:
Покажите, как запрашиваете.
Допустим, тестируется интервал с 2021.10.01 до 2021.10.15. Для тестируемого символа 0-ой бар будет постоянно изменяться по времени. А вот 0-ой бар другого символа будет всегда соответствовать текущему времени. Это тот бар, который в реальности сейчас формируется. Если нужен 0-ой бар, который соответствует тестируемому 0-ому бару, то нужно сделать такое преобразование:
Да, я несколько иначе делал. Без привязки к текущему временному периоду. Но период всё равно был нужен разный. Одна из версий была такая. В данной ситуации, меня устраивается, что можно получить хотя бы другие свечи).
Да, я несколько иначе делал. Без привязки к текущему временному периоду. Но период всё равно был нужен разный. Одна из версий была такая. В данной ситуации, меня устраивается, что можно получить хотя бы другие свечи).
А почему в iBarShift указано "AUD"? Если такого символа нет (что скорее всего), то вот она ошибка. Ведь iBarShift будет возвращать неопределенный результат.
А почему в iBarShift указано "AUD"? Если такого символа нет (что скорее всего), то вот она ошибка. Ведь iBarShift будет возвращать неопределенный результат.
Вот сейчас посмотрим)
не. всё равно опен)Вот сейчас посмотрим)
не. всё равно опен)Для нулевого бара так и будет. Попробуйте любой другой бар. Там должна быть информация правильная.
Для нулевого бара так и будет. Попробуйте любой другой бар. Там должна быть информация правильная.
не 0, можно получить без шифтбара.
Спасибо за мысли.