Импорт значений внещних индикаторов

 
Как в mql4 описать подключение внешнего индикатора? И каким образом вызываются переменные?
 

Для этого функция iCustom()

 

Могли бы вы привести пример, каким образом я могу получить переменную tickets из индикатора с именем 123 ?

Может таким образом:

tickets=iCustom(NULL, 0, "123",13,1,0);
 
А чему должна равняться переменная tickets?
 
Переменная tickets в советнике, должна равняться переменной tickets в подключаемом индикаторе
 

Я не видел советник, но если на выходе индикатор на первом буфере равен значению tickets, ты ты все правильно понял.


Обрати внимание на:

mode - Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.

У тебя он равен единице:

tickets=iCustom(NULL, 0, "123",13,1,0);
 

...если на выходе индикатор на первом буфере равен значению tickets...

Немного не понятно.

В индикаторе переменная tickets используется для подсчета формулы. Находится она в середине скрипта и не является результирующей переменной.

 
Aristotel >>:

Немного не понятно.

В индикаторе переменная tickets используется для подсчета формулы. Находится она в середине скрипта и не является результирующей переменной.

В таком случае, не получится, оператор iCustom выводит только буфферы индикатора. Все расчеты производимые внутри индикатора, его не касаются. Тебе проще посчитать tickets внутри скрипта который пишешь. Либо переписать индикатор, таким образом, чтобы он выводил в буффер значение tickets.

 
А каким образом можно переменную записать в буфер индикатора?
 

Посмотри как это реализовано в любом индикаторе. Например в стандартном MACD:

#property  indicator_buffers 2

^ Вот это значение у тебя увеличиться на один, ты же ведь новый буффер добавляешь.

//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
^ Так задаются буффера.

Потом сможешь его вызывать из iCustom, задав номер нужного буфера. (см. MODE)
Причина обращения: