Помогите, никак не могу понять как состыковать индикатор с экспертом

 
Помогите, никак не могу понять как состыковать индикатор с экспертом :

Объясните пожалуйста на данном примере:

У меня есть индикатор который дает два сигнала -- на покупку и на продажу.

 //-------------------------------------------------------------------------------------------------------------
#property copyright "Serghei"
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Lime
//---- buffers
//---- indicator buffers
double RedBuffer[];
double LimeBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- additional buffers are used for counting
   IndicatorBuffers(2);
//---- indicator buffers mapping
   SetIndexBuffer(0, RedBuffer);
   SetIndexBuffer(1, LimeBuffer);
   
//---- drawing settings
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexStyle(1,DRAW_ARROW);
//----
   IndicatorDigits(2);
   SetIndexDrawBegin(0,10);
   SetIndexDrawBegin(1,10);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Sample Open Close");
   SetIndexArrow(0, 233);
   SetIndexArrow(1, 234);

   return(0);
  }

int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   
// Если RedBuffer[i]=0 --- сигнала нет
// иначе сигнал на покупку 

   for(int i=0; i<limit; i++){
     if(Close[i]>Open[i]){
      if(Open[i+1]>Close[i+1]){ 
       if((Close[i]>Open[i+1])&&(Open[i]<Close[i+1])){
         RedBuffer[i]=Low[i];
       }else{
         RedBuffer[i]=0;
       }
      }
     }  
   }

// Если LimeBuffer[i]=0 --- сигнала нет
// иначе сигнал на продажу 

   for(i=0; i<limit; i++){
     if(Open[i]>Close[i]){
      if(Close[i+1]>Open[i+1]){ 
       if((Open[i]>Close[i+1])&&(Close[i]<Open[i+1])){
         LimeBuffer[i]=High[i];
       }else{
         LimeBuffer[i]=0;
       }
      }
     }  
   }
 return(0);
  }

//-------------------------------------------------------------------------------------------------------------



Вопрос :
Как передать эти два параметра ( RedBuffer[i], LimeBuffer[i] ) из индикатора
в следующий советник, который должен на основе этих данных
совершить сделку. Если есть несколько способов это сделать - объясните
пожалуйста подробнее.



//------------------------------------------------------------------------------------------------------------
#property copyright "Serghei"
#property link      ""

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

extern double StopLoss     = 6;
extern double TakeProfit   = 8;
extern double Lots         = 0.1;

int init()
{
   return(0);
}

int deinit()
{
   return(0);
}

 
int start()
{

if ((Bars<100)  return(0); // на графике менее 200 баров - выходим                                          

if (AccountFreeMargin()<100) return(0);  // денег нет - выходим

if(RedBuffer[0]!=0)
OrderSend(Symbol(),OP_BUY ,Lots,Ask ,0,Ask-StopLoss*Point ,Ask+TakeProfit *Point,"Мои ордер OP_BUY" ,1,0,Red);

if(LimeBuffer[0]!=0)
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Мои ордер OP_SELL",2,0,Yellow);

Sleep(10000);
 
return (0);
}

//------------------------------------------------------------------------------------------------------------
 
Мусорить зачем, ты уже ведь начал одну тему и получил ответ, если не понял до конца, так мог там же уточнить.
if(RedBuffer[0]!=0)


будет выглядеть так

if( iCustom( string symbol, int timeframe, string name, ... , int mode, int shift) !=0
              (инструмент, таймфрейм," имя индикатора", ... параметры индикатора, номер буфера с которого                  получаешь данные, индекс бара на котором интересуещее тебя значение индикатора)


у тебя внешних переменных нет, так что многоточие опускаешь, и будет так

iCustom( NULL,0,"индюк", 0,0)


это для значения RedBuffer на инструменте графика к которому прикреплен советник (NULL), с таймфремом графика к которому прикреплен советник (0), вместо слова "индюк" нужно вставить наименование индикатора, первый ноль - индекс буфера из которого берутся значения, второй ноль - индекс бара (свечи) где берутся значения.

 
Я прошу извинения за мусор -- не очень хорошо разобрался как функционирует форум ( новичок однако )
За ответ очень благодарен !!!