Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну я бы не сказал что это костыль. Я ожидаю потока котировок от сервера иначе история не будет обновлена. Другой вариант это брать локальное время компьютера вводить поправку на тайм зону, которую можно высчитывать автоматически и в конце концов всё равно ждать обновления котировок. Да немного кривовато но не думаю что Метаквотовцы будут что то менять в МТ4. В конце концов эта проблема коннекта к серверу которую надо обрабатывать так или иначе.
Вот. И Вы поняли, что это проблема! Но, я считаю, что ее нужно исправить и/или справку дополнить алгоритмом на все случаи жизни.
Функция получения данных не должна выдавать левые данные без ошибок и предупреждений!
Это уже не первая моя тема (предыдущая была про МТ5, вразумительных ответов по ней я до сих пор не получил) про синхронизацию и последующие зависания/ошибки.
Да, похоже такой прием работает. Как вариант использовать можно. Спасибо! Но, все таки хотелось бы нормальной работы функций.
Он сработает только в только случае, если нет пропусков баров - а такой гарантии быть не может. Допустим за текущий час ещё не было новых котировок на сервере (а быть может и за предыдущий тоже). Соответственно последним баром является какой-то прошлый бар.
В Вашем подходе к проверке имеется две существенные ошибки:
1. Игорь, Вы код смотрели? Где я что-то получаю в OnInit()?
2. Какие проверки? Где написано, что индикатор обязательно должен хотя бы один раз использовать OnCalculate() для корректной работы?
Он сработает только в только случае, если нет пропусков баров - а такой гарантии быть не может. Допустим за текущий час ещё не было новых котировок на сервере (а быть может и за предыдущий тоже). Соответственно последним баром является какой-то прошлый бар.
Это (как я уже сказал, костыль) решение пока что лучше, чем ничего. Как я уже сказал (и доказал), есть ошибка. Чем быстрее разработчики ее исправят - тем лучше.
Он сработает только в только случае, если нет пропусков баров - а такой гарантии быть не может. Допустим за текущий час ещё не было новых котировок на сервере (а быть может и за предыдущий тоже). Соответственно последним баром является какой-то прошлый бар.
Так она не выдает левые данные, она выдает последние полученные данные и ошибка не возникнет до тех пор пока терминал не начнет получать поток котировок. В вашем случае вы пытаетесь получить данные раньше чем пошли котировки такие исключительные ситуации программист обязан обрабатывать самостоятельно. Так же как и любые обрывы связи. А что там за проблема с МТ5 очень интересно почитать?
Ну е-мае... Мы же уже прошли этот этап разбора. Смотрите ваш же лог:
Последовательность. Сначала проверяем связь. Как только связь установлена, получаем время. Объясните мне, пожалуйста, какого лешего сначала возвращается ошибка 4066, а потом она не возвращается!? Что изменилось за 20 мс с последнего вызова?
А что там за проблема с МТ5 очень интересно почитать?
https://www.mql5.com/ru/forum/219829
Это (как я уже сказал, костыль) решение пока что лучше, чем ничего. Как я уже сказал (и доказал), есть ошибка. Чем быстрее разработчики ее исправят - тем лучше.
Ну е-мае... Мы же уже прошли этот этап разбора. Смотрите ваш же лог:
Последовательность. Сначала проверяем связь. Как только связь установлена, получаем время. Объясните мне, пожалуйста, какого лешего сначала возвращается ошибка 4066, а потом она не возвращается!? Что изменилось за 20 мс с последнего вызова?