Почему не рисует индикатор? - страница 2

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

Да, в init() не все работает. Но есть выход. Для примера, я объявляю на глобальном уровне переменную bool FirstStart. В init() ей присваивается значение true. 

В start() запускается обработчик:

if ( FirstStart )
{
......
FirstStart  = false;
}
 
Mislaid:

Да, в init() не все работает. Но есть выход. Для примера, я объявляю на глобальном уровне переменную bool FirstStart. В init() ей присваивается значение true. 

В start() запускается обработчик:

Это хвантазии ТС по поводу проблем получения цен из init() - я не поленился и проверил, а не поленившись глянуть в код "индикатора" - ничего не понял: логика какая-то "левая" (за циклом перебора истории проверяются какие-то условия и "заполняются" флаги, а затем на основании этих флагов, заполняется индикаторный буфер - оригинально), я уже молчу про синтаксические ошибки (особенно в варианте с принтовкой).
 
TarasBY:
Это хвантазии ТС по поводу проблем получения цен из init() - я не поленился и проверил, а не поленившись глянуть в код "индикатора" - ничего не понял: логика какая-то "левая" (за циклом перебора истории проверяются какие-то условия и "заполняются" флаги, а затем на основании этих флагов, заполняется индикаторный буфер - оригинально), я уже молчу про синтаксические ошибки (особенно в варианте с принтовкой).
Логику никто не обсуждает. ТС предложен способ самому разобраться со своими проблемами.
 
TarasBY:
Это хвантазии ТС по поводу проблем получения цен из init() - я не поленился и проверил, а не поленившись глянуть в код "индикатора" - ничего не понял: логика какая-то "левая" (за циклом перебора истории проверяются какие-то условия и "заполняются" флаги, а затем на основании этих флагов, заполняется индикаторный буфер - оригинально), я уже молчу про синтаксические ошибки (особенно в варианте с принтовкой).
С синтаксическими ошибками и флагами - принимается. Да, и логика действительно страдает. Надеюсь с опытом и логика заработает
 
GaNDarM:

С синтаксическими ошибками и флагами - принимается. Да, и логика действительно страдает. Надеюсь с опытом и логика заработает
...если не останавливаться, то ОБЯЗАТЕЛЬНО заработает (куда она денется?)!!!
 
GaNDarM:

Да, с переменной Aver_Bars накосячил. Теперь изменил ее значение на 0.050. 


Так изменили ?
int Aver_Bars = 0.0050 ;) ?

 

GaNDarM:

 Но почему-то в init() переменным присваивается нуль. Ведь ф-ция init() запускается при присоединении к окну финансового инструмента 1 раз. И по моей задумке переменным UpL и DownL  должно присвоиться единоразово значение Ask и Bid. Не понимаю, откуда взялся нуль? 

 

 Потому, что на этапе выполнения функции init() Вам не гарантирована загрузка данных финансового инструмента.

Вы не хотите сначала почитать руководство (на страничке вверху масса полезных ссылок), а не фантазировать ?

 
VladislavVG:

Так изменили ?
int Aver_Bars = 0.0050 ;) ?

 

 

 Потому, что на этапе выполнения функции init() Вам не гарантирована загрузка данных финансового инструмента.

Вы не хотите сначала почитать руководство (на страничке вверху масса полезных ссылок), а не фантазировать ?

 


Нет изменил doule  Aver_Bars = 0.0050 ;)

Видимо, вопрос с выполнением функции init () я упустил. Спасибо за наводку. 

 
VladislavVG:

 Потому, что на этапе выполнения функции init() Вам не гарантирована загрузка данных финансового инструмента.

Вы не хотите сначала почитать руководство (на страничке вверху масса полезных ссылок), а не фантазировать ?

 

Только что посмотрел учебник: вот все, что написана про эту ф-цию:

Специальная функция init().


Собственным свойством специальной функции init() является её исполнение при запуске (инициализации) программы. Если в программе есть описание специальной функции init(), то она будет вызвана (и исполнена) в момент запуска программы. Если в программе нет специальной функции init(), то при запуске программы не выполняется никаких действий.

В экспертах специальная функция init() вызывается (и исполняется) также сразу после старта клиентского терминала и подгрузки исторических данных, после смены финансового инструмента и/или периода графика, после перекомпиляции программы в редакторе MetaEditor, после смены входных параметров из окна настройки эксперта и после смены счёта.

В скриптах специальная функция init() вызывается (и исполняется) сразу после прикрепления к графику финансового инструмента.

В пользовательских индикаторах специальная функция init() вызывается (и исполняется) сразу после старта клиентского терминала, после смены финансового инструмента и/или периода графика, после перекомпиляции программы в редакторе MetaEditor и после смены входных параметров из окна настройки пользовательского индикатора.



 
просто воспользуйтесь поиском, начните, хотя бы отсюда: https://forum.mql4.com/ru/8336. Ей-богу - лень искать в описаниях.
Причина обращения: