
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я сам сейчас прохожу этот путь, поэтому ниже я приведу несколько кратких заметок по теме статьи с точки зрения трейдера, который хочет торговать на финансовых рынках с помощью Metatrader, используя собственные алгоритмы. Не забывайте, что основная цель трейдера - торговля, а инженера-программиста - программирование.
1. Самым большим препятствием будет продираться через грязь неактуальности, которая в наши дни превратила интернет-обучение в настоящее болото. На поиск хороших источников уйдет больше времени и сил, чем на обучение по нужным источникам, когда вы их найдете.
2. Насколько мне известно, не существует хорошего недорогого источника для изучения MQL. Курсы Udemy не так уж хороши (говорю по собственному опыту), их стоит покупать только тогда, когда на них действуют большие скидки (10 евро или ниже). Видео на Youtube: есть несколько каналов, которые довольно хороши - если вы ищете конкретные вещи. Некоторые из них дают лишь самые основы. Ни один не выкладывает систематический курс, который научит вас всему, что нужно знать, причем не бесплатно. Большинство бесплатных хороших видео обычно являются маркетинговой воронкой для платных курсов. В этом нет ничего плохого, просто вы должны быть в курсе. Яне могу комментировать платные курсы, никогда их не проходил.
3. В программной инженерии в целом MQL просто не существует. Есть пара книг, в которых язык изучается в полном объеме. Они написаны для программистов, а не для трейдеров. Таким образом, изучение всего этого займет много месяцев, а то и лет вашего времени, даже если у вас хватит терпения и времени. Время, которое вы могли бы потратить на торговлю. Фактический набор знаний, необходимых для создания собственных советников и индикаторов, достаточно сложных для того, чтобы им можно было доверять на реальных счетах, значительно меньше. Многие вещи просто не нужны для собственных кодов. Если вы хотите заниматься фрилансом или продавать готовые коды на MQL, вам, конечно, нужно освоить большую часть языка. Попутное замечание:даже если вы трейдер, возможно, стоит потратить время и усилия на изучение общей программной инженерии (на одном из крупных языков, таких как C++ или C#, но не MQL) на стороне. Если вы прогорите, то заработок в качестве кодера позволит вам не умереть с голоду и медленно наращивать капитал, чтобы снова вступить в игру.
4. MQL Справочный набор страниц на этом сайте - это справочник, а не учебник. Бесценно знать изнутри и снаружи конкретные элементы языка MQL. Учиться по нему просто кошмарно (я знаю, я пробовал).
5. Лучше всего, на мой взгляд, изучать основы на C++. Существует множество отличных курсов по C++, которые можно приобрести недорого или бесплатно. C# или Java (НЕ JavaScript, JS - это как Python, только хуже!) тоже подойдут, хотя и будут немного более удаленными. Также, на мой взгляд, не стоит изучать C. В 2023 году C - это нишевый язык для системного программирования (ОС, драйверы и т.д.). C++ включает в себя все то, что нужно для классического C.
6. Основной функционал MQL - это практически C++. К базовому языку добавлена целая куча перечислений, встроенных функций и классов, специфичных для торговли на платформе MT. Этих специфических для торговли элементов в C++, конечно же, нет. Как только вы узнаете, как ведут себя переменные, константы, типы данных, функции и объекты в целом в C++, вам будет очень легко получить эти дополнительные специфические элементы MQL. Вам нужно изучить ООП достаточно, чтобы знать, что это такое, что оно делает и как использовать объекты из встроенных классов библиотеки MT в ваших процедурных кодах наряду с функциями. Использовать имеющиеся классы гораздо проще, чем программировать свои собственные классы, создавать библиотеки, управлять десятками или сотнями заголовочных (.mqh) файлов и т.д. Программировать собственное ООП - все равно что создавать многонациональную компанию по производству автомобилей только для того, чтобы создать один-единственный автомобиль, на котором вы сможете каждый день ездить из дома на работу.
7. Забудьте о Python. Я могу написать об этом много страниц, но просто поверьте мне на слово. Python упрощает одни вещи и усложняет другие. Настоящая проблема Python в том, что у него слишком много свободы. Жесткий синтаксис C++, статические типы и, прежде всего, компилятор Sergeant Compilator в конечном итоге приводят к кодам, которые очень однозначны и надежны. Свобода Python - это зачастую свобода зайти в воду и утопиться. Трудности" изучения C++ - это скорее миф, чем реальность. Подумайте вот о чем: {} и ; в C++ заменяются в Python на : и обязательные отступы, в итоге усилия оказываются примерно одинаковыми. В любом случае вам не нужно изучать весь C++, чтобы освоить MQL5. Я выучил Python вплоть до ООП, затем через 16 месяцев понял, что все еще нахожусь в точке "0" своего пути как algo-программиста, после чего заново выучил C++ (я забыл около 99% курса C++, который прослушал, будучи студентом бакалавриата STEM почти 30 лет назад). После этого я смог писать пригодные для использования советники и индикаторы на MQL5.
6. Во многих отношениях MQL5 ближе к C++, чем MQL4. Это приводит к тому, что многие вещи на MQL5 сложнее, чем на MQL4. Тем не менее, в 2023 году людям, которые только начинают изучать MQL4, не рекомендуется. MQL4 держится за счет своей базы пользователей, оставшейся с тех времен, когда он был актуальным. Даже если бы оба языка были равны, MT5 поставляется с превосходным бэктестером и возможностью загрузить отдельную платформу MT с никогда не истекающим сроком действия, не связанным с брокером демо-счетом, чтобы играть по своему усмотрению. При необходимости вы легко сможете перевести свои советники на MQL5 обратно на MQL4, как только освоите MQL5. Индикаторы требуют немного больше усилий, но все же вполне выполнимы.
7. Итак, вот путь обучения, который сработал для меня:
- Изучите основы программирования на одном из общих языков программирования, проще всего на C++, потому что он наиболее близок к MQL. На всех курсах программирования основы преподаются с помощью простых консольных программ. В MetaEditor нет консоли. Напечатать "Helllo World!" в журнале терминала гораздо хуже, чем напрямую на консоли с помощью "cout >>". Взаимодействовать с MQL-кодом можно только косвенно через входные параметры, а не в реальном времени через "cin >>".
- После того как вы освоите основы программирования, зайдите на youtube и найдите видео, в котором пошагово рассказывается о создании полноценного рабочего советника или индикатора (на момент написания статьи их достаточно много). Сначала посмотрите видео целиком, лучше всего отключив звук, включив субтитры и увеличив скорость до 1,5х или 2х, чтобы лучше усвоить содержание. Затем посмотрите еще раз и наберите код, ставя видео на паузу и перематывая, если нужно, с включенным звуком.
- Не изучайте больше курсы программирования - просто кодируйте код, бэктестируйте бэктест. К сожалению, MQL не предлагает возможности юнит-тестирования (необходимого для правильной разработки программного обеспечения), но при определенной креативности вы можете разработать свои собственные способы использования бэктестера для этого. При необходимости посмотрите больше видео по конкретным темам на . Статьи/посты на этом сайте также могут быть полезны. Нажимайте F1 в MetaEditor так часто, как вам нужно. Нажимайте ее, даже если это не так, просто чтобы узнать что-то новое или отточить то, чему вы уже научились, каждый день.
7. Aqui está o caminho de aprendizado que funcionou para mim:
- Изучение основ программирования с помощью общего языка программирования, проще всего на C++, поскольку он является предшественником MQL. Все курсы по программированию изучают базовый уровень с простыми консольными программами. В MetaEditor нет консоли. Нажатие кнопки "Olá, Mundo!" в терминале Journal - это опыт, значительно уступающий непосредственному использованию консоли с командой "cout >>". Вы можете взаимодействовать с MQL-кодом только косвенно, используя параметры ввода, а не в реальном времени, используя "cin >>".
- После того, как вы освоите основы программирования, зайдите на youtube и найдите видеоролики, в которых passo a passo объясняется построение полного функционального советника или индикатора (их существует множество в тот момент, когда вы говорите). Прежде всего, вы можете посмотреть целое видео, для этого достаточно просто отсоединить его от экрана, просмотреть легенды и ускорить до 1,5x или 2x для просмотра контента. После этого, ассистируя новичку, оцифруйте код, поставив видео на паузу и при необходимости перемонтировав его, с помощью сома.
- Не нужно делать много курсов по программированию - достаточно кодировать кодировку, бэктест бэктест бэктест. Не смотря на то, что MQL не имеет возможности проверки на единство (что необходимо для создания адекватного программного обеспечения), но при наличии достаточной изобретательности вы можете разработать свой собственный способ использования бэктестера для этого. Если вы хотите узнать больше о конкретных темах, воспользуйтесь видеороликами на . Статьи/постагены на сайте могут быть одинаково úteis. Нажимайте F4 в редакторе MetaEditor всегда, когда это необходимо. Нажимайте на клавишу F4 в метаредакторе всегда, когда необходимо уточнить.
Спасибо за доказательства. Это более или менее то, о чем я хотел написать эту статью. Потому что многие люди, начинающие учиться, не знают, в каком направлении двигаться, и в итоге бросают учебу, считая, что это очень сложно или непрактично.
Вышла новая статья MQL5 - Вы тоже можете стать мастером языка:
Автор Дэниел Хосе
Я тоже хочу стать мастером
Очень хорошая статья. Она вернула меня в детство, когда я рисовал примитивную графику с помощью синтаксиса DOS на Apple IIe.
Основываясь на моем более позднем опыте, MQL4 был прост в изучении, потому что по сути являлся скелетной версией C. Мне нравилось думать о нем как о "C-" (C минус). Годы спустя я прочитал первые 50 страниц печатной книги по программированию на MQL5 EA (сейчас она уже не выпускается), а затем перешел к программированию на MQl5. Спустя годы эта книга все еще стоит на полке с закладкой на странице 50. Все это свидетельствует о том, что автор статьи советует учиться на практике.
Хотя я баловался с Easylanguage и Python, и более чем баловался с MS Excel, я придерживаюсь MQL5, потому что родной код всегда быстрее, чем труба или мост извне MT5. Кроме того, "необязательные" элементы объектно-ориентированного программирования (ООП) в MQL5 необходимы для автотрейдинга на фьючерсной бирже, на которой я сейчас торгую. Если вы хотите изучить MQL5, я рекомендую сначала прочитать общий учебник о том, что такое ООП.
Хуже, чем страх перед изучением нового языка программирования, - перспектива остаться позади.
хвалебная статья о себе гениальном: что-то типа, научу стать гуру программирования с нуля, но оказывается для этого надо знать С++ и опыт его использования 23 года. И удивительно то, что с таким багажом (С/С++) потребовалось 2 года для того что бы научится программировать на MQL5. В итоге, бла-бла-бла, я гений и вы так сможете через 25 лет. Жаль, что такие статьи публикуют...
Ну и что, бразильский человек 23 года писал на С++ «Hello World!», не у каждого хватит такого терпения. У меня точно. Может, ему на родине памятник отлили в бронзе! Так что завидуем молча.
Хочу уточнить, что значение false действительно ноль при неявном преобразованием типов int в bool, а вот true любое значение, отличное от нуля. При преобразовании bool->int все ограничивается 0 и 1.