На этот раз рассмотрим создание мультивалютного советника, торговый алгоритм которого строится на работе с отложенными ордерами Buy Stop и Sell Stop. В статье будут рассмотрены следующие вопросы: торговля в указанном временном диапазоне, установка/модификация/удаление отложенных ордеров, проверка закрытия последней позиции по Тейк Профит или Стоп Лосс, контроль истории сделок на каждом символе.
Можно ли торговать этим инструментом в понедельник? Хватит ли денег на открытие позиции? Какой размер убытка мы получим, если сработает Stop Loss? Как ограничить количество отложенных ордеров? Была ли выполнена торговая операция на этом баре или это было на предыдущем? Если торговый робот не может сделать подобные проверки, то любая прибыльная торговая система может превратиться в проигрышную. В этой статье показаны примеры проверок, которые пригодятся в любом эксперте.
Тема диверсификации активов на финансовых рынках стара, как мир и всегда привлекала к себе внимание всякого мало-мальски разбирающегося в этом деле трейдера. В данной статье автором предложен вариант максимально простого подхода для построения мультивалютного эксперта для первоначального знакомства с этим направлением торговых стратегий.
MetaTrader 5 предлагает на выбор 21 таймфрейм для анализа. На график можно также поместить специальный объект-график и уже в нем задать символ, таймфрейм и еще некоторые свойства. В этой статье рассмотрим такие графические объекты более подробно: создадим индикатор с элементами управления (кнопками), с помощью которых можно будет устанавливать в подокно сразу несколько объектов-графиков. При этом объекты-графики будут точно вписываться и автоматически подстраиваться под размер подокна при изменении размеров главного окна графика или терминала.
В этой статье мы рассмотрим пример разработки пользовательского интерфейса с такими элементами управления, как кнопки. В качестве подсказки пользователю о том, что с элементом можно взаимодействовать, сделаем так, чтобы кнопка при наведении на нее курсора мыши меняла цвет. При наведении курсора мыши на кнопку цвет будет немного затеняться, а при нажатии будет становиться заметно темнее. Добавим еще всплывающие подсказки для каждой кнопки. Таким образом, интерфейс станет интуитивно понятным.
Общаясь на многих форумах, я довольно часто приводил в пример результаты тестов на скриншотах с графиков в Microsoft Excel. И многие просили меня объяснить, как же строить эти замечательные графики. Наконец у меня появилось немного времени, чтобы написать статью об этом.
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
В этой статье мы разработаем схему для торговой системы типа "Три экрана Элдера" на MQL5. Писать эксперта будем не с нуля, а просто модифицируем уже практически готовую под эту схему программу из предыдущей статьи "Рецепты MQL5 - Использование индикаторов для формирования условий торговли в эксперте". То есть, целью статьи будет также показать, как можно легко модифицировать схемы уже готовых программ.
В этой статье мы продолжим модифицировать эксперта, над которым до этого работали на протяжении всех последних статей по программированию на MQL5. На этот раз подключим к эксперту индикаторы, по значениям которых будут проверяться условия на открытие позиции. Чтобы было интересней, сделаем во внешних параметрах выпадающий список, в котором можно будет выбрать один из трех индикаторов для торговли.
Пришло время подвести краткий итог по материалам предыдущих статей о свойствах позиции. В этой статье мы создадим несколько дополнительных функций для получения тех свойств, которые можно получить только после обращения к истории сделок. Мы также познакомимся со структурами данных, что сделает доступ к свойствам позиции и символа еще удобнее.
Продолжая работу над экспертом из предыдущей статьи "Рецепты MQL5 - Изучение свойств позиции в тестере MetaTrader 5", внедрим в него еще целый ряд полезных функций, а также усовершенствуем и оптимизируем уже имеющиеся. На этот раз эксперт будет снабжен внешними параметрами, которые можно будет оптимизировать в тестере MetaTrader 5. Это уже будет немного похоже на простую торговую систему.
На этот раз создадим простого эксперта, который во время ручной торговли будет показывать свойства позиции по текущему символу на пользовательской информационной панели, которая будет собрана из графических объектов. Данные будут обновляться на каждом тике, что уже намного удобнее, чем постоянно запускать вручную скрипт, который описывался в предыдущей статье "Рецепты MQL5 - Как получить свойства позиции?".
Это первая статья из серии "Рецепты MQL5". Я начну с простых примеров, чтобы те, кто только начинает изучать программирование, могли плавно погрузиться в изучение этого языка. Я вспоминаю, как я начинал изучать разработку и программирование торговых систем, и, признаться, мне это было довольно сложно, так как это мой первый язык. Но всё оказалось не так сложно, и уже через несколько месяцев я создал довольно сложную программу.
В этой статье мы создадим скрипт, который получает все свойства позиции и показывает их пользователю в диалоговом окне. При запуске скрипта во внешних параметрах можно будет выбрать из выпадающего списка один из двух режимов: показать свойства позиции только на текущем символе или просмотреть свойства позиций на всех символах.
Излучения индикаторов - это малоизученное направление исследования рынка. В первую очередь из-за трудности анализа, которая вызвана обработкой очень больших массивов изменяющихся во времени данных. Существующий графический анализ слишком ресурсоёмкий и поэтому был разработан экономный алгоритм с использованием таймсерий излучений. В статье предлагается заменить визуальный (интуитивно-образный) анализ исследованием интегральных характеристик излучения. Статья будет интересна как трейдерам, так и разработчикам механических торговых систем.
В статье рассматривается всё, что можно делать со строками в языке MQL5. Статья должна быть интересна в первую очередь новичкам, приступившим к изучению программирования на MQL5. Опытным программистам представляется хорошая возможность подытожить, обобщить и систематизировать свои знания.
Наряду с переменными и функциями, массивы являются практически неотъемлемой частью любого языка программирования. Статья должна быть интересна в первую очередь новичкам, приступившим к изучению программирования на MQL5. Опытным программистам представляется хорошая возможность подытожить, обобщить и систематизировать свои знания.
В наше время, наверное, каждый трейдер слышал о нейронных сетях и знает, как это круто. В представлении большинства те, которые в них разбираются, это какие-то чуть ли не сверхчеловеки. В этой статье я постараюсь рассказать, как устроена нейросеть, что с ней можно делать и покажу практические примеры её использования.
С помощью сокрытия реализации функций/классов в ex5-файл вы сможете делиться своими ноу-хау алгоритмами с другими программистами, создавать общие проекты и продвигать их в сети. И пока команда MetaQuotes всеми силами приближает возможность прямого наследования классов из ex5‑библиотек, мы реализуем данную возможность уже сейчас.
Во второй статье серии "Пользовательские графические элементы управления" представлена библиотека элементов управления для решения основных задач, возникающих при обеспечении взаимодействия между программой (советником, скриптом, индикатором) и ее пользователем. Библиотека содержит множество классов (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) и примеров их использования.
Время является неизменной ценностью на протяжении всей истории человечества, и мы стремимся не расходовать его понапрасну. Из этой статьи вы узнаете, как можно ускорить работу вашего эксперта, если у вашего компьютера многоядерный процессор. Причем, реализация описываемого метода не требует знания каких-либо еще языков кроме MQL5.
Не секрет, что большую часть информации об окружающем мире человек получает при помощи зрения. Справедливо это и в такой области как трейдинг. Новая платформа MetaTrader 5 и язык MQL5 открывают новые возможности для представления визуальной информации трейдеру. В данной статье предлагается универсальная и расширяемая система классов, которая берет на себя всю черновую работу по организации вывода произвольной текстовой информации.
В редакторе MetaEditor 5 есть возможность отладки, но часто при написании программ на MQL5 требуется просмотр не отдельных значений, а массовых выводов сообщений во время онлайн-работы или при тестировании. При больших объемах содержимого лог-файла встает вопрос механизации для удобного и быстрого поиска интересующего сообщения. Мы рассмотрим способы поиска ошибок в программах на MQL5 и способы ведения лога. А также упростим запись логов в файлы и познакомимся с простенькой программой LogMon для комфортного просмотра логов.
В этой статье вы научитесь получать торговые сигналы, необходимые для работы торговой системы. Приведены примеры формирования 20 торговых сигналов в виде отдельных пользовательских функций, которые можно использовать в написании экспертов. Для вашего удобства все функции из статьи собраны в один включаемый mqh-файл, который легко подключается к будущему эксперту.
Эта статья посвящена использованию объектно-ориентированного подхода для создания советника, рассмотренного в статье "Пошаговое руководство по написанию советников для начинающих". Большинство людей думают, что это сложно, но могу вас заверить, что после прочтения этой статьи вы сможете написать свой собственный советник на основе объектно-ориентированного похода.
В статье рассматривается пример создания класса для работы с кодами возврата торгового сервера и всеми ошибками, возникающими в процессе работы MQL-программы. После прочтения статьи, вы сможете сформулировать для себя начальное представление о том как работать с классами и объектами в MQL5. И в то же время у вас появится удобный инструмент для обработки ошибок, который в дальнейшем можно будет дорабатывать на свой вкус и цвет.
Статья посвящена особенностям переноса в MQL5 ценовых конструкций, используемых в индикаторах, написанных на MQL4. Для упрощения переноса индикаторных расчетов из MQL4 в MQL5 предложена библиотека функций mql4_2_mql5.mqh, применение которой рассмотрено на примере переноса индикаторов MACD, Stochastic и RSI.
Листая страницы Интернета, можно найти множество стратегий, которые вам советуют делать то или иное. Давайте заглянем внутрь и посмотрим на сам процесс составления стратегии, основанной на различиях часовых поясов на разных континентах.
Процесс превращения простого в сложное зачастую сопровождается нагромождением количественных изменений до таких размеров, что непосвященному начинает казаться, что невозможно подобное хоть как-то объять разумом. Совсем другое дело, когда все фундаментальные элементы этого сложного уже до боли знакомы и процесс созидания превращается в незатейливую демонстрацию того, как на деле все необыкновенно просто. В данной статье автор, основываясь на материалах двух своих предыдущих статей, знакомит читателей с тем, как написать код такого индикатора, как Aroon.
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
Те, кто более-менее знаком с рыночными настроениями не понаслышке, знает индикатор MACD, или полное название Схождение Расхождение Скользящих Средних, и знает его как мощный инструмент анализа движения цены, которым пользуются трейдеры с первых моментов появления методов компьютерного анализа. В данной статье мы рассмотрим возможные модификации MACD и реализуем их в одном индикаторе с возможностью графического переключения между модификациями.
В 5-ой версии языка MQL появилась масса нововведений, в том числе работа с событиями различных типов (события таймера, торговые события, пользовательские и т.д.). Возможность обработки событий позволяет создавать совершенно новый тип программ для автоматического и полуавтоматического трейдинга. В этой статье мы рассмотрим торговые события и напишем для функции OnTrade() код, который будет обрабатывать событие Trade.
Любой новый предмет для новичка с первого взгляда кажется сложным для понимания. Нам кажется простым и ясным то, что мы уже знаем. Но мы просто не помним, что всем нам когда-то приходилось изучать с нуля, даже родной язык, на котором мы разговариваем. Так и язык MQL5, таящий в себе огромные возможности для написания торговых стратегий, можно начать изучать с базовых понятий и примеров. В этой статье на примере пользовательского индикатора SMA рассматривается взаимодействие технического индикатора с клиентским терминалом MetaTrader 5.
Все объекты в MQL5 по умолчанию передаются по ссылке, но есть возможность использовать и указатели объектов. При этом есть опасность получить в качестве параметра функции указатель неинициализированного объекта. В этом случае работа программы будет завершена критически с последующей выгрузкой. Автоматически создаваемые объекты как правило такой ошибки не вызывают, и в этом отношении они достаточно безопасны. В этой статье мы попробуем разобраться в чем разница между ссылкой и указателей, когда оправдано использование указателей и как написать безопасный код с использованием указателей.
В этой статье проведен краткий обзор языка MQL5, приведен пример написания советника и индикатора. Данная статья ориентирована как на читателей, знакомых с программированием на языке MQL4, так и на тех, кто только начинает знакомство с программированием торговых систем и индикаторов.
Каждый объект, будь то пользовательский объект, динамический массив или массив объектов, имеет свои особенности создания и уничтожения в программе MQL5. Зачастую одни объекты являются частью других объектов, и порядок уничтожения объектов в момент деинициализации становится особенно важен. В этой статье приводятся несколько примеров для понимания механизмов работы с объектами.
Вам необходимо организовать трансляцию котировок из MetaTrader 5 в собственное приложение? Связка MQL5-DLL позволяет создавать подобные решения. В статье продемонстрирован один из способов трансляции котировок из MetaTrader 5 в приложения, написанные на .NET. Мне было рациональнее, интереснее и проще реализовать экспорт котировок именно с использованием этой платформы. К сожалению, с выходом "пятерки" поддержки .Net также не появилось, поэтому по старинке будем использовать как прослойку win32 dll с поддержкой .NET.
При написании индикатора, который использует краткую форму вызова функции OnCalculate(), можно упустить то обстоятельство, что индикатор может рассчитываться не только на ценовых данных, но и на данных другого индикатора (встроенного или пользовательского - не имеет значения). Вы хотите улучшить индикатор, чтобы он правильно считался не только на ценовых данных, но и значениях другого индикатора? В этой статье мы по шагам пройдем все необходимые этапы такой модификации и выведем дополнительные полезные правила для правильного написания индикатора.
MQL5 предлагает безграничные возможности для разработки автоматизированных торговых систем, отвечающих вашим предпочтениям. Знаете ли вы, что он даже может выполнять сложные математические вычисления? В этой статье мы представим японский метод Heikin Ashi (Хейкен Аши) в виде автоматизированной торговой стратегии.
Эта статья — четвертая часть нашей серии статей об управлении рисками в MQL5, где мы продолжаем изучать продвинутые методы защиты и оптимизации торговых стратегий. Заложив важные основы в предыдущих статьях, теперь мы сосредоточимся на завершении всех оставшихся методов, которые были отложены в третьей части, включая функции для проверки достижения определенных уровней прибыли или убытков. Кроме того, в статье будут представлены новые ключевые события, обеспечивающие более точное и гибкое управление.