Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 673

 
Здравствуйте. Какой код добавить , чтобы  появление алерта любого индикатора определялось в советнике ?

как определить появление алерта через iCustom ? 

Может быть вы знаете уже существующие индикаторы\советники для этого  ?   
 
RichLux:

пишу советник, который работает по мартингейлу.

Как заставить его закрывать все открытые им ордера при достижении максимально допустимого убытка в пунктах на одной валютной паре? 

Если нужно действительно в пунктах, а не в деньгах, то вот функция, применять так-же, как и прошлую

//===============================================================================================
//------------------ Возвращает суммарный профит открытых позиций в пунктах --------------------+
//===============================================================================================
double GetProfitOpenPosInPoint(string symb="0", int type=-1, int mg=-1) {
double p=0, prb=0, prs=0, pr=0;
  if(symb=="0") { symb=Symbol();}
   for(int i=0; i<OrdersTotal(); i++) {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     if((OrderSymbol()==symb||symb=="")&&(type<0||OrderType()==type)&&(mg<0||OrderMagicNumber()==mg)) {
       p=MarketInfo(OrderSymbol(), MODE_POINT)*Sign;
        if(OrderType()==OP_BUY) {
          prb+=((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p);
        }
        if(OrderType()==OP_SELL) {
          prs+=((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p);
        }
       pr=prb+prs;
     }
}}
  return(pr);
}


 

 
greeng2016:
Здравствуйте. Какой код добавить , чтобы  появление алерта любого индикатора определялось в советнике ?

как определить появление алерта через iCustom ? 

Может быть вы знаете уже существующие индикаторы\советники для этого  ?   
Насколько знаю, то появление окна алерта отследить нельзя.
 
Здравтсвуйте. Хотел открыть файл .ex4 с помощью mt4.exe  и поставил использовать для всех файлов. Как обратно вернуть "общая библиотека оболочки windows" ? почему то мт4 не видит теперь данного эксперта (робота).
Файлы:
pui_mqhrx2.png  40 kb
 
VSEVPOTOLKI:
Здравтсвуйте. Хотел открыть файл .ex4 с помощью mt4.exe  и поставил использовать для всех файлов. Как обратно вернуть "общая библиотека оболочки windows" ? почему то мт4 не видит теперь данного эксперта (робота).

Вы не поверите, но все!!! хотят открыть файл .ех4, проблема в том, что он никогда не открывался для редактирования, и не откроется.

Редактируемые файлы только .mq4,  исполняемые - .ех4 

 

События клиентского терминала

Init

Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после перекомпиляции программы в редакторе MetaEditor, после смены входных параметров из окна настройки эксперта или пользовательского индикатора. Советник также инициализируется после смены счета. Для скриптов событие Init не генерируется.


А если не "из окна" ? Например, при режиме оптимизации в тестере ? Где об этом узнать, почитать ?

 
Leo59:

События клиентского терминала

Init

Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после перекомпиляции программы в редакторе MetaEditor, после смены входных параметров из окна настройки эксперта или пользовательского индикатора. Советник также инициализируется после смены счета. Для скриптов событие Init не генерируется.


А если не "из окна" ? Например, при режиме оптимизации в тестере ? Где об этом узнать, почитать ?

В режиме оптимизации, каждый проход с новыми параметрами - это не что иное как новый запуск программы. Соответственно после запуска проходит событие OnInit().
 
Vladimir Karputov:
В режиме оптимизации, каждый проход с новыми параметрами - это не что иное как новый запуск программы. Соответственно после запуска проходит событие OnInit().
Спасибо  Владимир! Я это понимаю.)) Но, где об этом в документации написано ? Если в init() прописать Print, Alert, Comment, то ни в журнал ничего не выводится, ни на экран. Как убедиться в том, о чём мы с Вами знаем ?
 
Leo59:
Спасибо  Владимир! Я это понимаю.)) Но, где об этом в документации написано ? Если в init() прописать Print, Alert, Comment, то ни в журнал ничего не выводится, ни на экран. Как убедиться в том, о чём мы с Вами знаем ?
  • Ограничения работы функций в тестере торговых стратегий:
  • Существуют ограничения работы некоторых функций в тестере стратегий клиентского терминала.

    Функции Print() и PrintFormat()

    Для увеличения быстродействия при оптимизации параметров советника функции Print() и PrintFormat() не выполняются. Исключением является использование этих функций внутри обработчика OnInit(). Это позволяет облегчить поиск причин ошибок при их возникновении.

    Функции Alert(), MessageBox(), PlaySound(), SendFTP, SendMail(), SendNotification(), WebRequest()

    Функции взаимодействия с "внешним миром" Alert()MessageBox()PlaySound()SendFTP()SendMail()SendNotification() и WebRequest() в тестере стратегий не выполняются.

А чтобы убедится - запустите отладку на истории и в OnInit() поставьте точку останова.

 

У меня что-то вывести с помощью Print() в журнал тестера никак не получается. А как Вы это делаете ?

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