Исследование и автоматизация биржевых технологий

Видео уроки Программирования

MQL4 Программирование. Как самому написать советник / индикатор / скрипт

Kурс обучения начинающих программистов на языке MQL 


Источник заимствован с форума Trade like a PRO

Учебник по программированию на MQL4 MQl4BookRussian

Справочник по языку программирования MQL4 Spravochnik.mql4

Типичные ошибки в программах на MQL4 при переходе на новые билды терминала 600 + Методы их исправления

Скачать все уроки одним файлом


Вы хотите самостоятельно создавать и изменять под себя форекс индикаторы, советники и скрипты? Тогда вы попали по адресу. В этом разделе вы найдете уроки по программированию на языке MQL автоматических система, предназначенных для использования в торговом терминале MetaTrader. Обучение представлено в форме видео-уроков, причем к каждому уроку даются домашние задания, выполнив которые, вы сможете применить полученные знания на практике.

Автор курса — Сергей, известный на форуме "Trade like a PRO" под ником xbms. Долгое время занимался разработкой систем для управления бизнесом, созданием универсальных систем, в некотором роде это были аналоги 1С.
Образование: Высшее, Киевский политехнический институт
Заниматься программированием начал в 13 лет (1988-й год), таким образом опыт работы составляет уже 25 лет.
Первые компьютеры: Yamaha MSX, ЕС1840, БК0010, ZX-Spectrum
Языки программирования: Assembler, C++, Delphi, SQL(MSSQL, MySQL, Interbase), 1C, MQL
В настоящее время работает в бельгийской компании в России на должности Ведущего программиста.
За годы работы написаны тонны кода, это несколько десятков серьёзных проектов и более сотни мелких (с затратами 2-3 месяца).
MQL начал изучать три года назад и за это время было написано наверное больше сотни различных экспертов, опробованы самые разные стратегии.



Урок №1: "MQL - Начало"

Здравствуйте, друзья! Каждый из вас задавался вопросом: «А как бы заставить бота косить бабло вместо меня?». Создать собственный форекс советник, индикатор или скрипт возможно с помощью языка программирования MQL. Как раз по этому поводу мы и начинаем цикл уроков, в которых научим, покажем и расскажем как же это делается на практике.



 

Урок №1,5: "MQL — дополнительный урок по основам"

Господа форекс трейдеры-программеры, встречайте урок по MQL программированию номер «Полтора». Тут я постараюсь объяснить то, что не было упомянуто в первом уроке и из-за чего второй урок мог показаться несколько сложным. Надеюсь, после просмотра этого видео Вы, сможете всё-таки сделать то, о чём мечтали

 

Домашнее задание

  •  Напишите программу (советник или скрипт), который заполнит массив случайными целыми значениями (используйте для этого встроенную функцию MathRand). Вывести значения в журнал экспертов.
  •  Создайте и заполните массив с максимальными ценами за последние X баров (указать как внешний параметр). Значения массива вывести на экран терминала.

 



Урок №2: "Циклы, функции и ордера в советнике"

И снова здравствуйте, господа трейдеры!
Мы продолжаем цикл уроков по MQL, и в этот раз, закончив знакомство с основами (рассмотрим циклы и функции), мы с Вами напишем наш первый советник. И хотя это один из простейших экспертов, он всё же может претендовать на то, чтобы стать базой для Ваших будущих прибыльных торговых систем.

 

Домашнее задание

Используя знания, которые Вы приобрели после просмотра этого видео, прошу Вас дописать советник, который мы разбирали в видеоматериале следующим образом:

  •  Необходимо добавить внешнюю переменную Indent, которая будет являться отступом (выше/ниже) от экстремумов цены и учитывая этот параметр уже устанавливать лимитные ордера.
  •  Выше/ниже экстремумов, на расстоянии PipStop(добавить внешнюю переменную) установить стоп-ордера, учитывая StopLoss и TakeProfit, указанные в параметрах эксперта.



Урок №3: "Пишем советник на внешнем индикаторе"

Приветствую Вас, господа трейдеры!
Мы продолжаем наши уроки по MQL4. И на этот раз мы с Вами напишем советник, который будет использовать сигналы стороннего индикатора на котором разработана торговая система «Победа» и мы с Вами попробуем немного автоматизировать ручной труд.

 

Домашнее задание

Используя знания, которые Вы приобрели после этого урока прошу Вас переделать советник таким образом, чтобы:
  •  закрытие рыночных ордеров происходило не на противоположной границе канала, а на средней линии.
  •  Добавить в советник сигналы индикатора «Стохастик» и совместить с сигналами индикатора «ТМА».
  •  выше/ниже границ каналов поставить страховочные стоп-ордера на некотором расстоянии от рыночных ордеров, дабы компенсировать убытки при возможных потерях от рыночных ордеров (с обязательной установкой SL, TP).



Урок №4: "Ваш первый советник на Мартингейле"

Приветствую Вас, Господа трейдеры!
Мы продолжаем наши уроки по MQL4. И на этот раз мы с Вами напишем советник, который будет работать по системе Мартингейла (в народе такие роботы называют «мартышками»). Это будет весьма простой эксперт, который сможет вам послужить базой для дальнейших изысканий и разработки собственного «Грааля».

 

Домашнее задание

Используя знания, которые Вы приобрели после этого урока, прошу Вас доработать советник следующим образом:
  •  Добавить внешний параметр MaxOrders и доработать советник таким образом, чтобы он не открывал ордеров больше, чем указано в этой переменной.
  •  Добавить параметр MaxLoss, который будет будет отвечать за максимально допустимый убыток в пунктах для эксперта(обязательно учесть объёмы). В случае, если такое произошло, закрывать все открытые ордера.



Урок №5: "Трейлинг-стоп"

Доброго времени суток, юные программисты!
Мы продолжаем цикл уроков по MQL4. По Вашим просьбам, которые были озвучены на форуме, сегодня мы с Вами будем писать трейлинг-стоп для советников. В этом уроке мы рассмотрим несколько вариантов следящего стопа и, возможно, один из них Вы успешно примените на практике при создании своего торгового эксперта.

 

Домашнее задание

Используя знания, которые Вы приобрели после этого видео-урока, прошу Вас написать трейлинг-стоп по :
  •  фракталам (Fractals);
  •  параболику (Parabolic SAR).



Урок №6: "Скрипты"

Здравствуйте, господа программисты!
Цикл уроков по MQL4 продолжается. Сегодня мы с Вами разберёмся что такое форекс скрипт и с чем его едят… На этот раз мы вспомним несколько функций терминала Metatrader и применим их на практике. И очень возможно, что, один из этих скриптов Вы будете постоянно использовать при работе с терминалом.

 

Домашнее задание

Используя знания, которые Вы приобрели после этого видео-урока, прошу Вас написать :
  •  скрипт для установки защитных отложенных ордеров (BuyStop/SellStop) для уже открытых позиций (объём ордеров должен быть в два раза больше существующих);
  •  скрипт для переворота позиций, т.е. существующие ордера должны быть закрыты, а вместо них открыть ордера противоположного направления;
  •  при написании первого скрипта в данном видео-уроке была заведомо допущена ошибка, которая может привести к его некорректной работе. Найдите её и предложите своё решение.



Урок №7: "MQL — пишем сеточный советник"

Приветствую Вас, господа трейдеры! Многие из Вас работали с различными сеточными экспертами, но также наверняка хотели сами научиться их писать. Итак, наш следующий урок по MQL посвящён разработке форекс советника, основанного на сетке. И пусть мы немного подождём, но свою прибыль получим!

 

Домашнее задание

  •  Допишите советник таким образом, чтобы проверялось не два, а три значения RSI, ведь так, возможно, можно лучше проследить тенденцию на рост/падение индикатора RSI, а значит улучшить вход в рынок.
  •  Представьте, что в процессе работы эксперта Вы вдруг решили изменить Take Profit у этого советника, но просто изменение этого параметра сейчас ничего не даст. Доработайте эксперт таким образом, чтобы любое Ваше изменение параметра Take Profit привело к автоматическому изменению TakeProfit рыночных ордеров.
  •  Измените советник таким образом, чтобы и последующие ордера (после первого) открывались также только при росте/падении индикатора RSI (разумеется в зависимости от направления ордеров).



Урок №8: "Качественное открытие и модификация ордеров"

