Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 57
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я показал код, суть которого в копировании в массив времени нулевого бара.
Код в функции индикатора.
Если нужно, я могу передать код индикатора для воспроизведения.
Я могу понять, когда запрошена информация исторически далекая и нужно время, что б её подготовить, но тут же расчет происходит только при появлении нового тика этого самого нулевого бара, поэтому я и не могу понять почему это так и как решить проблему без заполнения буфера индикатора нулями.
Это происходит не на каждом тике или баре.справка некорректная по iBars https://www.mql5.com/ru/docs/series/ibars
Возвращаемое значение
Количество баров в истории по соответствующему символу и периоду, но не более чем задано в настройках платформы параметром "Макс. баров в окне" ("Max bars in chart")
проверил в индикаторе:
в логе однозначно iBars() больше TERMINAL_MAXBARS:
2019.04.30 20:11:40.256 rates (EURUSD,M1) rates_total = 50062, TERMINAL_MAXBARS = 50000
2019.04.30 20:11:40.256 rates (EURUSD,M1) iBars = 50062, Bars = 50062
2019.04.30 20:12:31.156 rates (EURUSD,M1) rates_total = 50063, TERMINAL_MAXBARS = 50000
2019.04.30 20:12:31.156 rates (EURUSD,M1) iBars = 50063, Bars = 50063
2019.04.30 20:13:29.950 rates (EURUSD,M1) rates_total = 50064, TERMINAL_MAXBARS = 50000
2019.04.30 20:13:29.950 rates (EURUSD,M1) iBars = 50064, Bars = 50064
2019.04.30 20:14:30.621 rates (EURUSD,M1) rates_total = 50065, TERMINAL_MAXBARS = 50000
2019.04.30 20:14:30.621 rates (EURUSD,M1) iBars = 50065, Bars = 50065
2019.04.30 20:15:29.649 rates (EURUSD,M1) rates_total = 50066, TERMINAL_MAXBARS = 50000
2019.04.30 20:15:29.649 rates (EURUSD,M1) iBars = 50066, Bars = 50066
2019.04.30 20:16:29.786 rates (EURUSD,M1) rates_total = 50067, TERMINAL_MAXBARS = 50000
2019.04.30 20:16:29.786 rates (EURUSD,M1) iBars = 50067, Bars = 50067
Вы не сказали и даже не вывели в лог наименование символа, на котором возникает проблема.
Не ругаетесь, пожалуйста!
Я же в сообщении оставил ссылку на прошлое сообщение, где есть в том числе лог, относящийся к ошибке - я его повторю.
Индикатор работает на том же символе и с тем же TF, т.е. получается, что на Si-6.19 M1 - в обзоре рынка символ есть. Торговый сервер брокера Открытие Access Server IX .
Я же сказал, что дам индикатор по требованию - это не проблема - требуете - давать?
Про ожидание синхронизации - как тут может возникать рассинхронизация, если я работаю с тем же ТФ и чартом, что и индикатор в целом, использую OnCalculate(), которая активируется от нового тика, но не раньше его во всяком случае, или я тут не прав?
Ранее, зимой на старом билде я месяц собирал статистику по всем индикаторам, что для меня важны, и не получал подобной ошибки - данные совпадали с тестовыми полностью, после как раз решения рассинхронизации по одному из индикаторов, но там данные были с другого ТФ и индикатора.
Я очень заинтересован в решении проблемы, поэтому, прошу Вас писать, то что со своей стороны мне требуется сделать дополнительно.
Не ругаетесь, пожалуйста!
Я же в сообщении оставил ссылку на прошлое сообщение, где есть в том числе лог, относящийся к ошибке - я его повторю.
Индикатор работает на том же символе и с тем же TF, т.е. получается, что на Si-6.19 M1 - в обзоре рынка символ есть. Торговый сервер брокера Открытие Access Server IX .
Я же сказал, что дам индикатор по требованию - это не проблема - требуете - давать?
Про ожидание синхронизации - как тут может возникать рассинхронизация, если я работаю с тем же ТФ и чартом, что и индикатор в целом, использую OnCalculate(), которая активируется от нового тика, но не раньше его во всяком случае, или я тут не прав?
Ранее, зимой на старом билде я месяц собирал статистику по всем индикаторам, что для меня важны, и не получал подобной ошибки - данные совпадали с тестовыми полностью, после как раз решения рассинхронизации по одному из индикаторов, но там данные были с другого ТФ и индикатора.
Я очень заинтересован в решении проблемы, поэтому, прошу Вас писать, то что со своей стороны мне требуется сделать дополнительно.
Какого качества индикатор? Вы вызываете CopyTime, а в сообщении “failed to copy data from handle”. Как можно быть уверенным, что в переменной symb содержится имя текущего символа?
Очень похоже на «на, бабка, сама занимайся сексом»
Какого качества индикатор? Вы вызываете CopyTime, а в сообщении “failed to copy data from handle”. Как можно быть уверенным, что в переменной symb содержится имя текущего символа?
Очень похоже на «на, бабка, сама занимайся сексом»
Да, я запутал - признаю, просто для себя сообщения делал и вижу, что оно от индикатора - изначально я думал, что проблема в советнике и искал параллельно проблему, поэтому и упоминание хэндла.
Про уверенность в переменной symb имя текущего символа - задается параметрами функции
Код я положил Вам в личку. К сожалению, качество кода оценить правильно не могу - это порождение фриланса в целом.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов
Slava, 2019.04.13 10:07
Функция не смогла быть выполнена из-за остановки экспертаBuild 2025.
Согласно документации , я использую ChartSetSymbolPeriod (), чтобы обновить индикатор (пересчитать).
Меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд.
Для воспроизведения используйте прикрепленный код на 2 графиках, один и тот же символ. Затем нажмите на ярлык «Обновить».
2019.04.30 14:25:46.001 ChartSetSymbolPeriod (EURUSD,M15) 132011220927585854: OnCalculate prev_calculated=0
2019.04.30 14:25:52.103 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnCalculate prev_calculated=0
2019.04.30 14:25:55.436 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnChartEvent start
2019.04.30 14:25:55.437 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: ChartRefresh start
2019.04.30 14:25:55.437 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: ChartRefresh end
2019.04.30 14:25:55.437 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnChartEvent end
2019.04.30 14:25:56.666 ChartSetSymbolPeriod (EURUSD,M15) 132011220927585854: OnCalculate prev_calculated=0
2019.04.30 14:25:57.703 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnCalculate prev_calculated=0
Я нажал на график H1, но график M15 тоже обновился.
Build 2007/2025.
Возможно ли в ArrayPrint добавить флаг ARRAY_HEX для вывода с шестнадцатеричном виде массива?
Грубо говоря, набор байтов в HEX-формате.
Например, читаешь бинарный файл. Нужно быстро понять, прочтен тот кусок или нет. По HEX-виду прочтенного можно быстро выяснить offset/size и т.д.
Все еще используя ChartSetSymbolPeriod (). Я знаю, что это асинхронно, но почему для вызова OnCalculate () требуется 2.5 секунды? Это очень долго.
2019.04.30 14:35:53.349 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnChartEvent start
2019.04.30 14:35:53.349 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: ChartRefresh start
2019.04.30 14:35:53.349 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: ChartRefresh end
2019.04.30 14:35:53.349 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnChartEvent end (ChartSetSymbolPeriod() call).
2019.04.30 14:35:54.809 ChartSetSymbolPeriod (EURUSD,M15) 132011220927585854: OnCalculate prev_calculated=0
2019.04.30 14:35:55.974 ChartSetSymbolPeriod (EURUSD,H1) 132011222733257293: OnCalculate prev_calculated=0
В Market Watch есть только EURUSD, 2 графика открыты и 1 индикатор на каждом графике (этот индикатор ничего не делает, кроме обновления и регистрации). См. Выше сообщение для кода.
Можно ли его улучшить или предоставить нам способ обновить график / индикатор без задержки?
Build 2007/2025.Да, я запутал - признаю, просто для себя сообщения делал и вижу, что оно от индикатора - изначально я думал, что проблема в советнике и искал параллельно проблему, поэтому и упоминание хэндла.
Про уверенность в переменной symb имя текущего символа - задается параметрами функции
Код я положил Вам в личку. К сожалению, качество кода оценить правильно не могу - это порождение фриланса в целом.
Вы сказали, что доступ идёт к своему символу. В качестве периода выступает 0. То есть, доступ к своему символу-периоду. Как же Вы в этом случае 4401-то получили?
это я к тому, что Вы должны были подготовить ясный и понятный код, минимальный, чтобы проиллюстрировать проблему.
А про 4401 на своём символе-периоде я не верю
PS https://youtu.be/GJS73dgL-QE