В какой момент считаются индикаторы загруженные по icustom ?

 

Есть советник на  прикрепленный , к символу таймфрейме , положим m5

В oninit советника :

handle_htf_Sys=iCustom(NULL,PERIOD_M15..

handle_mtf_Sys=iCustom(NULL,PERIOD_M3..

handle_etf_Sys=iCustom(NULL,PERIOD_M1..


Когда считаются  эти  индикаторы? 

Положим советник к ним долго не обращается, возможно но ли что когда он к ним обратится эти индикаторы будут рассчитываться на всех барах?

Кстати сколько баров будут считать эти индикаторы?

 
Max B:

Когда считаются  эти  индикаторы? 

Положим советник к ним долго не обращается, возможно но ли что когда он к ним обратится эти индикаторы будут рассчитываться на всех барах?

Кстати сколько баров будут считать эти индикаторы?

Зависит от алгоритма;

На каждом тике, на каждом баре, или раз в год)

Зависит от параметров индикатора)

Опять же - параметры индикатора)

handle_htf_Sys=iCustom(NULL,PERIOD_M15??????????????????????

Более точно невозможно ответить)

 
VVT:

Зависит от алгоритма;

На каждом тике, на каждом баре, или раз в год)

Зависит от параметров индикатора)

Опять же - параметры индикатора)

Более точно невозможно ответить)

Алгоритма индикатора?

 Положим он стандартный, работает на OnCalculate . Он будет считаться каждый тик, даже если эксперт к нему не обращается?

Я спрашиваю не просто так. Например я пишу эксперт, туда засунул индикатор, который обычно довольно сильно тормозит (когда загружен как индикатор). Внутри эксперта даже их 3 и тормозов не заметно  - правда я ничего не делаю в эскперте кроме как инициализации хэндла.  Нигде не могу найти описание о как именно вызывается индикатор загруженный в эскперт

 
Max B:

Алгоритма индикатора?

 Положим он стандартный, работает на OnCalculate . Он будет считаться каждый тик, даже если эксперт к нему не обращается?

Я спрашиваю не просто так. Например я пишу эксперт, туда засунул индикатор, который обычно довольно сильно тормозит (когда загружен как индикатор). Внутри эксперта даже их 3 и тормозов не заметно  - правда я ничего не делаю в эскперте кроме как инициализации хэндла.  Нигде не могу найти описание о как именно вызывается индикатор загруженный в эскперт

Алгоритм эксперта, как часто обращается к хэндлу?

Большинство индикаторов работают на OnCalculate, забудьте про индикатор и его параметры, создав хэндл советник управляет параметрами и получаемыми результатами индикатора, всё в руках советника)

 
Max B:

Кстати сколько баров будут считать эти индикаторы?

Столько, сколько заложено в алгоритме. Если заложено считать все бары, то будет считать все бары. Зависит только от индикатора.

 
VVT:

Алгоритм эксперта, как часто обращается к хэндлу?

Большинство индикаторов работают на OnCalculate, забудьте про индикатор и его параметры, создав хэндл советник управляет параметрами и получаемыми результатами индикатора, всё в руках советника)

Для теста Эксперт обращается по таймеру. Я пытаюсь разобраться  когда он обратиться, какие данные будут  в индикаторе? OnCalculate работает каждый тик если индикатор на графике. Но когда он вызывается из советника тут мне кажется что-то другое. Поскольку как уже сказал - засунул несколько тяжелый индикаторов в советник (пустой советник) и не тормозит, тогда как если индикаторы добавить на график, то тормоза ( из-за вычислений). 


Ihor Herasko Столько, сколько заложено в алгоритме. Если заложено считать все бары, то будет считать все бары. Зависит только от индикатора.

как я понимаю индикаторы пляшут от rates_total, которые зависят от количества баров на графике. Если индикатор запущен из эксперта с кастом таймфрейм,  то откуда он бары  берёт? ( Пример индикатор таймрейм m5 ,   а эксперт m15)

 
Max B:

///

1. Когда считаются  эти  индикаторы? 

2. Положим советник к ним долго не обращается, возможно но ли что когда он к ним обратится эти индикаторы будут рассчитываться на всех барах?

3. Кстати сколько баров будут считать эти индикаторы?

1. Первый раз рассчитывается при вызове iCustom().

2. Именно так и будет. Желательно хотя бы раз за бар обращаться к индикатору.

3. Как индикатор написан, так и будет. 

 
Max B:

Если индикатор запущен из эксперта с кастом таймфрейм,  то откуда он бары  берёт? ( Пример индикатор таймрейм m5 ,   а эксперт m15)

Ремарка: М15 - не пользовательский ТФ, а стандартный. 

Если ТФ индикатора отличается от текущего, то используется виртуальный график заданного ТФ.

На МТ4 хорошо была видна такая ситуация. Текущий график - Н1. Индикатор, отображающий данные при помощи графических объектов, запускается здесь же, но на данных графика Н4. Пока нет такого графика того же символа, индикатор не виден. Если открыть график Н4 для того же символа, то индикатор отобразит свои данные.

P. S. Странно, почему не возникает вопрос, откуда советник берет данные, если работает на Н1 и берет данные с ТФ Н4?

 
Ihor Herasko:

Если ТФ индикатора отличается от текущего, то используется виртуальный график заданного ТФ.

На МТ4 хорошо была видна такая ситуация. Текущий график - Н1. Индикатор, отображающий данные при помощи графических объектов, запускается здесь же, но на данных графика Н4. Пока нет такого графика того же символа, индикатор не виден. Если открыть график Н4 для того же символа, то индикатор отобразит свои данные.

P. S. Странно, почему не возникает вопрос, откуда советник берет данные, если работает на Н1 и берет данные с ТФ Н4?

handle_htf_Sys=iCustom(NULL,PERIOD_M15,"индикатор",inpPeriod,inpSlowing,inpSmooth
handle_htf_Sys=iCustom(NULL,PERIOD_CURRENT,"индикатор",0,0,0

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

 
Max B:

Для теста Эксперт обращается по таймеру. Я пытаюсь разобраться  когда он обратиться, какие данные будут  в индикаторе? OnCalculate работает каждый тик если индикатор на графике. Но когда он вызывается из советника тут мне кажется что-то другое. Поскольку как уже сказал - засунул несколько тяжелый индикаторов в советник (пустой советник) и не тормозит, тогда как если индикаторы добавить на график, то тормоза ( из-за вычислений). 

В вопросе есть ответ; если к хэндлу обращаться по таймеру то перерасчёт будет в момент когда таймер "скажет", всё остальное время индикатор не используется советником и если индикатор не висит на окне то тормозов не будет.

Индикаторы "тормозят" по нескольким причинам;

Большой объём расчёта индикатора,

Видео карта не справляется с количеством проектируемых объектов на графике,

Решение: более мощный комп или упрощение (сокращение) индикатора

 
Всем огромное спасибо за ответы- стало гораздо лучше понятна механика работы по icustom и когда он вызывается. Единственно что осталось открытым - сколько всё таки баров будет в наличии  у индикатора загруженного через хэндл? Лимит терминала maxbars?  История всего символа из hcc файлов?
Причина обращения: