Karputov Vladimir: Так я уже две страницу прошу: дайте максимально короткий пример (уточняю, на всякий случай, что "пример" - это *.mq5 файл в количестве один штук - то есть совсем один) который показывает проблему.
Не, ну зато Вам дали целую гифку... А я вначале подумал, что монитор помирает...
Во вложении исходник, формирующий два последующих текстовых файла. Скрин части этих файлов выше, это пример разницы и во флагах и в объемах.
Я же говорил - упростить нужно. Вот индикатор: выводит одной строкой флаги их двух структур MqlTick (одна структура заполняется через CopyTicks, вторая через SymbolInfoTick). Дополнительно идёт сравнение флагов этих двух структур - в случае если флаг равен нулю, то сразу Alarm.
результат работы вашего индикатора на моем терминале.
Я не совсем понял посылку вашего последнего сообщения, то ли мне переделать нужно, то ли вы показали как надо было сделать и сделали сами. Что ваш метод, что мой показывает различие в структуре принятых разными способами тиков. К чему мы пришли?
результат работы вашего индикатора на моем терминале.
Я не совсем понял посылку вашего последнего сообщения, то ли мне переделать нужно, то ли вы показали как надо было сделать и сделали сами. Что ваш метод, что мой показывает различие в структуре принятых разными способами тиков. К чему мы пришли?
Вы на каком торговом сервере и на каком инструменте тестируете? У Вас явно приходят флаги с "0" - это косяк торгового сервера.
Допустим, с флагами косяк торгового сервера. Как быть с объемами? Пару постов выше я присылал скрин и два текстовых файла, где явно видно, что и флаги не только бывают нулевые, но на одних и тех же тиках полученных разными способами они разные это раз, и разные объемы - это два. Если ошибка при передаче с сервера и SymbolInfoTick получает неверную информацию, то на основе каких данных берет тики функция CopyTicks с другим объемом? И чему верить?
Два прикрепленных файла - такими же способами собранные тики, но по паре евро доллар у брокера FiboGroup. Посмотрите, там хотя нулей и нет, но с флагами чехарда
Ниже скрин и файлы тиковой истории сервера MetaQuotes-Demo. Флаги у одних и тех же тиков полученных разными способами разные.
как итог: на двух разных торговых форекс-серверах разных компаний один и тот же тик, полученный через CopyTicks и через SymbolInfoTick имеют разные флаги, на биржевом торговом сервере наряду с этим же транслируются еще и разные объемы.
Ниже скрин и файлы тиковой истории сервера MetaQuotes-Demo. Флаги у одних и тех же тиков полученных разными способами разные.
как итог: на двух разных торговых форекс-серверах разных компаний один и тот же тик, полученный через CopyTicks и через SymbolInfoTick имеют разные флаги, на биржевом торговом сервере наряду с этим же транслируются еще и разные объемы.
Это они у Вас разные на MetaQuotes-Demo - так как, повторюсь ещё раз, пример должен максимально простым. У меня за сегодня на MetaQuotes-Demo флаги одинаковые.
попробуйте в вашем индикаторе задать глубину запроса тиков равную двум и в отладчике посмотреть следующие значения:
элемент с индексом 0 массива tick_array показывает историю, то есть второй запрошенный тик. И если смотреть как меняются значения на каждой итерации - три из них меняются синхронно и показывают текущее значение флага, и это же значение на следующем шаге прогона должно показываться в tick_array[0]. Как оно должно быть не происходит. Или функция CopyTicks корректно работает с глубиной истории не больше 1 тик?
Так я уже две страницу прошу: дайте максимально короткий пример (уточняю, на всякий случай, что "пример" - это *.mq5 файл в количестве один штук - то есть совсем один) который показывает проблему.
Во вложении исходник, формирующий два последующих текстовых файла. Скрин части этих файлов выше, это пример разницы и во флагах и в объемах.
Во вложении исходник, формирующий два последующих текстовых файла. Скрин части этих файлов выше, это пример разницы и во флагах и в объемах.
результат работы вашего индикатора на моем терминале.
Я не совсем понял посылку вашего последнего сообщения, то ли мне переделать нужно, то ли вы показали как надо было сделать и сделали сами. Что ваш метод, что мой показывает различие в структуре принятых разными способами тиков. К чему мы пришли?
результат работы вашего индикатора на моем терминале.
Я не совсем понял посылку вашего последнего сообщения, то ли мне переделать нужно, то ли вы показали как надо было сделать и сделали сами. Что ваш метод, что мой показывает различие в структуре принятых разными способами тиков. К чему мы пришли?
Допустим, с флагами косяк торгового сервера. Как быть с объемами? Пару постов выше я присылал скрин и два текстовых файла, где явно видно, что и флаги не только бывают нулевые, но на одних и тех же тиках полученных разными способами они разные это раз, и разные объемы - это два. Если ошибка при передаче с сервера и SymbolInfoTick получает неверную информацию, то на основе каких данных берет тики функция CopyTicks с другим объемом? И чему верить?
Ниже скрин и файлы тиковой истории сервера MetaQuotes-Demo. Флаги у одних и тех же тиков полученных разными способами разные.
как итог: на двух разных торговых форекс-серверах разных компаний один и тот же тик, полученный через CopyTicks и через SymbolInfoTick имеют разные флаги, на биржевом торговом сервере наряду с этим же транслируются еще и разные объемы.
Ниже скрин и файлы тиковой истории сервера MetaQuotes-Demo. Флаги у одних и тех же тиков полученных разными способами разные.
как итог: на двух разных торговых форекс-серверах разных компаний один и тот же тик, полученный через CopyTicks и через SymbolInfoTick имеют разные флаги, на биржевом торговом сервере наряду с этим же транслируются еще и разные объемы.
попробуйте в вашем индикаторе задать глубину запроса тиков равную двум и в отладчике посмотреть следующие значения:
элемент с индексом 0 массива tick_array показывает историю, то есть второй запрошенный тик. И если смотреть как меняются значения на каждой итерации - три из них меняются синхронно и показывают текущее значение флага, и это же значение на следующем шаге прогона должно показываться в tick_array[0]. Как оно должно быть не происходит. Или функция CopyTicks корректно работает с глубиной истории не больше 1 тик?