Новый бар в мултивалютном советнике. - страница 5

 
Konstantin Nikitin:
Я на своем сделал выбор как работать, по тику, или таймеру, и на таймере выборка по секундам, или миллисекундам. И ни заморачиваю себе голову с отслеживаем появления новых баров по символам. Обработка их идет допустим на миллисекундном с интервалом 250, то есть приблизительно 4 раза в секунду. Ну до кучи в таймер загнал BOOL переменную. которая отслеживает завершение предыдущего цикла, чтоб не было наложения обработки.
Хоть просили без кодов, но покажу примерную обработку.

Константин, извини, но даже без кода это не интересует.

Стратегия построена на открытии недели только одна сделка... Зачем мне работа по тику с отслеживанием завершения предыдущего цикла?

 
Alexey Viktorov:

В заголовке окна "Обзор рынка" разве указывается время последнего тика по всем парам из обзора рынка??? почему-то мне кажется, что время последней котировки активного графика. Но если по всем парам, то это ещё хуже. Для тех пар тики которых пришли раньше и\или более волатильные пары будут проигрывать при таком определении нового бара. Ведь новый бар определяется не просто ради спортивного интереса, а для принятия решения на открытии бара. А когда прошла секунда-две, цена может так улететь, что казалось-бы профитная сделка превращается... сделка превращается... в шорты... простите небольшая техническая неисправность.©

Тогда как вариант, если важна каждая миллисекунда. То по отдельным парам запуск по тику отдельного графика и работа чисто по нему, а общую обработку, если она ведется одним экземпляром эксперта на отдельном графике. На недельной ТС, проблем как таковое возникнуть вообще не должно.
По крайней мере я пришел к такому решению, когда возникла подобная нужда. Правда работал на 8 парах, но в терминале были запущены 9 графиков.

P.S. У меня отслеживание сделано. По причине того что эксперт постоянно следить за позициями. Ведет виртуальные стопы, и т.д., и т.п. Если не надо, можно и не отслеживать предыдущий цикл.
 
Alexey Viktorov:

В заголовке окна "Обзор рынка" разве указывается время последнего тика по всем парам из обзора рынка??? почему-то мне кажется, что время последней котировки активного графика. Но если по всем парам, то это ещё хуже. Для тех пар тики которых пришли раньше и\или более волатильные пары будут проигрывать при таком определении нового бара. Ведь новый бар определяется не просто ради спортивного интереса, а для принятия решения на открытии бара. А когда прошла секунда-две, цена может так улететь, что казалось-бы профитная сделка превращается... сделка превращается... в шорты... простите небольшая техническая неисправность.©

TimeCurrent() - Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов.

т.е. наоборот, это самое быстрое определение события "новый бар" из таймера.

По торгуемым валютам тика нового бара может и не быть, а новый бар таки уже есть.

Вариант - если значение на нолевом баре неважно, решения принимаются по завершённым барам.

 
Konstantin Nikitin:

Тогда как вариант, если важна каждая миллисекунда. То по отдельным парам запуск по тику отдельного графика и работа чисто по нему, а общую обработку, если она ведется одним экземпляром эксперта на отдельном графике. На недельной ТС, проблем как таковое возникнуть вообще не должно.
По крайней мере я пришел к такому решению, когда возникла подобная нужда. Правда работал на 8 парах, но в терминале были запущены 9 графиков.

P.S. У меня отслеживание сделано. По причине того что эксперт постоянно следить за позициями. Ведет виртуальные стопы, и т.д., и т.п. Если не надо, можно и не отслеживать предыдущий цикл.

Константин, всё уже сделано. Создание темы было вызвано криком души от собственной дури. Вчера часа 4 тестировал и не понимал почему работает не так как надо и сегодня с утра столько-же. Но если почитаешь тему, то увидишь момент просветления в мозгу. Вопрос уже решён. И на предложенный костыль, поставить по одному советнику на несколько пар, тоже был дан ответ.

 
Aleksey Lebedev:

TimeCurrent() - Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов.

т.е. наоборот, это самое быстрое определение события "новый бар" из таймера.

По торгуемым валютам тика нового бара может и не быть, а новый бар таки уже есть.

Вариант - если значение на нолевом баре неважно, решения принимаются по завершённым барам.

Значения на нулевом баре не важны, но нужны значения только-что закрытого бара. А если он ещё не закрылся, то копируя в структуру MqlRates, получим не те значения которые ожидались.
 
Alexey Viktorov:
Значения на нулевом баре не важны, но нужны значения только-что закрытого бара. А если он ещё не закрылся, то копируя в структуру MqlRates, получим не те значения которые ожидались.

Если по любому инструменту есть новый бар, то предыдущий бар "закрыт" на всех символах, значения изменится не могут.

Причина обращения: