Плиз хелп. Можно ли программно (к примеру скриптом) выводить пользовательский индикатор на график?

 

У меня такой вопрос - Можно ли программно (к примеру скриптом) выводить пользовательский индикатор на график?

То есть к примеру работает один эксперт. При наступлении тех или иных условий он подает сигнал и для пояснения выводит на график нужную комбинацию индикаторов.

Может кто подскажет можно ли это сделать, и если да, то как?

Зарание благодарен!

 
Можно рисовать индикаторы объектами. Или вы хотите, чтобы подсоединялся различный набор индикаторов?
 

Так я все время и делал, но:

1) на графике можно рисовать все что угодно, а что делать с индикаторами в отдельных окнах. Может я просто не знаю как рисовать такие объекты. - это не самое главное;

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

 
somi:

У меня такой вопрос - Можно ли программно (к примеру скриптом) выводить пользовательский индикатор на график?

То есть к примеру работает один эксперт. При наступлении тех или иных условий он подает сигнал и для пояснения выводит на график нужную комбинацию индикаторов.

Может кто подскажет можно ли это сделать, и если да, то как?

Зарание благодарен!


Штатными средствами языка это сделать, к сожалению, нельзя.

Чисто технически задачу решить можно. Для этого необходимо обустроить связь между индикатором и экспертом с помощью глобальных переменных клиентского терминала (см. Учебник по MQL4 Переменные Переменные GlobalVariables ). В начале работы все индикаторы, зависимо "запускаемые" экспертом, должны быть прикреплены в окно финансового инструмента. В момент, когда в эксперте вычислено, что пора выводить индикатор, эксперт создаёт GV-переменную с определённым названием и значением. Индикатор на каждом тике эту переменную пытается читать, и когда она появляется и у неё заданное значение, индикатор "включается в работу" в том смысле, что выполняет алгоритм, наполняющий собственные, индикатора, массивы.

Недостаток этого способа в том, что с момента принятия решения в эксперте до момента фактической отрисовки линий пройдёт время ожидания до ближайшего тика. Если эксперт "управляет индикаторными линиями" сам по себе, то эта пауза будет незаметна пользователю. Если же у Вас сложная программа с кнопкой "Показать индикаторную графику", то пауза от кнопки до линии будет нервировать пользователя (то же от кнопки до снятия линий).

Есть ещё способ выводить из эксперта "собственные" графические объекты. Но это сложнее. Придётся специально следить за перерисовкой как минимум последнего фрагмента (между нулевым и первым барами). А если это прогнозный участок в несколько баров с перерисовкой (уточнением), то необходимо перерисовывать весь участок.