MQL4 для чайников: Первая простая программа



В статье первая программа на MQL4 для чайников Мы разберем создание, простейшего индикатора информации о рынке: спред, Кредитное плечо, маржа, шаг, минимальный лот и тд.

Чтобы написать свой скрипт, откройте MetaEditor. Это программа внутри MetaTrader для написания скриптов. Чтобы открыть, нажимаем в меню «СервисРедактор MetaQuetes».

Первая программа на MQL

Потом нажимаем в меню «FileNew» для создания нового скрипта на MQL. Перед Вами появится выбор: советник, индикатор, скрипт и т.д. Выбираете первый пункт. Это значения сильно не имеет, так как это просто заготовка.

MQL4 для чайников

Потом пишем Name имя скрипта. Так как он будет у нас отображаться в списке советников, я назвал asistent, потому что наш первый скрипт будет подсказывать информацию о рынке. Author — это кому принадлежит скрипт, мне или Вам :)

Первая программа на MQL

Все. Теперь у Вас есть скрипт, только он ничего не умеет делать.

Он состоит из 3 частей:
int init() — выполняется при старте скрипта.
int deinit() — выполняется при завершении скрипта.
int start() — выполняется во время работы скрипта; это главная процедура, куда мы и вставим свой код ниже.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//+------------------------------------------------------------------+
//|                                                     asistent.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+

Вот мой скрипт. Он выводит информацию на график о текущей торговой паре. Вы можете просто скопировать код и запустить его. Чтобы скрипт работал, надо его откомпилировать. Нажмите клавишу F5 или вверху Compile. Компиляция простым языком — это проверка ошибок в скрипте. Если у Вас будут ошибки, они отобразяться снизу.

Первая программа на MQL

Что сделал с кодом:
1. Я удалил init() и deinit(), так как в данном советнике они нам не нужны.
2. Запомните: каждая процедура начинается с символа { и заканчивается символом }
3. Символ // — это комментарий.
4. В конце каждой строки должен стоять символ ;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#property copyright "Copyright Anton Bergov"
#property link      "http://www.bergovfx.com"
 
int start()
{
// string = это переменная, типа строка, назвали ее comm
// + добавить к строке еще строку
// "n" добавить перенос на следующую строку, типа клавиша Enter
string comm;
comm=comm+"ИНФОРМАЦИЯ РЫНКА "+"n";
comm=comm+"--------------------------------- "+"n";
// Symbol() - выводит текущий символ графика, пример EUR/USD
comm=comm+"Торговый инструмент = "+Symbol()+"n";
comm=comm+"Спред пары = "+MarketInfo(Symbol(),MODE_SPREAD)+"n";
comm=comm+"Кредитное плечо = "+AccountLeverage()+"n";
comm=comm+"Минимальный стоп = "+MarketInfo(Symbol(),MODE_STOPLEVEL)+"n";
comm=comm+"Своп покупки = "+MarketInfo(Symbol(),MODE_SWAPLONG)+"n";
comm=comm+"Своп продажи = "+MarketInfo(Symbol(),MODE_SWAPSHORT)+"n";
comm=comm+"Свободная маржа = "+MarketInfo(Symbol(),MODE_MARGINREQUIRED)+"n";
comm=comm+"Шаг лота = "+MarketInfo(Symbol(),MODE_LOTSTEP)+"n";
comm=comm+"Минимальный лот = "+MarketInfo(Symbol(),MODE_MINLOT)+"n";
 
// double = это переменная, типа цифра
double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);
if(MaxLot>AccountFreeMargin()*0.75/MarketInfo(Symbol(),MODE_MARGINREQUIRED))
MaxLot=AccountFreeMargin()*0.75/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
//где 75% - залог позиции, и 25% стоплос
 
comm=comm+"Максимальный лот = "+MaxLot+"n";
 
MessageBox(comm);
}

После того, как Вы добавили код, сохранили и откомпилировали без ошибок, открываем терминал и перетягиваем скрипт на график. Теперь наш помощник показывает дополнительную информацию о рынке.

MQL4 первая программа

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


Понравилась статья, поставь оценку:
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading...Loading...


Будь в курсе новостей сайта. Подпишись!

После подписки сразу получите набор всех мои разработок (индикаторы, скрипты, советники) + трейдерская литература! Посмотреть содержимое подарка


Еще записи:





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

Написать комментарий

  1. kibkz:

    мда…. все просто. Хорошо бы еще знать где хоть что нибудь для чайников почитать вобще про подобное программирование… для гуманитариев лес темный))

  2. виталий:

    за место етого » надо ковычки поставить

  3. виталий:

    блин ковычки не печатает

  4. виталий:

    там код поправить нужно и все будет переносить
    вот так

    ____________
    comm=comm+»ИНФОРМАЦИЯ РЫНКА «;

    comm=comm+»——————————— «+»\n»;
    // Symbol() — выводит текущий символ графика, пример EUR/USD
    comm=comm+»Торговый инструмент = «+Symbol()+»\n»;
    comm=comm+»Спред пары = «+MarketInfo(Symbol(),MODE_SPREAD)+»\n»;
    comm=comm+»Кредитное плечо = «+AccountLeverage()+»n»;
    comm=comm+»Минимальный стоп = «+MarketInfo(Symbol(),MODE_STOPLEVEL)+»\n»;
    comm=comm+»Своп покупки = «+MarketInfo(Symbol(),MODE_SWAPLONG)+»\n»;
    comm=comm+»Своп продажи = «+MarketInfo(Symbol(),MODE_SWAPSHORT)+»\n»;
    comm=comm+»Свободная маржа = «+MarketInfo(Symbol(),MODE_MARGINREQUIRED)+»\n»;
    comm=comm+»Шаг лота = «+MarketInfo(Symbol(),MODE_LOTSTEP)+»n»;
    comm=comm+»Минимальный лот = «+MarketInfo(Symbol(),MODE_MINLOT)+»\n»;
    _______________

  5. Илья:

    вообще печатает всё споподряд не переносит строку исправьте код, а то не ясно как новую строку начинать!

ЗАДАЙ ВОПРОС?

Top-100 блогов инвесторов, 
					трейдеров и аналитиков   |     |   Яндекс.Метрика

website monitoring results and uptime stats [Valid RSS] Счетчик PR-CY.Rank