Сигнал в MACD

 
Ув. коллеги. Кто силен в програмировании - сделайте пожалуста (если не сложно) звуковой (или др.) сигнал в стандартном MACDe по достижении определенного уровня по шкале индикатора (напр 0. 0003 или -0.00025), что бы несколько уровней было, или может есть такой индикатор горизонтальной линии что бы выдавал сигнал при достижении ее на любом индикаторе. Зарание спасибо.
 
у MCAD как минимум две линии
сигнальная и улиния основная

Ну поправить надеюсь сам сможешь

проблема в том что линия может резко проскочить значение к примеру 0.0003
разумеется данный простой код ее не уловит
тут надо чуть сложнее тогда делать


//+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       https://www.metaquotes.net// |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "https://www.metaquotes.net//"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_width1  2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
 
extern double PlayMACD =  0.0003; // ОСНОВНАЯ ЛИНИЯ
extern double PlaySIGNAL = -0.00025; // СИГНАЛЬНАЯ ЛИНИЯ
 
//---- indicator buffers
double     MacdBuffer[];
double     SignalBuffer[];
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- 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
 
if (MacdBuffer[i] == PlayMACD) // сигналим
{
   PlaySound("Alert.wav");
}
 
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
 
if (SignalBuffer[i] == PlaySIGNAL) // сигналим
{
   PlaySound("Alert.wav");
}
 
//---- done
   return(0);
  }
//+------------------------------------------------------------------+



 
Спасибо, завтра проверю.
 
Если не сложно помогите пожалуста еще с экспертом. MACD 1 Пересечение MACD( параметры изменяемые, переменныеннапр. 12,26,9) 0…….(переменная, параметры индикатора напр. 0.00020 или -0.00020) снизу вверх - ставим бай стоп на …..п.п.(переменная напр.15п.п.) выше хай бара(пересекшего 0….) после закрытия которого индикатор пересек 0…..(переменная, значение индикатора напр.0.00020). стоп лос …..п.п.(переменная), тейк профит ….п.п.(переменная, трал….п.п.(переменная) размер ордера …..(переменная), проскальзывание….п.п.(переменная).. Звуковой (или другой )сигнал по открытию ордера.(если сложно то не надо сигнал) Если переменные стоп лосс , тейк профит= 0( отключены) закрытие происходит - если цена пересекает 0……..(переменная, показатель индикатора-0.00025) сверху вниз стоп выставляется на …..п.п. ниже лоу бара(после закрытия) после которого индикатор пересек 0…..(переменная, показатель индикатора) Пересечение сверху вниз 0……(переменная, параметр индикатора напр. -0.00020) - сел стоп на ….п.п.(переменная) ниже лоу после закрытия бара(пересекшего 0….) стоп лос …..п.п.(переменная), тейк профит ….п.п.(переменная, трал….п.п.(переменная) размер ордера …..(переменная), проскальзывание…. п.п.(переменная).. Звуковой (или другой )сигнал по открытию ордера. Если переменные стоп лосс , тейк профит 0( отключены) закрытие происходит - если цена пересекает 0……..(переменная, напр. 0.00025) снизу вверх - стоп выставляется на …..п.п.выше хай после закрытия бара после которого индикатор пересек 0…..(переменная, показатель индикатора) 2 будет работать в одном терминале на разных ТФ и разных валютах.( поэтому нужен наверное MagicNumber(или другая примочка), что бы советники не путали свои и чужие ордера) ). Спасибо.
 
 
skif777:
Если не сложно, дайте мне 50$.
Спасибо.


;)
Причина обращения: