Язык MQL4 от первого знакомства до первого советника - Форум о заработке, инвестициях и криптовалюте
Форум о заработке, инвестициях и криптовалюте
animated-gif-3

Вернуться   Форум о заработке, инвестициях и криптовалюте > Практический трейдинг > Все о автоматизации торгового процесса

Важная информация

Все о автоматизации торгового процесса Обсуждение автоматической торговли и программного обеспечения. Алгоритмы трейдинга.

Ответ
 
Опции темы Опции просмотра
Старый 10.06.2013, 07:04   #1
Crosh
Acrypto-Мастер
 
Аватар для Crosh
 
Регистрация: 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
Копирование строго запрещено.
Миниатюры
Нажмите на изображение для увеличения
Название: картинка (5).png
Просмотров: 86
Размер:	41.8 Кб
ID:	9205   Нажмите на изображение для увеличения
Название: картинка (1).JPG
Просмотров: 94
Размер:	58.7 Кб
ID:	9206   Нажмите на изображение для увеличения
Название: картинка (2).JPG
Просмотров: 92
Размер:	32.1 Кб
ID:	9207   Нажмите на изображение для увеличения
Название: Картинка (3).JPG
Просмотров: 98
Размер:	34.7 Кб
ID:	9208   Нажмите на изображение для увеличения
Название: картинка (4).JPG
Просмотров: 101
Размер:	58.8 Кб
ID:	9209  

Нажмите на изображение для увеличения
Название: картинка (6).JPG
Просмотров: 81
Размер:	23.9 Кб
ID:	9210  
Crosh вне форума   Ответить с цитированием
Старый 13.06.2013, 16:33   #2
valvin1
Acrypto-Профессионал
 
Аватар для valvin1
 
Регистрация: 08.04.2013
Сообщений: 10,719
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Спасибо за такую познавательную статью в которой так подробно всё расписали и показали как на самом деле это делается. В сою очередь задавался вопросом как же можно к примеру написать себе советник, что бы можно было торговать именно так как хочешь ты. Но посмотрев увидел, что это действительно не так всё легко и просто. Теперь имею более глубокое представление о том как их возможно написать.
valvin1 вне форума   Ответить с цитированием
Старый 14.06.2013, 08:00   #3
Crosh
Acrypto-Мастер
 
Аватар для Crosh
 
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Автор темы По умолчанию

Цитата:
Сообщение от Форум Посмотреть сообщение
Спасибо за такую познавательную статью в которой так подробно всё расписали и показали как на самом деле это делается. В сою очередь задавался вопросом как же можно к примеру написать себе советник, что бы можно было торговать именно так как хочешь ты. Но посмотрев увидел, что это действительно не так всё легко и просто. Теперь имею более глубокое представление о том как их возможно написать.
Ну во первых, не всегда можно воплотить торговую стратегию в программный модуль, так как некоторые из них используют субъективное мнение трейдера. А код исполняет только конкретные условия и действия. А во вторых mql4 программирования очень похожу на С++ и Паскаль, по этому для тех кто изучал программирование по школьной программе, не составить труда выучить и его. а если с нуля, тогда да, усилий придется приложить не мало.
Crosh вне форума   Ответить с цитированием
Старый 15.06.2013, 11:55   #4
Петро
Новичок
 
Регистрация: 03.06.2013
Сообщений: 34
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Привет! Почитав про платформу MQL4 я понял что это какая-то програмка со своим языком программирования, но если честно я до конца не могу понять что собой она представляет, для чего именно она была создана и обязательно нужно ее изучать, если да то как разобраться с ее языком программирования?? За ранее спасибо))
Петро вне форума   Ответить с цитированием
Старый 18.06.2013, 14:46   #5
Crosh
Acrypto-Мастер
 
Аватар для Crosh
 
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Автор темы По умолчанию

Цитата:
Сообщение от Петро Посмотреть сообщение
Привет! Почитав про платформу MQL4 я понял что это какая-то програмка со своим языком программирования, но если честно я до конца не могу понять что собой она представляет, для чего именно она была создана и обязательно нужно ее изучать, если да то как разобраться с ее языком программирования?? За ранее спасибо))
Изучение её не есть необходимым фактором. Как я понимаю вы человек новый в форексе, так что вам это и вовсе не нужно. Используется эта подпрограмма, для того чтобы создавать индикаторы, скрипты и советники. Если индикаторы и скрипты можно найти в более свободном доступе, то советники создаются и распространяются на платной основе. Я имею ввиду хорошие качественные советники. И если у вас есть собственная ТС то по ней можно написать советник (программа которая будет автоматически торговать).
Crosh вне форума   Ответить с цитированием
Старый 18.06.2013, 18:57   #6
serg dnepr
Acrypto-Профессионал
 
Аватар для serg dnepr
 
Регистрация: 13.02.2013
Сообщений: 7,951
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Я вот в школе изучал Бейсик,да и его толком не помню, поэтому пробовал самостоятельно обучиться этому языку, но что-то не складывалось. Закачивал уроки, еще на форуме Альпари были. Но потом остановился уже на готовых скриптах и индикаторах, но они сомнительного качества, и сейчас все больше склоняюсь возобновить обучение, да все как-то не хватает времени
serg dnepr вне форума   Ответить с цитированием
Старый 18.06.2013, 21:52   #7
Crosh
Acrypto-Мастер
 
Аватар для Crosh
 
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Автор темы По умолчанию

Мне как то с первого раза так же не пошло. Но все же я себя переборол и сейчас уже вижу неплохой результат. Довольно много в изучении мне помог сайт mql4.com. Там очень много информации от азов до уже готовых скрипто с пояснениями. Также хорошие уроки по программированию у Олега Ремизова. Да и так информации по этому поводу много. так что даже тот кто не знает ничего о программировании при желании сможет стать программистом)
Crosh вне форума   Ответить с цитированием
Старый 09.10.2013, 11:49   #8
Secret
Мастер
 
Аватар для Secret
 
Регистрация: 22.08.2013
Сообщений: 3,797
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

В изучении mql как и любого другого аналогичного языка программирования важно уловить общую концепцию и, как азбуку, заучить основную (наиболее употребляемую) часть операторов. И на базе этого можно уже "ляпать" всё, что угодно, просто осмысливая логику желаемого алгоритма, и составляя эту логику как конструктор из знакомых операторов. Хотя... бывает, что логика верная, но алгоритм "хромает" - не срабатывает, либо работает не совсем корректно, тогда надо хорошенько покопаться в коде. Это от того, что языки программирования тоже не совершенны, много там не продумано во всех возможных комбинациях.
Secret вне форума   Ответить с цитированием
Старый 29.10.2013, 14:25   #9
VVS
Новичок
 
Аватар для VVS
 
Регистрация: 22.10.2013
Сообщений: 101
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Цитата:
Сообщение от Crosh Посмотреть сообщение
Ну во первых, не всегда можно воплотить торговую стратегию в программный модуль, так как некоторые из них используют субъективное мнение трейдера. А код исполняет только конкретные условия и действия. А во вторых mql4 программирования очень похожу на С++ и Паскаль, по этому для тех кто изучал программирование по школьной программе, не составить труда выучить и его. а если с нуля, тогда да, усилий придется приложить не мало.


Прошу прощения, но вот это шокировало: "очень похожу на С++ и Паскаль". Вы на самом деле понимаете в программировании?
VVS вне форума   Ответить с цитированием
Старый 30.10.2013, 20:21   #10
Crosh
Acrypto-Мастер
 
Аватар для Crosh
 
Регистрация: 15.02.2013
Сообщений: 7,463
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Автор темы По умолчанию

Цитата:
Сообщение от VVS Посмотреть сообщение
Прошу прощения, но вот это шокировало: "очень похожу на С++ и Паскаль". Вы на самом деле понимаете в программировании?
На самом деле понимаю, но наверное не так сильно как вы. Вы ведь наверное уже написали не один прибыльный торговый советник, и известны на весь мир своим познанием в программировании.

Я же лишь знаю то что как в паскале так и в mql4 структура программного кода, имеет блоки, а так же логические операторы и функции которые за своим функционалом напоминают один одного. Из моего опыта (вы наверное скажете скудного опыта) я могу судить что они похожи.
Crosh вне форума   Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Загрузка...


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
vB.Sponsors

© 2009-2020 «ACRYPTOINVEST.COM»
сообщество трейдеров, инвесторов и игроков