Скачать MetaTrader 5

Звуковой сигнал около горизонтального уровня.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrew Kornishkin
7327
Andrew Kornishkin  

На графике есть несколько горизонтальных линий.

Необходимо чтобы звучал сигнал когда цена будет около этих уровней.

Нашел 2 примера, но пока никак. Вот мой код:

int start()
 {
  string name;
  double price;

  for(int i=0;i<ObjectsTotal();i++)
   {
    name=ObjectName(i);
    price=ObjectGet(name, OBJ_HLINE);    
   }
   
  if(Bid==price)
   {
    PlaySound("Wait.wav");
    Sleep(10000);
   }
     
  return(0);
 }

Примеры которые я нашел:

//+------------------------------------------------------------------+
//|                                                 Price Alert mq4  |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+

//----
#property indicator_chart_window
#property indicator_buffers 0
//---- input parameters
extern string    NamePrice="Price_1";
extern string    SoundFileName="gg.wav";
extern bool      ActiveSignal=true;
extern bool      ActiveAlert=false;
extern color     LineColor=Gold;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   if (ObjectFind(NamePrice)==-1)
     {
      ObjectCreate(NamePrice,OBJ_HLINE,0,0,Close[0]);
      ObjectSet(NamePrice,OBJPROP_COLOR,LineColor);
      ObjectSet(NamePrice,OBJPROP_STYLE,STYLE_DASH);

     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   //ObjectDelete(NamePrice);    //modificat
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (ObjectFind(NamePrice)==-1) return(0);
   double   _price=ObjectGet(NamePrice,OBJPROP_PRICE1);
   double _min=MathMin(High[1],Low[0]);
   double _max=MathMax(Low[1],High[0]);
//----
   if (ActiveSignal && _price>=_min  && _price<=_max)
     {
      if (ActiveAlert) Alert(Symbol()," ",Period()," Pretul a ajuns  ", NormalizeDouble(_price,Digits), " "); // Предупреждение на экран
      if(SoundFileName!="" )
         PlaySound( SoundFileName ); // Звуковой сигнал
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
int start()
 {
  if(ObjectGet("CENA", OBJ_HLINE)==0)
  {
  ObjectCreate("CENA", OBJ_HLINE, 0, 0,Bid-(Ask-Bid)*10);
  ObjectSet("CENA",OBJPROP_COLOR,Aquamarine);
  }
 int digits=MarketInfo(Symbol(),MODE_DIGITS);  
 bool condition=true;
 while(condition)
 {
  if(NormalizeDouble(Bid,digits-2)==NormalizeDouble(ObjectGet("CENA", OBJ_HLINE),digits-2))
  PlaySound("Wait.wav");
  Sleep(1000);
 }}
 int deinit()
 {
 ObjectDelete("CENA");
 }
Andrew Kornishkin
7327
Andrew Kornishkin  

Все вот так нормально

int start()
 {
 string name;
 int digits=MarketInfo(Symbol(),MODE_DIGITS);  
 bool condition=true;
 
  for(int i=0;i<ObjectsTotal();i++)
   {
    name=ObjectName(i);      
   }
 
 while(condition)
  {
   if(NormalizeDouble(Bid,digits-2)==NormalizeDouble(ObjectGet(name, OBJ_HLINE),digits-2))
   PlaySound("Wait.wav");
   Sleep(1000);
  }
 }
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий