А в чем проблема то в онлайн? Может быть, дело в том, что два и более баров имеют одно и то же время открытия? Потому как в других случаях приведенный код работает корректно.
Другой вариант выявления нового бара - ориентироваться на количество баров:
По количеству баров ситуация точно такая же, видимо придется пробовать брать данные из hst.
Была такая мысль, но все-таки хочется видеть наглядно что происходит.
Ну, так и оставьте автономный график, он же не помешает. Более того, какое-то время желательно сравнивать значения характерных точек на графике с расчетными в советнике. Отладчика нет, а проверять надо. Куда же денешься.
По количеству баров ситуация точно такая же, видимо придется пробовать брать данные из hst.
Вам что надо от автономного графика? Если только момент появления нового "кирпича", то нет ничего проще: - пишете примитивный индикатор, который ловит этот момент и выставляет значение в "Глобальную переменную терминала". - навешиваете этот индюк на автономный график. И все на этом. Глобальные переменные работают на любых графиках.
Можно в индюк добавить еще OPEN и CLOSE предыдущего кирпича. Тоже в глобальных переменных.
Сам же советник сидит на обычном графике и, время от времени, проверяет эти "Глобальные переменные терминала".
По количеству баров ситуация точно такая же, видимо придется пробовать брать данные из hst.
К сожалению, так и не могу понять, почему у Вас не работает ни один из вариантов. У себя проверил - все работает отлично. Видимо, есть какой-то нюанс в алгоритме запуска системы, который Вы не учли. Или, наоборот, у Вас какая-то задача, которая мною упускается из виду.
prorab: Игорь, я когда-то тоже пытался поставить советник на автономный график, не получилось. Если не трудно, покажите полный текст вашего примера, который работает отлично.
Вот в чем дело - необходимо поставить советник на автономный график. Я как то упустил это в контексте разговора. Тогда дело не в самом коде программы, а в том, что на автономном графике советник не получает тики. Это решается добавлением в стандартный скрипт PeriodConverter (или в ту программу, которая создает автономный график) следующего кода вслед за обновлением графика:
Вот в чем дело - необходимо поставить советник на автономный график. Я как то упустил это в контексте разговора. Тогда дело не в самом коде программы, а в том, что на автономном графике советник не получает тики. Это решается добавлением в стандартный скрипт PeriodConverter (или в ту программу, которая создает автономный график) следующего кода вслед за обновлением графика:
где hwnd - дескриптор окна автономного графика,
mt4Message:
В итоге получаем такой код обновленного стандартного скрипта.
Спасибо, Игорь!
Я уже и сам понял, что вы автономный график упустили из виду. Потому и пост удалил, понял, что халявы нет и не ожидается.
Я уже и сам понял, что вы автономный график упустили из виду. Потому и пост удалил, понял, что халявы нет и не ожидается.
Не судьба, увы.
Нет, автономный график я из виду не упускал. Я про советник не понял. Но решение есть и оно работает (проверьте у себя - коды приложены). Поэтому все равно не понимаю, в чем проблема.
Определить появление нового бара через время открытия бара нельзя только в том случае, когда несколько свечей имеют одинаковое время открытия. Но в таком случае помогает функция подсчета баров.
Нет, автономный график я из виду не упускал. Я про советник не понял. Но решение есть и оно работает (проверьте у себя - коды приложены). Поэтому все равно не понимаю, в чем проблема.
Определить появление нового бара через время открытия бара нельзя только в том случае, когда несколько свечей имеют одинаковое время открытия. Но в таком случае помогает функция подсчета баров.
Я этот RenkoLive посмотрел, время там есть, для быстрых тиков просто инкрементом добавляется ++. Для тех, которые строятся по истории, берется из бара.
prorab: Я этот RenkoLive посмотрел, время там есть, для быстрых тиков просто инкрементом добавляется ++. Для тех, которые строятся по истории, берется из бара.
Дело не в самом индикаторе. Ведь он просто создает автономный график. Проблема топикстартера в том (я так ее понимаю), что его советник, повешенный на автономный график, некорректно работает. Хотя, по идее, без поступления тиков эксперта он вообще не должен работать. Решается это тремя способами:
1. Зациклить советник на автономном графике.
2. Обеспечить генерацию тиков советника на автономном графике (указанный мною вариант).
3. Повесить советник на онлайн-график, но запрашивать данные с автономного графика.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
А в чем проблема то в онлайн? Может быть, дело в том, что два и более баров имеют одно и то же время открытия? Потому как в других случаях приведенный код работает корректно.
Другой вариант выявления нового бара - ориентироваться на количество баров:
По количеству баров ситуация точно такая же, видимо придется пробовать брать данные из hst.
Была такая мысль, но все-таки хочется видеть наглядно что происходит.
Более того, какое-то время желательно сравнивать значения характерных точек на графике с расчетными в советнике.
Отладчика нет, а проверять надо. Куда же денешься.
По количеству баров ситуация точно такая же, видимо придется пробовать брать данные из hst.
Если только момент появления нового "кирпича", то нет ничего проще:
- пишете примитивный индикатор, который ловит этот момент и выставляет значение в "Глобальную переменную терминала".
- навешиваете этот индюк на автономный график. И все на этом. Глобальные переменные работают на любых графиках.
Можно в индюк добавить еще OPEN и CLOSE предыдущего кирпича. Тоже в глобальных переменных.
Сам же советник сидит на обычном графике и, время от времени, проверяет эти "Глобальные переменные терминала".
По количеству баров ситуация точно такая же, видимо придется пробовать брать данные из hst.
Игорь, я когда-то тоже пытался поставить советник на автономный график, не получилось.
Если не трудно, покажите полный текст вашего примера, который работает отлично.
Вот в чем дело - необходимо поставить советник на автономный график. Я как то упустил это в контексте разговора. Тогда дело не в самом коде программы, а в том, что на автономном графике советник не получает тики. Это решается добавлением в стандартный скрипт PeriodConverter (или в ту программу, которая создает автономный график) следующего кода вслед за обновлением графика:
где hwnd - дескриптор окна автономного графика,
mt4Message:
В итоге получаем такой код обновленного стандартного скрипта.
Вот в чем дело - необходимо поставить советник на автономный график. Я как то упустил это в контексте разговора. Тогда дело не в самом коде программы, а в том, что на автономном графике советник не получает тики. Это решается добавлением в стандартный скрипт PeriodConverter (или в ту программу, которая создает автономный график) следующего кода вслед за обновлением графика:
где hwnd - дескриптор окна автономного графика,
mt4Message:
В итоге получаем такой код обновленного стандартного скрипта.
Спасибо, Игорь!
Я уже и сам понял, что вы автономный график упустили из виду. Потому и пост удалил, понял, что халявы нет и не ожидается.
Не судьба, увы.
PS. про SendMessageW() не слышал, посмотрю.
Спасибо, Игорь!
Я уже и сам понял, что вы автономный график упустили из виду. Потому и пост удалил, понял, что халявы нет и не ожидается.
Не судьба, увы.
Нет, автономный график я из виду не упускал. Я про советник не понял. Но решение есть и оно работает (проверьте у себя - коды приложены). Поэтому все равно не понимаю, в чем проблема.
Определить появление нового бара через время открытия бара нельзя только в том случае, когда несколько свечей имеют одинаковое время открытия. Но в таком случае помогает функция подсчета баров.
Нет, автономный график я из виду не упускал. Я про советник не понял. Но решение есть и оно работает (проверьте у себя - коды приложены). Поэтому все равно не понимаю, в чем проблема.
Определить появление нового бара через время открытия бара нельзя только в том случае, когда несколько свечей имеют одинаковое время открытия. Но в таком случае помогает функция подсчета баров.
Я этот RenkoLive посмотрел, время там есть, для быстрых тиков просто инкрементом добавляется ++. Для тех, которые строятся по истории, берется из бара.
Дело не в самом индикаторе. Ведь он просто создает автономный график. Проблема топикстартера в том (я так ее понимаю), что его советник, повешенный на автономный график, некорректно работает. Хотя, по идее, без поступления тиков эксперта он вообще не должен работать. Решается это тремя способами:
1. Зациклить советник на автономном графике.
2. Обеспечить генерацию тиков советника на автономном графике (указанный мною вариант).
3. Повесить советник на онлайн-график, но запрашивать данные с автономного графика.
Спасибо, Игорь, пункт 2 меня заинтересовал.
Дальше попробую разобраться сам.