Обучение MQL4
Показано с 1 по 7 из 7

Тема: Обучение MQL4

  1. #1
    Теоретик Аватар для TANZA
    Регистрация
    03.04.2013
    Адрес
    Днепропетровск
    Сообщений
    298
    Promo (¢)
    760
    Благодарности
    Получено: 70
    Отправлено: 45

    Обучение MQL4

    Хотели бы Вы автоматизировать свою стратегию торговли на форекс? Ведь согласитесь, лучше самому уметь писать советники, ежели заказывать их у сторонних разработчиков. Обычно советник или индикатор, который вы заказываете у программиста стоит более 100$, что уже не выгодно, у большинства может не быть таких денег. А так вы сможете создать советник не потратив ни копейки. Изучив данный язык, вы сможете не только создавать советники, индикаторы и скрипты, а и читать коды других торговых роботов. Чем это выгодно? Вы сможете "вытащить" из какого-то советника прибыльный код и на его основе сделать свой советник. Плюс заключается в том, что при полном обучении MQL4, вы сможете писать советники на заказ и построить на этом собственный прибыльный бизнес. Обучение для некоторых может показаться трудным, но я вас уверяю, это не так. Но расслабляться тоже не стоит. Обучение может длиться от месяца до полугода.
    Желаю всем успеха в обучении MQL4!

    Полезные ссылки для обучения MQL4:
    Введение
    Минимально возможная программа на MQL4

    Вы не можете благодарить!
    Последний раз редактировалось TANZA; 27.10.2013 в 02:31.

  2. #2
    Теоретик Аватар для TANZA
    Регистрация
    03.04.2013
    Адрес
    Днепропетровск
    Сообщений
    298
    Promo (¢)
    760
    Благодарности
    Получено: 70
    Отправлено: 45
    Введение


    META QUOTES LANGUAGE (MQL4) — язык, на котором пишут торговые роботы: скрипты, индикаторы и эксперты(советники).

    Скрипт — программа, которая выполняется 1 раз — в момент присоединения к графику. Скрипт может выполнять любые команды, но единожды после запуска. Файл программы скрипта находится в папке MetaTrader/experts/scripts. Скрипт применяется для одноразового анализа (в том числе с использованием вычислений индикаторов), одноразового выполнения торговой команды, одноразового отображения информации, и манипуляции с заданными объектами.

    Индикатор — программа, которая выполняется каждый раз на новом тике, после присоединения к графику. Индикатор может выполнять все команды, кроме торговых. Файл программы индикатора находится в папке MetaTrader/experts/indicators. Индикатор применяется для анализа, отображения визуальной информации, подачи визуальных и звуковых сигналов, манипуляций с объектами.

    Советник — программа, которая выполняется каждый раз на новом тике, после присоединения к графику. Советник может выполнять любые команды и использовать данные индикаторов. Файл программы эксперта находится в папке MetaTrader/experts. Эксперт предназначен для анализа (в том числе с помощью индикаторов), осуществления торговли, отображения информации и манипуляций с объектами.

    Эти программы мы с вами будем писать в специальном редакторе MetaEditor, который встроен в терминал MT4. Вызвать редактор можно кнопкой на панели инструментов.



    В редакторе MetaEditor нажимаем Файл –> Создать... В открывшемся окне выбираем, например, Советник и нажимаем кнопку Далее.


    Затем у нас появляется окно, в котором мы даем название нашему торговому роботу и указываем свои контактные данные. Параметры можете не вписывать. Обычно это делают "по ходу" создания советника.


    Итак. После всего этого у нас в редакторе появляется код "заготовка".
    PHP код:
    //+------------------------------------------------------------------+
    //|                                                         Name.mq4 |
    //|                                                        RoboForex |
    //|                                          http://www.roboforex.ru |
    //+------------------------------------------------------------------+
    #property copyright "RoboForex"
    #property link      "http://www.roboforex.ru"

    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+ 
    Здесь мы и будем писать наш советник. Что к чему я объясню в следующий раз.
    Изображения Изображения

    Вы не можете благодарить!
    Последний раз редактировалось TANZA; 25.10.2013 в 00:19.

  3. #3
    Теоретик Аватар для TANZA
    Регистрация
    03.04.2013
    Адрес
    Днепропетровск
    Сообщений
    298
    Promo (¢)
    760
    Благодарности
    Получено: 70
    Отправлено: 45
    Минимально возможная программа на MQL4



    В прошлый раз мы остановились на коде "заготовке".
    PHP код:
    //+------------------------------------------------------------------+
    //|                                                         Name.mq4 |
    //|                                                        RoboForex |
    //|                                          http://www.roboforex.ru |
    //+------------------------------------------------------------------+
    #property copyright "RoboForex"
    #property link      "http://www.roboforex.ru"

    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+ 
    Что же он означает?
    Первая и большинство последующих строк начинается двумя косыми чертами (//) — это однострочный комментарий.
    Комментарий — это необязательная и неисполняемая часть программы. Готовая программа будет работать в соответствии с заложенным в неё кодом независимо от того, есть в ней комментарии или нет. Однако комментарии очень облегчают понимание кода программы. Они могут быть однострочными и многострочными. Однострочный комментарий — это любая последовательность символов, перед которой стоят две косые черты (//). Признак однострочного комментария заканчивается вместе с переводом строки. Многострочный комментарий начинается символами /* и заканчивается символами */
    Например:
    PHP код:
    // Однострочный комментарий
    /*
    Скрипт предназначен для частичного закрытия ордеров.
    Когда часть лота закрывается, позиция переводится в безубыток.
    ........
    */ 
    Вот что получится если мы удалим коментарии:
    PHP код:
    #property copyright "RoboForex"
    #property link      "http://www.roboforex.ru"
    int init() {return(0);}
    int deinit() {return(0);}
    int start()  {return(0);} 
    Очень часто у советниках, скриптах и других написанных на MQL программах вначале указывают дополнительные специфические параметры #property.
    Они тоже необязательны, поэтому мы их удалим из нашего кода. Вот что у нас осталось:
    PHP код:
    int init() {return(0);}
    int deinit() {return(0);}
    int start()  {return(0);} 
    Всего лишь 3 строки и тем не менее это полностью рабочий код.

    В MQL4 существуют 3 функции с предопределенными именами:

    init()функция, вызывающаяся в процессе инициализации модуля, то-есть программа прочитает эту функцию всего лишь один раз при запуске. В случае ее отсутствия при инициализации не вызывается никакой функции.

    start() — основная функция. У экспертов вызывается после прихода очередного тика. У пользовательских индикаторов вызывается при пересчете после прикрепления индикатора к графику, при открытии клиентского терминала (если индикатор прикреплен к графику), а также после прихода очередного тика. У скриптов выполняется сразу после прикрепления к графику и выполнения инициализации. В случае отсутствия в модуле функции start() этот модуль (эксперт, скрипт или пользовательский индикатор) не может быть запущен.

    deinit() — функция, вызывающаяся в процессе деинициализации модуля, то-есть программа прочитает эту функцию при ее выключении. В случае отсутствия этой функции при деинициализации не вызывается никакой функции.

    В описании как мы видим пишется, что функции init() и deinit() могут тоже отсутствовать, поэтому мы их тоже удалим. Вот что у нас получится:
    PHP код:
    int start()  {return(0);} 
    Осталась всего лишь одна строка — это функция start(). При компиляции у нас не возникнет никаких ошибок.
    Компиляция — это преобразование программы из языка понятного нам (в данном случаи MQL) в язык понятный компьютеру. Для компиляции нажмем клавишу «компилировать» —
    В окне снизу у нас высветится:

    Это сообщение означает, что наш скрипт на языке MQL проверен на отсутствие ошибок и преобразован в код, понятный компьютеру.
    Все что мы еще сможем сделать для сокращения нашей программы, так это убрать оператор return():
    PHP код:
    int start()  {} 
    Вот собственно и минимально возможная программа на MQL4.

    В следующий раз мы будем разбирать типы данных.

    Вы не можете благодарить!
    Последний раз редактировалось TANZA; 27.10.2013 в 16:42.

  4. #4
    Новичок Аватар для egoroo1
    Регистрация
    10.02.2014
    Сообщений
    60
    Promo (¢)
    215
    Благодарности
    Получено: 0
    Отправлено: 9
    Когда у меня возникло т желание, помогла стандартная справка с mql4.com, там достаточно доходчиво написано, а спорные вопросы думаю сможет любезно объяснить на _http://www.mql4.com/files/mql4bookrussian.chm

    Вы не можете благодарить!
    Последний раз редактировалось qwezz; 28.02.2014 в 21:42.

  5. #5
    Новичок
    Регистрация
    12.03.2014
    Сообщений
    10
    Promo (¢)
    400
    Благодарности
    Получено: 1
    Отправлено: 0
    давно хотел написать собственный советник, но никак руки не доходили, имеется хорошая стратегия, и тут как я начал изучать программирование, понял что я не потяну этого. Планирую в плотную заняться изучением MQL4. и написать что то под себя.

    Вы не можете благодарить!

  6. #6
    Новичок
    Регистрация
    09.08.2012
    Адрес
    Одесса
    Сообщений
    41
    Promo (¢)
    575
    Благодарности
    Получено: 10
    Отправлено: 0
    !!Посоветуйте литературу для чайников ! Только начинаю изучать mql4...
    Спасибо... :-)

    Вы не можете благодарить!

  7. #7
    Инсайдер Аватар для Names
    Регистрация
    13.09.2012
    Сообщений
    8,647
    Promo (¢)
    290
    Благодарности
    Получено: 377
    Отправлено: 202
    Цитата Сообщение от quyet Посмотреть сообщение
    !!Посоветуйте литературу для чайников ! Только начинаю изучать mql4...
    Спасибо... :-)
    На сайте mql4, есть фао и литература на эту тему+ простенькие советники в примерах.Проще всего учиться в программировании-это смотреть простенькие советники в коде и понимать что к чему.

    Вы не можете благодарить!

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •