[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 317

 
kon12 писал(а) >>

Люди, подскажите, кто знает. Допустим я рисую на основном графике пользовательский индикатор. Затем использую другой пользовательский индикатор, в котором задействован первый индикатор через функцию iCustom. Можно ли связать их так, чтобы при изменении параметра первого индикатора на графике автоматически изменялся параметр во втором пользовательском индикаторе?

не совсем понятна задача, но возможно подойдет вот это :

Справка по MT Аналитика - Технические индикаторы

- Например, можно построить индикатор Moving Average от Awesome Oscillator и тем самым получить в дополнение к AO сигнальную линию. Для этого необходимо сначала построить индикатор AO, а затем при помощи технологии Drag`n`Drop наложить MA на AO и в его настройках в поле "Применить к" выбрать "Previous Indicator Data" (наложить индикатор на данные предыдущего индикатора). Если выбрать "First Indicator Data", MA будет строиться на основании данных самого первого индикатора, которым не обязательно является AO.

 
kon12 >>:

Люди, подскажите, кто знает. Допустим я рисую на основном графике пользовательский индикатор. Затем использую другой пользовательский индикатор, в котором задействован первый индикатор через функцию iCustom. Можно ли связать их так, чтобы при изменении параметра первого индикатора на графике автоматически изменялся параметр во втором пользовательском индикаторе?

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

 
Urain >>:

Как раз удалять не обязательно, можно просто изменить параметры через ObjectSet.

ps но вообще дело ваше нужно смотреть по привязке к конкретному случаю.

Спасибо!

 
kon12 >>:

Люди, подскажите, кто знает. Допустим я рисую на основном графике пользовательский индикатор. Затем использую другой пользовательский индикатор, в котором задействован первый индикатор через функцию iCustom. Можно ли связать их так, чтобы при изменении параметра первого индикатора на графике автоматически изменялся параметр во втором пользовательском индикаторе?

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

Тогда ответ однозначный - с помощью iCustom у вас ничего не выйдет. Данная функция работает примерно следующим образом - в памяти программы (а не на графике) "как бы создается" индикатор с указанными вами параметрами ("как бы" в смысле что на график он не выводится), причем при первом вызове происходит обработка функций init() и start(), т.е. если там "стандартный" цикл типа for(i=limit;i>=0;i--), то просчитываются все нужные бары. Тогда при следующем обращении к iCustom пересчет уже не происходит (если конечно это не задано явно в теле индикатора). Отдельных назначенных буферов для таких индикаторов в MQL действительно нет, так что если необходимо хранить значения, целесообразно копировать их в отдельный буфер. Прямого доступа к графикам, расположенным в окне терминала, в MQL тоже нет (хотя это и было бы ИМХО весьма полезно).

 

Спасибо за ответы, возможно я не точно сформулировал что хочу. Поясню: Использую на основном графике индикатор ZigZag. Кроме того использую свой индикатор, который показывает длины волн, показываемых зигзагом. Индикатор обращается к зигзагу через iCustom. Но при изменении параметра зигзага дальше надо залезать во второй индикатор и ставить такие же параметры там. Как сделать так, чтобы изменять параметр только в зигзаге. В Metastocke я просто накладываю второй индикатор на первый и все.

 
Поскольку я видимо правильно понял вопрос, отвечаю еще раз: средствами Метатрейдер и MQL - никак
 
alsu >>:
Поскольку я видимо правильно понял вопрос, отвечаю еще раз: средствами Метатрейдер и MQL - никак

Не, ну почему. Можно же через глобальную переменную, граф. объект параметр передать. Тик только нужен будет, чтоб перерисовалось, но его можно того, сами знаете.

Лучше, конечно, объединить индюки.

 
Svinozavr >>:

Не, ну почему. Можно же через глобальную переменную, граф. объект параметр передать. Тик только нужен будет, чтоб перерисовалось, но его можно того, сами знаете.

Лучше, конечно, объединить индюки.

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

 
alsu >>:

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

Это было бы кул. Очень ограничивает невозможность штатной синхронизации индикаторов. Приходится или как написал синхронизировать, или объединять.

Но проблему рисования, кроме как через графику, в разных подконах от одно индюка, штатными средствами не решить. И не штатными, пожалуй, тоже. Если б можно было привязывать буфер к номеру окна наподобие гр.объекта, или даже генерить такое окно из индюка, то... Ладно, это уже совсем не по теме.

===

А идея со средой - очень практическая. Есть мысли по конкретике?

 
можт в отдельную ветку?