Программное создание Alert на экране графика

 
Добрый день! Подскажите как создать Alert на экране графика с помощью mql4? С помощью metatrader знаю как. Щелкаешь правой кнопкой на экране, выбираешь Торговля и Alert. То есть нужен не просто вывод в окне Alert сообщения, а объект на экране графика, который бы при пересечении установленного уровня выдавал звуковой сигнал с указанным мной звуковым файлом. В документации не нашел. Спасибо.
 
Так и пишется - Alert(), а для звука - PlaySound(). Подробнее см. справочник.
 
Нет, так не пойдет. В это случае мне самому придется следить за пересечением линии. Хотелось бы заранее создать объект на графике - аналог того что создается с помощью GUI метатредера (см. выше).
 
тогда никак
 
Спасибо за ответ. Если с помощью GUI можно это сделать - значит и программно можно. Может кто знает? Конечно можно и отдельное окно с отдельным советником - но это как то не очень решение получается.
 
Создайте индикатор, у которого одна задача: отслеживать уровень цен.
 
Mikhail_Karpov:
Спасибо за ответ.Если с помощью GUI можно это сделать - значит и программно можно.Может кто знает?Конечно можно и отдельное окно с отдельным советником - но это как то не очень решение получается.
Вот Вам код скрипта, начните с него изучение MQL и адаптируйте под себя:

//+------------------------------------------------------------------+
//|                                                    AlertLine.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input string InpUpSound="";
input string InpUpMessage="Alert UP";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double close[1];
   double price;
//--- пока скрипт не снимут с графика
   for(;!IsStopped();Sleep(100))
     {
      //--- перебираем все открытые чарты
      for(long chart_id=ChartFirst();chart_id!=-1;chart_id=ChartNext(chart_id))
        {
         //--- обновим данные по символам (для скриптов и экспертов это обязательно)
         RefreshRates();
         //--- забираем последнюю известную цену графика
         if(!CopyClose(ChartSymbol(chart_id),ChartPeriod(chart_id),0,1,close))
           {
            Print("Не удалось получить данные по символу ",ChartSymbol(chart_id));
            continue;
           }
         //--- ищем на графике объект с именем Alert UP
         if(ObjectFind(chart_id,"Alert UP")>=0)
           {
            //--- проверим, это должна быть горизонтальная линия
            if(ObjectGetInteger(chart_id,"Alert UP",OBJPROP_TYPE)==OBJ_HLINE)
              {
               //--- получим её координату цены
               if(ObjectGetDouble(chart_id,"Alert UP",OBJPROP_PRICE,0,price))
                 {
                  //--- проверим пробитие вверх
                  if(close[0]>price)
                    {
                     PlaySound(InpUpSound);
                     MessageBox(InpUpMessage);
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
Причина обращения: