Сервисдеск. Жалобы, предложения. - страница 5

 
Alexey Kozitsyn:
Вот про это. Как я понимаю, это про индикаторы на mql5? По Вашим словам получается, что если индикатор вызывает другой индикатор, то отрисовки в оффлайне не будет? Или сколько уровней вложения должно быть, чтобы повторить описанную Вами проблему?

Глубоко я не исследовал, сейчас говорю по логике: 

- у меня стоит проверка перед началом построения индикатора в OnCalculate - построены ли все индикаторы, которые необходимы для корректного построения этого индикатора. если нет - выход из цикла, потому что ждать в том же запуске OnCalculate нельзя (что нельзя ждать факт - подтверждено Ренатом) из этого следует, что этот индикатор должен выйти из цикла и снова ждать обновления, правильно? и если там несколько таких уровней вложенности, то столько раз и нужно будет пользователю вызывать из меню графика эту опцию, это если допустить, что каждый раз индикаторы между соседними вызовами успевают построиться (а бывает что они далеко не мгновенно строятся, особенно мультивалютные и мультипериодные).

- то что в индикаторах, вызванных через iCustom не действуют OnTimer и OnChartEvent - тоже факт, подтверждено модераторами в соседней ветке и я сам проверял.

 
Ilya Malev:

Глубоко я не исследовал, сейчас говорю по логике:

- у меня стоит проверка перед началом построения индикатора в OnCalculate - построены ли все индикаторы, которые необходимы для корректного построения этого индикатора. если нет - выход из цикла, потому что ждать в той же сессии OnCalculate нельзя (что нельзя ждать факт - подтверждено Ренатом) из этого следует, что этот индикатор должен выйти из цикла и снова ждать обновления, правильно? и если там несколько таких уровней вложенности, то столько раз и нужно будет пользователю вызывать из меню графика эту опцию, это если допустить, что каждый раз индикаторы между соседними вызовами успевают построиться (а бывает что они довольно долго строятся, особенно мультивалютные и мультипериодные).

- то что в индикаторах, вызванных через iCustom не действуют OnTimer и OnChartEvent - тоже факт, подтверждено модераторами в соседней ветке и я сам проверял.

Хорошо, а как Вы решили проблему таких построений?
 
Alexey Kozitsyn:
Хорошо, а как Вы решили проблему таких построений?
У меня был набор взаимосвязанных сложных индикаторов в МТ4, который нужно было перенести в МТ5. Я решил сделать систему классов чтобы включать индикаторы друг в друга и рассчитывать их и без iCustom и без индикаторных буферов.
 
Ilya Malev:
У меня был набор взаимосвязанных сложных индикаторов в МТ4, который нужно было перенести в МТ5. Я решил сделать систему классов чтобы включать индикаторы друг в друга и рассчитывать их и без iCustom и без индикаторных буферов.
Радикально. А по поводу добавления во вложенные индикаторы доступ к таймеру что-нибудь говорили?
 
Alexey Kozitsyn:
Радикально. А по поводу добавления во вложенные индикаторы доступ к таймеру что-нибудь говорили?

Я особо не спрашивал про подобные планы, потому что ждать возможности все равно не было.

И тогда уж сразу добавили бы возможность ожидания типа Sleep() в индикаторах, чтобы можно было как в скриптах дождаться построения используемых данных не выходя из OnCalculate. Кстати таймсерий это тоже касается - подгрузить необходимые данные без прихода новых тиков индикатор не сможет.

 
И это, как я понимаю, даже встраиванием друг в друга не решишь - в выходные, если не хочется жать на Обновить, придется сначала загружать скриптом историю по всем нужным парам/ТФ, и только потом запускать индикатор.
 
Ilya Malev:

Я особо не спрашивал про подобные планы, потому что ждать возможности все равно нет.

И тогда уж сразу добавили бы возможность ожидания типа Sleep() в индикаторах, чтобы можно было как в скриптах дождаться построения используемых данных не выходя из OnCalculate. Кстати таймсерий это тоже касается - подгрузить необходимые данные без прихода новых тиков индикатор не сможет.

Sleep() точно бесполезно просить - один поток на все индикаторы. А переделывать эту систему вряд ли станут. Да и если реализовать таймер - необходимость слипа отпадет.
 
Ilya Malev:
И это, как я понимаю, даже встраиванием друг в друга не решишь - в выходные, если не хочется жать на Обновить, придется сначала загружать скриптом историю по всем нужным парам/ТФ, и только потом запускать индикатор.
Только что пришла идея в голову. А если реализовать следующее. Каким-либо способом сообщить основному индикатору то, какие данные нужно получить, получить эти данные в таймере, а далее уже спокойно рассчитать все вложенные индикаторы?
 
Alexey Kozitsyn:
Sleep() точно бесполезно просить - один поток на все индикаторы. А переделывать эту систему вряд ли станут. Да и если реализовать таймер - необходимость слипа отпадет.
Я бы не сказал, что отпадает, но iCustom и вообще индикаторной системой без плясок с бубном пользоваться будет можно. 
 
Alexey Kozitsyn:
Только что пришла идея в голову. А если реализовать следующее. Каким-либо способом сообщить основному индикатору то, какие данные нужно получить, получить эти данные в таймере, а далее уже спокойно рассчитать все вложенные индикаторы?
В один цикл все равно не выйдет, раз у всех индикаторов один поток, хоть с таймером, хоть без таймера. Или я не понял Вашу задумку.
Причина обращения: