В обзоре рынке ещё есть столбцы "Объем" "Последняя сделка " Есть подозрения, что эта функция просто возвращает .time последнего тика.
Функция SymbolInfoInteger(_Symbol,SYMBOL_TIME)возвращает как раз время последнего тика. Потому что изменение котировки влечет за собой появление нового информационного тика.
Вы хотите замерить время между приходом последней котировки и временем последнего тика. В секундах, похоже, это всегда будет 0. Следовательно, терминал все возвращает оперативно.
Функция SymbolInfoInteger(_Symbol,SYMBOL_TIME)возвращает как раз время последнего тика. Потому что изменение котировки влечет за собой появление нового информационного тика.
Вы хотите замерить время между приходом последней котировки и временем последнего тика. В секундах, похоже, это всегда будет 0. Следовательно, терминал все возвращает оперативно.
Еще раз в чем я вижу проблему.
Дано:
Локальное время и время сервера более менее синхронизированы т.е разница между .time_msc новых тиков и локальным временем несколько секунд.
В 18:00:00 по времени компа пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:57:00
В 18:00:01 по времени компа опять пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:58:30
Мне кажется это нельзя назвать оперативным.
Сейчас я ушел от локального времени компьютера и использую вместо него максимальное время последнего тика среди всех символов из обзора рынка.
Локальное время и время сервера более менее синхронизированы т.е разница между .time_msc новых тиков и локальным временем несколько секунд.
В 18:00:00 по времени компа пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:57:00
В 18:00:01 по времени компа опять пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:58:30
Мне кажется это нельзя назвать оперативным.
Сейчас я ушел от локального времени компьютера и использую вместо него максимальное время последнего тика среди всех символов из обзора рынка.
Вы понимаете, что время компа можно выставить любым? К нему нельзя привязываться. Это Вам уже говорили. Это во-первых.
Во-вторых, максимальное время последнего тика среди всех символов из обзора рынка тоже нельзя использовать. Вы хотите найти отставание времени последнего тика символа SBER (SymbolInfoTick) от времени последней котировки символа SBER (SymbolInfoInteger). Т.е. делать нужно примерно так, как написал я (примерно потому, что для большей точности нужно использовать стакан, как Вам и советовали).
В-третьих, вот это:
В 18:00:00 по времени компа пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:57:00
В 18:00:01 по времени компа опять пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:58:30
заявляется без доказательств. Если Вы считаете Ваш код доказательством - смотрите "во-вторых".
Вы понимаете, что время компа можно выставить любым? К нему нельзя привязываться. Это Вам уже говорили. Это во-первых.
К нему нельзя привязывать если вести разговоры о миллисекундах или даже секундах. Говоря о задержках в минуты вполне возможно. Я сейчас замеряю разницу не с ним, а с максимальным временем .time_msc последнего тика по всем символам из обзора рынка.
Alexey Kozitsyn:
Вы хотите найти отставание времени последнего тика символа SBER (SymbolInfoTick) от времени последней котировки символа SBER (SymbolInfoInteger).
Не хочу.
Alexey Kozitsyn:
Во-вторых, максимальное время последнего тика среди всех символов из обзора рынка тоже нельзя использовать.
Почему ? Я же не время ПОЛУчения последнего тик ( по компьютера ) , а именно .time_msc сравниваю.
Alexey Kozitsyn:
заявляется без доказательств. Если Вы считаете Ваш код доказательством - смотрите "во-вторых".
Обычно разработчики просят код для воспроизведения проблемы. Вот недавно пойманная задержка в 2 секунды.
14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) РЕКОРДная Разница между временем последенго тика по ВСЕМ символам Минус только, что полученный новый тик по символу 2057 милесекундa.
14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Получен НОВЫЙ тик по символу GAZR-3.19 time_msc= 2019.03.2014:53:11.63814:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) ХОТЯ до этого был получeн тик RTS-3.19 time_msc 2019.03.2014:53:13.69514:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Локальное время получения нового тика по символу. 2019.03.2014:53:10.27714:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Предпоследние Локальное время попытки получить новый тик по символу 2019.03.2014:53:10.259
Alexey Kozitsyn:
(примерно потому, что для большей точности нужно использовать стакан, как Вам и советовали).
Мне советовали вместо OnTimer использовать OnBookEvent. Я это реализовал. Можно в настройках выбрать место получения тиков или OnTimer или OnBookEvent. С OnBookEvent все ещё хуже он только процентов 70% событий новых тик отлавливает.
14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) РЕКОРДная Разница между временем последенго тика по ВСЕМ символам Минус только, что полученный новый тик по символу 2057 милесекундa.
14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Получен НОВЫЙ тик по символу GAZR-3.19 time_msc= 2019.03.2014:53:11.63814:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) ХОТЯ до этого был получeн тик RTS-3.19 time_msc 2019.03.2014:53:13.69514:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Локальное время получения нового тика по символу. 2019.03.2014:53:10.27714:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Предпоследние Локальное время попытки получить новый тик по символу 2019.03.2014:53:10.259
Вот только по этим строчкам, кажется, понятно, что Вы хотите. Вас интересует что-то типа межсимвольной синхронизации. Т.е. общая актуальность данных по нужным Вам инструментам.
Тут ни чем не помогу на данный момент, вопросом не занимался. Обратитесь к разработчикам.
Вот только по этим строчкам, кажется, понятно, что Вы хотите. Вас интересует что-то типа межсимвольной синхронизации. Т.е. общая актуальность данных по нужным Вам инструментам.
Тут ни чем не помогу на данный момент, вопросом не занимался. Обратитесь к разработчикам.
Алексей (не хотел участвовать, но...).
А разве это не "актуальность" (NEW_TICK) код со 2 страницы этого топика?
А разве это не "актуальность" (NEW_TICK) код со 2 страницы этого топика?
Похоже, что нет. Т.к.:
TimeTradeServer
Возвращает расчетное текущее время торгового сервера. В отличие от функции TimeCurrent(), расчет значения времени производится в клиентском терминале и зависит от настроек времени на компьютере пользователя.
Т.е. опять таки зависит от времени компьютера (чего для точности замера быть не должно).
Тут, по хорошему, конечно нужно проверить код pivomoe на корректность, и, если действительно есть косяк - обратиться к разработчикам.
Тут, по хорошему, конечно нужно проверить код pivomoe на корректность, и, если действительно есть косяк - обратиться к разработчикам.
Косяк появляется либо если в обзоре рынка десятки символов либо, если открыто несколько символов в обзоре, но есть несколько десятков вкладов в браузере opera. Разработчикам написал через личное сообщение.
Как я писал ранее проблема лечиться, достаточно большим Sleep между вызовами , для 40 символов хватает sleep(10) . Правда с ростом количества символов перекур требуется все больший.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Знаю. К чему вы это ?
К тому, что:
В обзоре рынке ещё есть столбцы "Объем" "Последняя сделка " Есть подозрения, что эта функция просто возвращает .time последнего тика.
Функция SymbolInfoInteger(_Symbol,SYMBOL_TIME) возвращает как раз время последнего тика. Потому что изменение котировки влечет за собой появление нового информационного тика.
Вы хотите замерить время между приходом последней котировки и временем последнего тика. В секундах, похоже, это всегда будет 0. Следовательно, терминал все возвращает оперативно.
К тому, что:
Функция SymbolInfoInteger(_Symbol,SYMBOL_TIME) возвращает как раз время последнего тика. Потому что изменение котировки влечет за собой появление нового информационного тика.
Вы хотите замерить время между приходом последней котировки и временем последнего тика. В секундах, похоже, это всегда будет 0. Следовательно, терминал все возвращает оперативно.
Еще раз в чем я вижу проблему.
Дано:
Локальное время и время сервера более менее синхронизированы т.е разница между .time_msc новых тиков и локальным временем несколько секунд.
В 18:00:00 по времени компа пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:57:00
В 18:00:01 по времени компа опять пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:58:30
Мне кажется это нельзя назвать оперативным.
Сейчас я ушел от локального времени компьютера и использую вместо него максимальное время последнего тика среди всех символов из обзора рынка.
Еще раз в чем я вижу проблему.
Дано:
Локальное время и время сервера более менее синхронизированы т.е разница между .time_msc новых тиков и локальным временем несколько секунд.
В 18:00:00 по времени компа пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:57:00
В 18:00:01 по времени компа опять пытаемся получить новый тик по символу SBER с помощью SymbolInfoTick, нам отдают тик со временем 17:58:30
Мне кажется это нельзя назвать оперативным.
Сейчас я ушел от локального времени компьютера и использую вместо него максимальное время последнего тика среди всех символов из обзора рынка.
Вы понимаете, что время компа можно выставить любым? К нему нельзя привязываться. Это Вам уже говорили. Это во-первых.
Во-вторых, максимальное время последнего тика среди всех символов из обзора рынка тоже нельзя использовать. Вы хотите найти отставание времени последнего тика символа SBER (SymbolInfoTick) от времени последней котировки символа SBER (SymbolInfoInteger). Т.е. делать нужно примерно так, как написал я (примерно потому, что для большей точности нужно использовать стакан, как Вам и советовали).
В-третьих, вот это:
заявляется без доказательств. Если Вы считаете Ваш код доказательством - смотрите "во-вторых".
Вы понимаете, что время компа можно выставить любым? К нему нельзя привязываться. Это Вам уже говорили. Это во-первых.
К нему нельзя привязывать если вести разговоры о миллисекундах или даже секундах. Говоря о задержках в минуты вполне возможно. Я сейчас замеряю разницу не с ним, а с максимальным временем .time_msc последнего тика по всем символам из обзора рынка.
Вы хотите найти отставание времени последнего тика символа SBER (SymbolInfoTick) от времени последней котировки символа SBER (SymbolInfoInteger).
Не хочу.
Во-вторых, максимальное время последнего тика среди всех символов из обзора рынка тоже нельзя использовать.
Почему ? Я же не время ПОЛУчения последнего тик ( по компьютера ) , а именно .time_msc сравниваю.
заявляется без доказательств. Если Вы считаете Ваш код доказательством - смотрите "во-вторых".
Обычно разработчики просят код для воспроизведения проблемы. Вот недавно пойманная задержка в 2 секунды.
(примерно потому, что для большей точности нужно использовать стакан, как Вам и советовали).
pivomoe:
Вот только по этим строчкам, кажется, понятно, что Вы хотите. Вас интересует что-то типа межсимвольной синхронизации. Т.е. общая актуальность данных по нужным Вам инструментам.
Тут ни чем не помогу на данный момент, вопросом не занимался. Обратитесь к разработчикам.
Вот только по этим строчкам, кажется, понятно, что Вы хотите. Вас интересует что-то типа межсимвольной синхронизации. Т.е. общая актуальность данных по нужным Вам инструментам.
Тут ни чем не помогу на данный момент, вопросом не занимался. Обратитесь к разработчикам.
Алексей (не хотел участвовать, но...).
А разве это не "актуальность" (NEW_TICK) код со 2 страницы этого топика?
Добавлено
При CUR_TICK можно еще сделать проверки, что это тот же тик, что и был или
в новом пакете тиков оказался не переданный в предыдущем пакете тик.
Алексей (не хотел участвовать, но...).
А разве это не "актуальность" (NEW_TICK) код со 2 страницы этого топика?
Похоже, что нет. Т.к.:
TimeTradeServer
Возвращает расчетное текущее время торгового сервера. В отличие от функции TimeCurrent(), расчет значения времени производится в клиентском терминале и зависит от настроек времени на компьютере пользователя.
Т.е. опять таки зависит от времени компьютера (чего для точности замера быть не должно).
Тут, по хорошему, конечно нужно проверить код pivomoe на корректность, и, если действительно есть косяк - обратиться к разработчикам.
Проверку, похоже, нужно через TimeGMTOffset делать. Позже набросаю пример.
Похоже, что нет. Т.к.:
Вы посмотрите внимательно код!
TimeTradeServer() берётся только для определения дня и ВСЁ (эта проверка сделана "на всякий случай")!
TimeTradeServer() можно вообще не делать!
Добавлено
Повторюсь
"При CUR_TICK можно еще сделать проверки, что это тот же тик, что и был или
в новом пакете тиков оказался не переданный в предыдущем пакете тик, и пакет состоит из 1 тика("старого")"
Тут, по хорошему, конечно нужно проверить код pivomoe на корректность, и, если действительно есть косяк - обратиться к разработчикам.
Косяк появляется либо если в обзоре рынка десятки символов либо, если открыто несколько символов в обзоре, но есть несколько десятков вкладов в браузере opera. Разработчикам написал через личное сообщение.
Как я писал ранее проблема лечиться, достаточно большим Sleep между вызовами , для 40 символов хватает sleep(10) . Правда с ростом количества символов перекур требуется все больший.