Приветствую Вас, господа форекс трейдеры! Итак, многие из Вас после наших уроков уже начали писать советники, и как я вижу, довольно неплохие. Однако периодически возникают ситуации, когда на реальном счету торговый эксперт не может открыть или модифицировать ордер из-за ошибок сервера (связь пропала, реквоты и т.д.). Это приводит как минимум к потере потенциальной прибыли, как максимум к весомым убыткам, например в следствии того, что советник не поставил StopLoss из-за ошибок сервера.

Итак, наш следующий урок по MQL посвящён разработке правильных функций открытия и модификации ордеров и обработке ошибок.

 

Домашнее задание

  •  В функции OrderModifyX была заведомо допущена ошибка, а именно нет проверки счетчика кол-ва попыток. Исправьте эту ошибку.
  •  Доработайте функцию OrderSendX для корректной работы с лимитными и стоп-ордерами и обработайте возможные возникающие ошибки этих ордеров.
  •  Напишите функцию OrderCloseX, которая будет также корректно закрывать уже существующий рыночный ордер, разумеется с обработкой ошибок.



Урок №9: "Введение в Объектно ориентированное Программирование, структуры"

Ура, господа форекс трейдеры! Вышел новый билд терминала. Судя по всему, Вы уже прочувствовали, что есть некоторая разница между старой версией Metatrader 4 и новой. Но это только присказка, сказка будет дальше…

Помимо нововведений, которые Вы уже просмотрели в этом видео, Вас ждёт ещё много интересного… Обновлён язык MQL4, и теперь мы уже в полной мере можем использовать Объектно-ориентированное программирование. Этому и будет посвящен этот и последующие уроки.

 

Домашнее задание

  •  Добавьте в структуру AccountInfo информацию о валюте счета, свободной маржи и наименование активного сервера, с которым работает Ваш терминал. Выведите информацию в комментарии.
  •  Расширьте структуру Order, добавив в неё информацию о сроке экспирации ордера, объёме ордера и комиссии.
  •  Создайте отдельно структуру и массив, в котором будет содержаться информация об отложенных ордерах. Выведите информацию(номер тикета, тип ордера, цена) в виде комментария на экран, однако это нужно через функцию, с передачей адреса массива в функцию(аналог ShowInfo).



Урок №10: "Введение в ООП: Классы"

Уважаемые господа форекс трейдеры, мы продолжаем наши уроки по MQL. И тема этого урока — классы в объектно-ориентированном программировании.

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

 

Домашнее задание

Итак, посмотрев этот урок, Вы теперь наверняка сможете написать:
  •  Класс, на основе индикатора Moving average, который бы так же давал сигнал на открытие и закрытие позиции.
  •  Советник, который бы открывал и закрывал позиции на основе показаний сигналов от этого класса.



Урок №11: "Как добавить расчет торгового лота в советник"

Приветствую Вас, уважаемые господа трейдеры, мы продолжаем наши уроки по MQL. И тема этого урока — управление размером торгового лота в советниках. Т.е. мани менеджмент.

Одна из основных составляющих успеха на форекс — это умение грамотно управлять своими деньгами. Даже самая эффективная стратегия не сможет обеспечить Вам успех без системы управления капиталом, иначе говоря money management — всему голова.

Money Management — это свод правил и методов, благодаря которым Вы сможете минимизировать риски и обеспечить себе максимально прибыльную торговлю на forex и других финансовых рынках. Давайте разберем как встраивается расчет лота в форекс советники.

 

Домашнее задание

Итак, посмотрев этот урок, Вы теперь наверняка сможете сделать следующее задание:
  •  Возьмите за основу советник, который был Вами написан по материалам предыдущего урока и подставьте расчет лота с риском, который мы описали в этом уроке.



Перенос старых советников на новые билды MT4

Приветствую Вас, уважаемые господа трейдеры, мы продолжаем наши уроки по MQL. Многие из Вас сталкивались с тем, что при попытке компиляции старого советника на новом билде возникали ошибки. Связано это с тем, что новые версии метатрейдер более «продвинутые» и старые механизмы уже не работают. Так как же переделать форекс советник под новые билды MT4 ? Собственно темой этого урока и будет перенос советников со старого билда на новые версии Metatrader 4.

 

Домашнее задание

Итак, посмотрев этот урок, Вы теперь наверняка сможете откомпилировать старый любимый советник:

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



Copyright © EA-SIGNAL 2012 - 2017 | Все права защищены
Яндекс.Метрика Рейтинг@Mail.ru