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

 
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() в журнал тестера никак не получается. А как Вы это делаете ?

 
Leo59:

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

Вот код OnInit() от советника:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


Дальше ставлю точку останова (шаг 1) и запускаю тестирование на истории (шаг 2):

OnInit() 

 

и в тестере получаю результат:

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00
 

Vladimir Karputov:

Дальше ставлю точку останова (шаг 1) и запускаю тестирование на истории (шаг 2):

Странно, но у меня эта голубая кнопка, на которую у Вас указывает цифра "2", не активна. Может это быть от того, что я в MT4 ?