мастера программирования - помогите!

 

Помогите, пожалуйста, добавить в этот индикатор звуковой сигнал! Что бы, когда менялся цвет, выскакивало окошко с (bay/sell) и какая валюта.

пожалуйста, не нужно давать ссылки на статьи, где весь процесс описан от и до... я их читал, но разбираться долго, а для вас это раз плюнуть!

спасибо!

Файлы:
 

ээээх, гулять, так гулять!

если будет не трудно, то и для этого

СПАСИБО!

Файлы:
 
chut:

Помогите, пожалуйста, добавить в этот индикатор звуковой сигнал! Что бы, когда менялся цвет, выскакивало окошко с (bay/sell) и какая валюта.


пожалуйста, не нужно давать ссылки на статьи, где весь процесс описан от и до... я их читал, но разбираться долго, а для вас это раз плюнуть!


спасибо!



Я добавил код к Вашему индикатору. Посмотрите внимательно. Изменения минимальны. Если поймёте принцип, то ко второму индикатору сигнал сможете добавить сами.

//+------------------------------------------------------------------+
//|                                            T3_iAnchMom-hist.mq4  |
//|                                       Ramdass - Conversion only  |
//+------------------------------------------------------------------+
 
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LightSeaGreen
#property indicator_color2 FireBrick
 
//---- input parameters
extern int EMA_period=3;
extern int MomPeriod=8;
extern int CountBars=300;
 
 
extern bool     UseAlert=true;
 
 
//---- buffers
double Up[];
double Down[];
double Mom;
double e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12;
double c1,c2,c3,c4;
double n,n1,w1,w2,b2,b3,w3,w4,b;
int    myBars;
string SMB;
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,Up);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,Down);
//----
//----
//---- variable reset
/*e1=0; e2=0; e3=0; e4=0; e5=0; e6=0;
c1=0; c2=0; c3=0; c4=0; 
n=0;n1=0; 
w1=0; w2=0; w3=0; w4=0; 
b2=0; b3=0;*/
 
b = 0.7;
b2=b*b;
b3=b2*b;
c1=-b3;
c2=(3*(b2+b3));
c3=-3*(2*b2+b+b3);
c4=(1+3*b+b3+3*b2);
n=EMA_period;
n1=MomPeriod + MomPeriod + 1;
 
if (n<1) n=1;
n = 1 + 0.5*(n-1);
w1 = 2 / (n + 1);
w2 = 1 - w1;
if (n1<1) n1=1;
n1 = 1 + 0.5*(n1-1);
w3 = 2 / (n1 + 1);
w4 = 1 - w3;
   return(0);
  }
//+------------------------------------------------------------------+
//| T3_iAnchMom                                                      |
//+------------------------------------------------------------------+
int start()
  {
   if (CountBars>Bars) CountBars=Bars;
   SetIndexDrawBegin(0,Bars-CountBars+(MomPeriod*2)*EMA_period);
   SetIndexDrawBegin(1,Bars-CountBars+(MomPeriod*2)*EMA_period);
   int i,counted_bars=IndicatorCounted();
   double a,c;
 
   if(Bars<=n1) return(0);
 
//---- initial zero
   if(counted_bars<n1)
   {
      for(i=1;i<=n1;i++) Up[CountBars-i]=0.0;
      for(i=1;i<=n1;i++) Down[CountBars-i]=0.0;
   }
//----
   i=CountBars-1;
//   if(counted_bars>=1) i=Bars-counted_bars-1;
   while(i>=0)
     {
 
e1 = w1*Close[i] + w2*e1;
e2 = w1*e1 + w2*e2;
e3 = w1*e2 + w2*e3;
e4 = w1*e3 + w2*e4;
e5 = w1*e4 + w2*e5;
e6 = w1*e5 + w2*e6;
 
a=c1*e6 + c2*e5 + c3*e4 + c4*e3;
 
e7 = w3*Close[i] + w4*e7;
e8 = w3*e7 + w4*e8;
e9 = w3*e8 + w4*e9;
e10 = w3*e9 + w4*e10;
e11 = w3*e10 + w4*e11;
e12 = w3*e11 + w4*e12;
 
c=c1*e12 + c2*e11 + c3*e10 + c4*e9;
 
      Mom = 100*((a / c)-1);
if (Mom>0) {Up[i]=Mom;Down[i]=0.0;} else {Down[i]=Mom;Up[i]=0.0;}                          
 
      i--;
     }
   
   SMB=Symbol();
   if(isNewBar() && UseAlert){
     if(Up[1]>0 && Down[1]==0 && Down[2]<0){
       Alert(SMB,".  Сигнал покупать");
     }
     if(Down[1]<0 && Up[1]==0 && Up[2]>0){
       Alert(SMB,".  Сигнал продавать");
     }
   }  
   
   return(0);
  }
//+------------------------------------------------------------------+ 
 
 
//+------------------------------------------------------------------+
//| функция isNewBar() - возвращает признак нового бара                                              |
//+------------------------------------------------------------------+
bool isNewBar(){
  bool res=false;
  if(myBars!=Bars){
    res=true;
    myBars=Bars;
  }   
//----
   return(res);
  }
//---------------------------------------------------------------
 
ОГРОМНОЕ ВАМ СПАСИБО!!!!
постараюсь сам разобраться со вторым индикатором!

еще раз СПАСИБО!