Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Добавить алерт в индикатору

Здравствуйте, у меня нету 3 уровня и поэтому это не совсем заказ, прошу подсказать как добавить алерт чтобы при закрытии дня выскакивал алерт если цена находится выше заданной:

ATR=ATR+MathRound((iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/pips);


В начало эксперта перед функцией start() (OnCalculate) я вставил следующий код:

//+======================================================================================+
//+================================ AlertArrow ==========================================+
//+======================================================================================+
  extern string Alerts="Алерты и стрелки от www.expforex.com";
  extern bool AlerT=true;  // Выдавать алерт на экран          
  extern bool Mail=true;   // Посылать сообщение         
  extern bool Push=true;   // Посылать ПУШ на телефон
  extern bool Arrow=true;  // Ставить стрелки на сигналах
  extern int shift=1;      // На каком баре считать сигнал 0 - на текущем 1 - на закрытом
  int timeee;              // Внутренняя переменная
  string nameInd;
 
void SetArrow(int cd, color cl,
              string nm="", datetime t1=0, double p1=0, int sz=3) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (p1<=0) p1=Bid;
  nameInd=WindowExpertName( );
int wind=WindowFind(nameInd);
wind=0;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, wind, 0,0);
  ObjectSet(nm, OBJPROP_TIME1    , t1);
  ObjectSet(nm, OBJPROP_PRICE1   , p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR    , cl);
  ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
 
void Expforex_AlertArrow(string text="",int arrowdir=0,bool history=false,int i=0)
  {
   nameInd=WindowExpertName();
   int wind=WindowFind(nameInd);
   if(wind==-1)wind=0;
   ObjectCreate("Originalalert",OBJ_LABEL,wind,0,0);
   ObjectSetText("Originalalert","AlertArrow",10,"Arial Bold",Red);
   ObjectSet("Originalalert",OBJPROP_CORNER,2);
   ObjectSet("Originalalert",OBJPROP_XDISTANCE,200);
   ObjectSet("Originalalert",OBJPROP_YDISTANCE,10);
   if(!history)
     {
      if(AlerT) Alert(text);
      if(Arrow) if(arrowdir==1) SetArrow(241,Blue,nameInd+DoubleToStr(Time[shift],0),Time[shift],Low[shift]);
      if(Arrow) if(arrowdir==2) SetArrow(242,Red,nameInd+DoubleToStr(Time[shift],0),Time[shift],High[shift]);
      if(!IsTesting())if(Mail) SendMail(text,text);
      if(!IsTesting())if(Push) SendNotification(text);
     }
   if(history)
     {
      if(Arrow) if(arrowdir==1) SetArrow(241,Blue,nameInd+DoubleToStr(Time[shift+i],0),Time[shift+i],Low[shift+i]);
      if(Arrow) if(arrowdir==2) SetArrow(242,Red,nameInd+DoubleToStr(Time[shift+i],0),Time[shift+i],High[shift+i]);

     }

  }

 
//+======================================================================================+
//+================================ AlertArrow ==========================================+
//+======================================================================================+
 


Перед закрытием функции start()(OnCalculate) внутри функции перед
return(rates_total);
}
вставил следующий код:

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

как я понял вопрос у меня заключается в том какой ниже код нужно изменить
//+======================================================================================+
//+================================ AlertArrow ==========================================+
//+======================================================================================+
 nameInd=WindowExpertName( );
          if(timeee!=Time[0] && SarBuffer[shift+1]<=75 && SarBuffer[shift]>75)
               {
                 Expforex_AlertArrow(Symbol()+" "+Period()+nameInd+" UP",1);
                    timeee=Time[0];           
               }
 
           if(timeee!=Time[0] && SarBuffer[shift+1]>=25 && SarBuffer[shift]<25)
               {
                 Expforex_AlertArrow(Symbol()+" "+Period()+nameInd+" DN",2);
                    timeee=Time[0];           
               }
//+======================================================================================+
//+================================ AlertArrow ==========================================+
//+======================================================================================+
  • 0
  • Просмотров: 1572
  • 8 октября 2017, 14:50
  • vebster
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Бот пробойщик
Следующая запись в группе  
Советник
08 октября 2017
08 октября 2017

Брокер для ваших роботов, 15 лет на рынке

Комментарии (1)

+
0
при закрытии дня выскакивал алерт если цена находится выше заданной


Может быть что то вроде:

if(TimeCurrent()==StringToTime("23:55") && Bid>ATR) Alert("Цена выше ",ATR);
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 10 октября 2017, 17:24

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий