Рекомендуемый ДЦ - Forex4you !

На первом уроке по изучению языка MQL мы научились запускать редактор MetaEditor и создавать новый скрипт MQL4. Но как мы можем увидеть, созданный нами скрипт MT4 пока не выполняет никаких функций в торговом терминале Metatrader 4.

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

Для этого мы должны определится с допустимым риском для нашего депозита на форекс (т.е. какое кол-во средств мы будем задействовать в торговле при использования советника форекс или в нашем случаи — скрипта для Metatrader 4).

Все учебники по форекс и опытные трейдеры рекомендуют:  "никогда не рискуйте при заключении сделок на форекс более чем 2−5% от своего депозита". Ну что ж, давайте прислушаемся к их советам. Но т.к. четкой цифры нет, то нам нужно чтобы созданный нами скрипт запрашивал эту цифру.

Теперь давайте реализуем эту функцию на языке MQL4:

Введем в начале скрипта команду: #property show_inputs
У нас получилось:
//±-----------------------------------------------------------------+
//| test.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//±-----------------------------------------------------------------+

#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property show_inputs
//±-----------------------------------------------------------------+
//| script program start function                                                   |
//±-----------------------------------------------------------------+

int start()
{
//----

//----
return(0);
}
//±-----------------------------------------------------------------+
команда #property show_inputs означает выводить окно со свойствами перед запуском нашего скрипта MQL.

Попробуем запустить наш получившийся скрипт. Но для этого его нужно предварительно откомпилировать !

Компиляция — это преобразование нашей получившийся программы из языка понятного нам (в данном случаи MQL) в язык понятный компьютеру. Для компиляции скрипта MQL нажмем клавишу «компилировать» —  Компиляция
При этом в нижней части экрана высветится:

Компиляция в MetaEditor

Это сообщение означает, что наш скрипт на языке MQL проверен на отсутствие ошибок и преобразован в код, понятный компьютеру.
Затем переходим в терминал Metatrader 4 из редактора MetaEditor, нажав клавишу "Терминал" -  переход в Metatrader 4

Теперь, когда мы уже находимся в торговом терминале Metatrader 4 - в окне «Навигатор» выбираем пунк «Скрипты»:

Навигатор Metatrader 4

Ищем в данном списке наш созданный скрипт для MT4 — «test»

скрипт в навигаторе MT4

И дважды щелкнув мышкой по скрипту «test»- запускаем его !

Настройки скрипта в MT4

Но теперь возникает вопрос: «куда же вводить наш процент от депозита для расчета лота на форекс?»

Для этого мы должны задать его предварительно в нашем скрипте. Идем снова в редактор MetaEditor и добавляем в начале скрипта команду: extern int MaxRisk=2;

В итоге наш код должен выглядеть так:
//±-----------------------------------------------------------------+
//| test.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//±-----------------------------------------------------------------+

#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property show_inputs
extern int MaxRisk=2;
//±-----------------------------------------------------------------+
//| script program start function |
//±-----------------------------------------------------------------+
int start()
{
//----

//----
return(0);
}
//±-----------------------------------------------------------------+

Давайте разберемся что мы написали, используя команду - extern int MaxRisk=2;

Или другими словами, рассмотрим формат написания команд в редакторе MetaEditor:

extern — означает что данный параметр внешний (т.е. его можно изменить при запуске скрипта или советника MT4)

int  - тип переменной (компьютеру же надо знать что мы ему передаем: число, текст и т.д.)

MaxRisk  — название нашей переменной, которое может быть абсолютно любым — на ваше усмотрение !

=2 — присвоили данной переменной (в данном случаи MaxRisk) значение, которое будет высвечиваться по умолчанию в окне выставления настроек скрипта в терминале Metatrader 4.
; — знак, означающий окончание нашей команды.

Теперь снова компилируем и запускаем наш скрипт «test» (как было описано выше). Если компилятор «ругается» (сообщает) об ошибках — это означает что то мы сделали что-то не правильно и следует проверить правильность кода на языке MQL4 !

Ели ошибок нет, то при запуске скрипта (или советника) в терминале Metatrader 4, появляется следующее окошко:

правильно созданный скрипт в Metatrader 4

Как мы теперь можем видеть, при запуске скрипта «test», у нас появилась новая вкладка «Входные параметры».
Переходим на нее:

Входные параметры скрипта Metatrader 4

Вот в данной вкладке мы и видем наш параметр MaxRisk, который служит для расчета лота в MT4 и который мы будем в дальнейшем использовать при создании скриптов и советников на языке MQL !