Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


 

Здравствуйте, друзья Форекс трейдеры. В этой статье мы рассмотрим команды вывода информации в MQL4.

Вывести информацию на график терминала MetaTrader мы можем двумя способами.

Давайте создадим нашу первую программу. Она будет заключаться в следующем: когда мы перенесем наш советник на график, то в области графика выйдет текстовое сообщение.

 

Функция вывода информации Comment();

Сейчас мы разберем первый способ вывода информации при помощи команды Comment(); и выводить информацию мы будем из функции OnInit().

Рассмотрим подробно, как пишется эта команда и ее структуру.

Данная команда называется «Comment».

Начинаем писать ее название в поле кода MetaEditor и нам высвечивается подсказка.

Подсказка в MQL4 - Сomment

 

Когда мы прописываем какие-либо системные слова или выражения, которые содержатся в составе языка программирования языка MQL4, то они высвечиваются, как подсказки (как на скриншоте выше).

Мы можем кликнуть по этой подсказке, и необходимое нам системное слово пропишется автоматически в строке кода.

Итак, пишем Comment, скобки () и точку с запятой, где Comment — это название нашей команды, в скобках мы прописываем входящее значение для данной команды. Так как наша команда предназначена для вывода текста, то в скобках мы будем писать непосредственно сам текст, в примере ниже — это «Привет трейдерам».

Comment("Привет, трейдерам");

 

Вся текстовая информация в MQL4 всегда пишется в кавычках. То есть, наш текст Привет трейдерам – это текстовая информация, и поэтому, в MQL4 ее нужно писать в кавычках — «Привет трейдерам».

Напоминаю, в скобочках мы пишем входящее значение – соответственно, в команде у нас прописано («Привет трейдерам»);

Далее, после () идет точка с запятой;

В программировании точка с запятой — это нечто подобное точке в наших обычных предложениях. То есть, имеется предложение, и чтобы это предложение у нас закончилось, мы ставим точку. Аналогичная ситуация и в программировании, только вместо точки мы ставим точку с запятой.

Итак, давайте вставим нашу команду вывода информации Comment() в функцию OnInit(), чтобы советник нам вывел текстовую информацию на график:

// ЭТО БЛОК ИНИЦИАЛИЗАЦИИ
int OnInit()
{
Comment("Привет, трейдерам");
EventSetTimer(60);
return(INIT_SUCCEEDED);
}

 

Что мы сделали? Мы с Вами прописали команду Comment(), которая выводит текст на график. Прописали мы ее в функции OnInit(). Напоминаю, функция OnInit() у нас выполняется один раз при нанесении советника на график (подробнее о работе функции OnInit() Вы можете прочитать в этой статье). Соответственно, если мы советник переносим на график, то сперва у нас должна сработать функция инициализации OnInit(), внутри которой мы прописали первую команду. Эта команда выполниться и текст должен вывестись на экран.

Для того чтобы это все у нас заработало, нам необходимо наш код сохранить и, далее, скомпилировать.

Итак, полный код нашего советника:

//+------------------------------------------------------------------+
//|                                              My_first_expert.mq4 |
//|                              Copyright (с) Антон SanGReal Invest |
//|                                       https://sgr-tradeinvest.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright (с) Антон SanGReal Invest"
#property link      "https://sgr-tradeinvest.ru"
#property version   "1.00"
#property strict

// БЛОК ИНИЦИАЛИЗАЦИИ
int OnInit()
{
Comment("Привет, трейдерам");
EventSetTimer(60);
return(INIT_SUCCEEDED);
}

// БЛОК ДЕИНИЦИАЛИЗАЦИИ
void OnDeinit(const int reason)
{
EventKillTimer();
}

// БЛОК ЦИКЛА, ВЫПОЛНЯЮЩИЙСЯ ПО ТИКАМ
void OnTick()
{
}

// БЛОК ЦИКЛА, ВЫПОЛНЯЮЩИЙСЯ ПО ТАЙМЕРУ
void OnTimer()
{
}

 

Сохраняем этот код и компилируем:

MetaEditor: сохраняем код и компилируем его

 

Что при этом произошло?

Имеется папка с нашими экспертами, в которой хранится наш созданный советник «My_first_expert». Мы написали код, далее, сохранили его (сохранился он в файле с расширением .mq4), после чего, произвели компилирование. После этой операции у нас создался файл второго типа .ex4, который уже и будет считывать наш терминал MetaTrader.

Советник My_first_expert в папке Experts

 

Давайте испробуем наш советник. Переносим советник «My_first_expert» на график и нажимаем кнопку «OK».

MetaTrader4: переносим советник на график и нажимаем Ок

 

И, мы можем наблюдать результат работы нашей первой программы, результат вывода информации при помощи Comment().

MQL4: вывод информации при помощи Comment

 

Данный вывод текстовой информации можно выполнить не только внутри функции OnInit(), но также и внутри функции OnTick() или OnTimer().

Например, так:

// БЛОК ЦИКЛА, ВЫПОЛНЯЮЩИЙСЯ ПО ТИКАМ
void OnTick()
{
Comment("Привет, трейдерам");
}

 

Дополнительную информацию про команду вывода информации Comment() Вы также можете прочитать в статьях Удобно читаемый вывод информации в Comment() и Работа с предопределенными переменными MQL4 на практике.

 


 

Вывод информации при помощи функции Alert();

Теперь рассмотрим другой способ вывода информации, который называется Alert ().

Данная команда Alert () прописывается аналогично команде Comment (). Мы можем наблюдать это в коде ниже. Но, в этой команде я ввел текст «Внимание, трейдер!».

// БЛОК ИНИЦИАЛИЗАЦИИ
int OnInit()
{
Alert("Внимание, трейдер!");
EventSetTimer(60);
return(INIT_SUCCEEDED);
}

 

Почему я прописал другой текст? Потому что функция команды Comment () — это вывод информации справочного характера. То есть, если нам понадобилось вывести какую-то справочную текстовую информацию на графике (например, текущий спред), то мы это можем сделать при помощи Comment ().

Команда Alert () создана для привлечения внимания трейдера, поэтому я и прописал текст «Внимание, трейдер!». Она выводит информацию в новом окне и также идет звуковое сопровождение.

MQL4: работа функции Alert

 

То есть, если Comment () предназначена для вывода справочной информации, то команда Alert () выводит информацию важного характера, такую информацию, на которую срочно необходимо обратить внимание.

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.

 

Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.

 

На этом, все. Переходите к следующей статье, в которой я расскажу Вам о типах данных в MQL4: int, double, string, bool, datetime, color.

 

Благодарю за внимание.

 
Другие статьи по теме Программирование на MQL4 Вы можете просмотреть в данном содержании практических уроков по MQL.

 

Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

 

С уважением, Антон.

Обучающий Форекс портал SanGReal Invest
 


 


Вам это может быть интересно. Другие статьи нашего обучающего портала:


  • Антон — SanGReal Invest (Сангрил Инвест)

    Если у Вас появились вопросы по статье, пишите их здесь. Я Вам обязательно отвечу.
    Также, буду рад Вашей обратной связи

  • LoveC

    Как добавить значение переменной? Типо Сomment («Значение переменной Аlfa=» Alfa);

    • SanGReal Invest: Антон

      Здравствуйте, Вы практически все правильно написали, единственное, нужно добавить запятую после вывода текста (перед выводом значения переменной Alfa), то есть, в итоге, чтобы в Comment прописать и текст и сразу вывести значение переменное, нужно написать так: Сomment («Значение переменной Аlfa= «, Alfa); Подробнее об этом можно прочитать в этой статье https://sgr-tradeinvest.ru/mql4/globalnye-lokalnye-peremennye.html#a4