Общие функции

Функции общего назначения, которые не вошли ни в одну из специализированных групп.

Alert

void Alert(…)

Отображает диалоговое окно, содержащие пользовательские данные. Параметры могут быть любого типа. Количество параметров не может превышать 64.

Массивы нельзя передавать в функцию Alert(). Массивы должны выводиться поэлементно.

Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью используйте функцию DoubleToStr().
Данные типы bool, datetime и color будут выведены как числа.
Чтобы вывести данные типа datetime в виде строки, необходимо использовать функцию TimeToStr().

Для разделения выводимой информации на несколько строк можно использовать символ перевода строки «\n» либо «\r\n».
См. также функции Comment() и Print().

Параметры:

… — Любые значения, разделенные запятыми.

Пример:

if(Close[0]>SignalLevel)
  Alert("Price ", Close[0]," is coming!!!");

 

Comment

void Comment(…)

Функция выводит комментарий, определенный пользователем, в левый верхний угол графика. Параметры могут иметь любой тип. Количество параметров не может превышать 64.

Массивы нельзя передавать в функцию Comment(). Массивы должны печататься поэлементно.

Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью необходимо использовать функцию DoubleToStr().
Типы bool, datetime и color будут напечатаны как числа.
Чтобы вывести данные типа datetime в виде строки используйте функцию TimeToStr().

Для разделения выводимой информации на несколько строк можно использовать символ перевода строки «\n» либо «\r\n».
См. также функции Alert() и Print().

Параметры:

… — Любые значения, разделенные запятыми.

Пример:

double free=AccountFreeMargin();
Comment("Account free margin is ", DoubleToStr(free,2),"\n","Current time is ", TimeToStr(TimeCurrent()));

 

GetTickCount

int GetTickCount()

Функция GetTickCount() возвращает количество миллисекунд, прошедших с момента старта системы. Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней.

Пример:

int start=GetTickCount();
// некие серьёзные вычисления...
Print("Время вычисления ", GetTickCount()-start, " миллисекунд.");

 

MarketInfo

double MarketInfo(string symbol, int type)

Возвращает различную информацию о финансовых инструментах, перечисленных в окне «Обзор рынка». Часть информации о текущем финансовом инструменте хранится в предопределенных переменных.

Параметры:

symbol — Символ инструмента.
type — Идентификатор запроса, определяющий тип возвращаемой информации. Может быть любым из значений идентификаторов запроса.

Пример:

double bid    = MarketInfo("EURUSD",MODE_BID);
double ask    = MarketInfo("EURUSD",MODE_ASK);
double point  = MarketInfo("EURUSD",MODE_POINT);
int    digits = MarketInfo("EURUSD",MODE_DIGITS);
int    spread = MarketInfo("EURUSD",MODE_SPREAD);

 

MessageBox

int MessageBox( string text=NULL, string caption=NULL, int flags=EMPTY)

Функция MessageBox создает и отображает окно сообщений, а также управляет им. Окно сообщений содержит определенные приложением сообщение и заголовок, любую комбинацию предопределенных значков и командных кнопок. Если функция успешно выполняется, возвращаемое значение — одно из значений кодов возврата MessageBox().
Функцию нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить.

Параметры:

text — Текст, содержащий сообщение для отображения.
caption — Необязательный текст для отображения в заголовке окна сообщения. Если этот параметр пустой, в заголовке окна будет отображено название эксперта.
flags — Необязательные флаги, определяющие вид и поведение диалогового окна. Флаги могут быть комбинацией флагов из следующих групп флагов.

Пример:

#include <WinUser32.mqh>
if(ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045)==false)
{
   int ret=MessageBox("Функция ObjectCreate() вернула ошибку "+GetLastError()+"\nПродолжить?", "Question", MB_YESNO|MB_ICONQUESTION);
   if(ret==IDNO)
     return(false);
}
// продолжение

 

PlaySound

void PlaySound( string filename)

Функция воспроизводит звуковой файл. Файл должен быть расположен в каталоге каталог_терминала\sounds или его подкаталоге.

Параметры:

filename — путь к звуковому файлу.

Пример:

if(IsDemo()) 
   PlaySound("alert.wav");

 

Print

void Print( …)

Печатает некоторое сообщение в журнал экспертов. Параметры могут иметь любой тип. Количество параметров не может превышать 64.

Массивы нельзя передать в функцию Print(). Массивы должны быть напечатаны поэлементно.

Данные типа double выводятся с 4 десятичными цифрами после точки. Чтобы получить большую точность, следует использовать функцию DoubleToStr().
Данные типов bool, datetime и color будут напечатаны в виде чисел.
Чтобы печатать значения datetime как строку с датой, следует использовать функцию TimeToStr().
См. также функции Alert() и Comment().

Параметры:

… — Любые значения, разделенные запятыми.

Пример:

Print("Свободная маржа счета ", AccountFreeMargin());
Print("Текущее время ", TimeToStr(TimeCurrent()));
double pi=3.141592653589793;
Print("Число PI ", DoubleToStr(pi,8));
// Выход: число PI 3.14159265

// Печать массива
for(int i=0;i<10;i++)
   Print(Close[i]);

 

SendFTP

bool SendFTP( string filename, string ftp_path=NULL)

Посылает файл по адресу, указанному в окне настроек на закладке «Публикация». В случае неудачи возвращает FALSE.
Функция не работает в режиме тестирования. Из пользовательских индикаторов также нельзя вызывать эту функцию.
Отсылаемый файл должен находиться в папке каталог_терминала\experts\files или ее подпапках.
Отсылка не производится, если в настройках не указан адрес FTP и/или пароль доступа.

Параметры:

filename — Имя отсылаемого файла.
ftp_path — Каталог FTP. Если каталог не указан, то используется каталог, описанный в настройках.

Пример:

int lasterror=0;
if(!SendFTP("report.txt"))
   lasterror=GetLastError();

SendMail

void SendMail( string subject, string some_text)

Посылает электронное письмо по адресу, указанному в окне настроек на закладке «Почта».
Отсылка может быть запрещена в настройках, также может быть не указан адрес электронной почты. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Параметры:

subject — Заголовок письма.
some_text — Тело письма.

Пример:

double lastclose=Close[0];
if(lastclose<my_signal)
   SendMail("из Вашего эксперта", "Цена изменилась " + DoubleToStr(lastclose, Digits));

 

Sleep

void Sleep( int milliseconds)

Функция задерживает выполнение текущего эксперта или скрипта на определенный интервал.
Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить.
В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды.

Параметры:

milliseconds — Интервал задержки в миллисекундах.

Пример:

//---- wait for 10 seconds
Sleep(10000);