Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я модифицировал ваш пример. Надеюсь так мысль будет понятнее.
Ну и SERIES_SYNCHRONIZED тоже надо учитывать.Спасибо, понятно
Правда и я подправил Ваш код
и Вот результат
Ну… если вам сложней проверить чем объяснять ненужность проверки…
Но в моём сообщении ещё сказано о том, что «И данные по инструменту тоже наверняка не подгружены.» В общем я больше вас не отвлекаю.
Не важно откуда работать, важно, что все-равно не работает.
Не важно откуда работать, важно, что все-равно не работает.
А можно поинтересоваться, зачем вы закомментировали return(false); и вместо этого добавили ещё один Print();?
Разве вам надо объяснять, что этот return для того, чтобы если с первого раза не получены все тики, то надо ещё раз запустить попытку. Ну нужен этот Print() поставьте его в кривых скобках перед return
и полу́чите с какой попытки получили все тики.
А можно поинтересоваться, зачем вы закомментировали return(false); и вместо этого добавили ещё один Print();?
Разве вам надо объяснять, что этот return для того, чтобы если с первого раза не получены все тики, то надо ещё раз запустить попытку. Ну нужен этот Print() поставьте его в кривых скобках перед return
и полу́чите с какой попытки получили все тики.
Пожалуйста
При всём уважении, я не могу понять что можно получить в таком цикле
ну если не получили с первой попытки, то 99 следующих так-же не дадут результата. Ведь данные не успеют обновиться.
Такой-же вопрос и к этому циклу
и очень правильно добавлено обнуление переменной cnt перед циклом.
Что касается Sleep() в индикаторах… можно использовать цикл while с подсчётом GetTickCount()
Погоняли цикл в течении 100 миллисекунд и выскочили из цикла. За это время может и тики подгрузятся.
При всём уважении, я не могу понять что можно получить в таком цикле
ну если не получили с первой попытки, то 99 следующих так-же не дадут результата. Ведь данные не успеют обновиться.
Не просто не успеют, а не имеют шанса обновиться. Расчет индикатора происходит в потоке отвечающем втч и за подготовку данных по этому символу. Т.е. циклы ожидания данных в индикторе делать не надо. Это явно описано в справке:
Синхронизация данных терминала и данных сервера #
Поскольку mql5-программа может обратиться к данным по любому символу и таймфрейму, то есть вероятность, что данные требуемой таймсерии еще не сформированы в терминале или требуемые ценовые данные не синхронизированы с торговым сервером. В этом случае время ожидания готовности данных сложно прогнозировать.
Алгоритмы с использованием циклов ожидания готовности данных являются не лучшим решением. Единственное исключение в данном случае — скрипты, так как у них нет другого выбора алгоритма в виду отсутствия обработки событий. Для пользовательских индикаторов подобные алгоритмы, как и любые другие циклы ожидания, категорически не рекомендуются, так как приводят к остановке расчета всех индикаторов и другой обработки ценовых данных по данному символу.
Для экспертов и пользовательских индикаторов лучше использовать событийную модель обработки. Если при обработке события OnTick() или OnCalculate() не удалось получить все необходимые данные требуемой таймсерии, то следует выйти из обработчика события, рассчитывая на появление доступа к данным при следующем вызове обработчика.
Код без циклов:
При всём уважении, я не могу понять что можно получить в таком цикле
ну если не получили с первой попытки, то 99 следующих так-же не дадут результата. Ведь данные не успеют обновиться.
Такой-же вопрос и к этому циклу
и очень правильно добавлено обнуление переменной cnt перед циклом.
Что касается Sleep() в индикаторах… можно использовать цикл while с подсчётом GetTickCount()
Погоняли цикл в течении 100 миллисекунд и выскочили из цикла. За это время может и тики подгрузятся.
Алексей!
Что Вы так зацепились за этот код - это просто проверка у меня только тики не загружаются сразу или нет...
Вот и все.
В реале у меня совсем другой код...
и т.д....
Добавлено
Зимой буду писать индикатор из советника (не получается из стандартного индикатора то, что нужно.
https://www.mql5.com/ru/forum/351753
Щас занят на стройке
Алексей!
Что Вы так зацепились за этот код - это просто проверка у меня только тики не загружаются сразу или нет...
Вот и все.
В реале у меня совсем другой код...
и т.д....
Добавлено
Зимой буду писать индикатор из советника (не получается из стандартного индикатора то, что нужно.
https://www.mql5.com/ru/forum/351753
Щас занят на стройке
Да никакой разницы, этот код или другой, вопрос остаётся тот-же: какой такой сакральный смысл в таком цикле без задержки? Ответ однозначный — никакого. Не получили с первой попытки, не получите и за следующие 99 попыток.
На мой взгляд проще дождаться следующего тика и повторить получение тиков, чем городить на канвасе. Да и результат будет тот-же.
Удачи на стройке. Когда будете думать о водоочистке рекомендую смотреть только https://aquaboss.ru/
Да никакой разницы, этот код или другой, вопрос остаётся тот-же: какой такой сакральный смысл в таком цикле без задержки? Ответ однозначный — никакого. Не получили с первой попытки, не получите и за следующие 99 попыток.
На мой взгляд проще дождаться следующего тика и повторить получение тиков, чем городить на канвасе. Да и результат будет тот-же.
Удачи на стройке. Когда будете думать о водоочистке рекомендую смотреть только https://aquaboss.ru/
Ок.
У меня скважина 131 м, продавать воду можно (нед вредных компонентов)
Но спасибо за ссылку