|
|
Все о автоматизации торгового процесса Обсуждение автоматической торговли и программного обеспечения. Алгоритмы трейдинга. |
|
Опции темы | Опции просмотра |
10.06.2013, 07:04 | #1 |
Acrypto-Мастер
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Язык MQL4 от первого знакомства до первого советника.
На нашем форуме сплошь и рядом идет обсуждение плюсов и минусов разного рода индикаторов, скриптов и автоматизированных торговых систем. Но большинство из тех, кто обсуждает мало что понимают в программировании, а те единицы кто понимает- просто не имеет времени для того чтобы осилить весь объем материала, который разбросан по форуму, и помочь нуждающимся. Вот и решил я создать данную тему, для того чтобы дать народу хоть мало мальски общее понятия о процессе программировании, а также открыть на форуме тему, где бы могли задаваться конкретные вопросы и наши эксперты могли оперативно давать ответы и консультировать народ. А начнем мы из далека, так что же все таки MQL4 представляет из себя? В 2001 году MetaQuotes Software Corp выпустила свою вторую платформу для работы на Forex, и на рынке CFD - MetaQuotes. Там то и была добавлена возможность создания инструментов для торговли с помощью языка программирования, которая получила логическое названия MetaQuotes Language (MQL), в специальной подпрограмме, которая входит в состав терминала MetaEditor. Каждый год MetaQuotes Software Corp усовершенствовала свой продукт и сейчас мы имеем MetaTrader 5. Но большего внимания в использовании заслужвает платформа MetaTrader 4, которая была создана еще в 2005 году с програмой – редактором МetaEditor 4. О ней и пойдет наш разговор. Для того чтобы открыть MetaEditor 4, мы имеем три варианта: - в меню «Сервис» терминала MetaTrader 4, есть пункт «Редактор MetaQuots Language» на нем и нажимаем; - использовать кнопку быстрого запуска «MetaEditor»; - использовать гарячюю клавишу клавиатуры, при открытом рабочем терминале, F4. И так, открыли мы редактор MetaEditor 4. Что же делать дальше? А дальше все просто, как в любом текстовом редакторе нам нужно создать новый файл: -выбираем пунт меню «File» в нем выбираем новый объект «New». Программа предлагает нам выбрать один из возможных объектов, которые мы хотим создать. Это может быть советник, индикатор, скрипт, библиотека ну и ряд дополнительных функций. После того, как вы выберете нужный вам объект, вам предложат указать его имя, имя автора и его электронный адрес. Теперь все готово для работы, и вам потребуется знания основных функций и операторов которые используются при построении инструмента, и воплощение его желаемой функциональности. Сейчас же рассмотрим принцип построения этого тела, его основные составляющие. При создании нового объекта, редактор сразу предлагает вам файл с уже написанным некоторым кодом, это 3 основные функции init(), start() и deinit(), каждая из которых начинаеться с int и return(0) и между ними вписывается код, который в будущем будет поэтапно реализовыватся. Структуру программы можно описать следующим образом: 1. Головная часть программы – здесь указывается реквизиты автора программы, 2. Специальная функция init() – описывает действие, которое программа будет осуществлять при её открытии, 3. Специальная функция start() – действия, которые программа осуществляет в процессе своего существования на графике (в основном при изменении цены) и имеет цикличный характер, 4. Специальная функция deinit() – действия, которая программа единожды исполняет при отсоединении программы от клиентского графика, 5. Пользовательские функции – функции, которые автор вводить по мере необходимости. картинка (5).png На счет расположения этих составных частей программы, то существует только два правила: - головная часть программы в обязательном порядке должна находиться в самом начале (первые несколько строк кода); - ни одна функция не может быть описана внутри другой функции. Если эти ошибки все же будут допущены, то на стадии компиляции они высветятся в отдельном блоке редактора, и компиляция не будет произведенна. Компиляция, это перевод текста, который написан создателем, в машинный код, который будет понятен терминалу для исполнения. Делается это довольно просто: либо с помощью специальной кнопки в меню редактора MetaEditor, либо с помощью гарячей кнопки клавиатуры F5. картинка (6).JPG Если ошибок нет, тогда, мои поздравления, советник готов к использованию и появился в списке советников терминала MetaTrader 4. Еще хотелось бы отметить, что в редакторе есть встроенные библиотеки функций, которые довольно таки неплохо помогают программистам при написании кода. Они имеют описания функций и правила их написания. Для того чтобы программисту или новичку не искать необходимуюю функцию во множестве книг и сайтов можно прямо из редактора узнать необходимую информацию. Вот так мы с вами прошли очень краткий курс по MQL4 программированию. Надеюсь, статья будет для вас полезной, и при решении в дальнейшем изучать программирования с помощью MetaEditor вы будете использовать материалы и информацию с нашего форума Автор: Crosh Все права на статью принадлежат http://forum.forex-investo.ru Копирование строго запрещено. |
13.06.2013, 16:33 | #2 |
Acrypto-Профессионал
Регистрация: 08.04.2013
Сообщений: 10,719
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Спасибо за такую познавательную статью в которой так подробно всё расписали и показали как на самом деле это делается. В сою очередь задавался вопросом как же можно к примеру написать себе советник, что бы можно было торговать именно так как хочешь ты. Но посмотрев увидел, что это действительно не так всё легко и просто. Теперь имею более глубокое представление о том как их возможно написать.
|
14.06.2013, 08:00 | #3 | |
Acrypto-Мастер
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Цитата:
|
|
15.06.2013, 11:55 | #4 |
Новичок
Регистрация: 03.06.2013
Сообщений: 34
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Привет! Почитав про платформу MQL4 я понял что это какая-то програмка со своим языком программирования, но если честно я до конца не могу понять что собой она представляет, для чего именно она была создана и обязательно нужно ее изучать, если да то как разобраться с ее языком программирования?? За ранее спасибо))
|
18.06.2013, 14:46 | #5 | |
Acrypto-Мастер
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Цитата:
|
|
18.06.2013, 18:57 | #6 |
Acrypto-Профессионал
Регистрация: 13.02.2013
Сообщений: 7,951
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Я вот в школе изучал Бейсик,да и его толком не помню, поэтому пробовал самостоятельно обучиться этому языку, но что-то не складывалось. Закачивал уроки, еще на форуме Альпари были. Но потом остановился уже на готовых скриптах и индикаторах, но они сомнительного качества, и сейчас все больше склоняюсь возобновить обучение, да все как-то не хватает времени
|
18.06.2013, 21:52 | #7 |
Acrypto-Мастер
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Мне как то с первого раза так же не пошло. Но все же я себя переборол и сейчас уже вижу неплохой результат. Довольно много в изучении мне помог сайт mql4.com. Там очень много информации от азов до уже готовых скрипто с пояснениями. Также хорошие уроки по программированию у Олега Ремизова. Да и так информации по этому поводу много. так что даже тот кто не знает ничего о программировании при желании сможет стать программистом)
|
09.10.2013, 11:49 | #8 |
Мастер
Регистрация: 22.08.2013
Сообщений: 3,797
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
В изучении mql как и любого другого аналогичного языка программирования важно уловить общую концепцию и, как азбуку, заучить основную (наиболее употребляемую) часть операторов. И на базе этого можно уже "ляпать" всё, что угодно, просто осмысливая логику желаемого алгоритма, и составляя эту логику как конструктор из знакомых операторов. Хотя... бывает, что логика верная, но алгоритм "хромает" - не срабатывает, либо работает не совсем корректно, тогда надо хорошенько покопаться в коде. Это от того, что языки программирования тоже не совершенны, много там не продумано во всех возможных комбинациях.
|
29.10.2013, 14:25 | #9 | |
Новичок
Регистрация: 22.10.2013
Сообщений: 101
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Цитата:
Прошу прощения, но вот это шокировало: "очень похожу на С++ и Паскаль". Вы на самом деле понимаете в программировании? |
|
30.10.2013, 20:21 | #10 | |
Acrypto-Мастер
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Цитата:
Я же лишь знаю то что как в паскале так и в mql4 структура программного кода, имеет блоки, а так же логические операторы и функции которые за своим функционалом напоминают один одного. Из моего опыта (вы наверное скажете скудного опыта) я могу судить что они похожи. |
|