[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 196

 

SergNF:

init() выполняется единственный раз не зависимо от того, есть тики или нет. Более того, при выполнении init (если функция тяжелая) могут быть пропущены тики. А вот суть функции start как раз и выполняться при поступлении нового тика.
ну и что? что ты хочешь сказать этим?) чтоб я использовал start по назначению? я ясно изложил что мне нужно - дождаться тика в init и запомнить его время, объяснил почему именно в init. и твой совет не считаю уместным
 
eddy:
ну и что? что ты хочешь сказать этим?) чтоб я использовал start по назначению? я ясно изложил что мне нужно - дождаться тика в init и запомнить его время, объяснил почему именно в init. и твой совет не считаю уместным

Извините. Ждите.
 
eddy:
ну и что? что ты хочешь сказать этим?) чтоб я использовал start по назначению? я ясно изложил что мне нужно - дождаться тика в init и запомнить его время, объяснил почему именно в init. и твой совет не считаю уместным

???

 
DhP: ???
что? хочу первый тик обработать в start() остальные в init()
 
eddy:
ну и что? что ты хочешь сказать этим?) чтоб я использовал start по назначению? я ясно изложил что мне нужно - дождаться тика в init и запомнить его время, объяснил почему именно в init. и твой совет не считаю уместным
Дождаться тика в init() не получится. Так сделано, что init() и deinit() не умеют ждать. Всё, что ждёт в этих функциях, игнорируется. На всё отведено 2.5 секунды. В документации написано.
 
спс
 
eddy:
что? хочу первый тик обработать в start() остальные в init()

Здесь, на форуме, мне кажется, Вы не найдете ответа.

Как я понимаю, у Вас "свой путь", неведомый доселе...

 
eddy:
ну и что? что ты хочешь сказать этим?) чтоб я использовал start по назначению? я ясно изложил что мне нужно - дождаться тика в init и запомнить его время, объяснил почему именно в init. и твой совет не считаю уместным

Вам пытаются объяснить, что внутри функции init() приход тика никак не идентифицируется, поэтому дожидаться в ней прихода тика можно до смерти.

Ваша задача решается элементарно внутри функции start(). Вводите буловскую переменную, инициируете ее значением true, в самом начале функции start() ставите if() от этой переменной, а внутри него запоминаете все, что Вам нужно и изменяете значение переменной на false. Этот условный оператор будет исполняться только один раз, при первом запуске start(), то есть на первом тике работы вашего индикатора или эксперта.

eddy:
хочу первый тик обработать в start() остальные в init()

А это, простите, вообще фантазия. Возврата из start() в init() вообще быть не может.

Но интересно узнать к чему это нужен такой изврат ?

 
eddy:
что? хочу первый тик обработать в start() остальные в init()
имел ввиду первый в init
 
Yurixx:

Вам пытаются объяснить, что внутри функции init() приход тика никак не идентифицируется

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