Статьи по программированию на языках MQL4 и MQL5

icon

Изучайте язык программирования торговых стратегий MQL5 по опубликованным здесь статьям, большая часть которых написана вами - членами сообщества. Все статьи разделены на категории для быстрого поиска ответа по тому или иному аспекту программирования: "Интеграция", "Тестер", "Торговые стратегии" и многое другое.

Следите за новыми публикациями и участвуйте в их обсуждении на форуме!

Новая статья
последние | лучшие
Создание интерактивного советника для полуавтоматической торговли с заданным риском
Создание интерактивного советника для полуавтоматической торговли с заданным риском

Создание интерактивного советника для полуавтоматической торговли с заданным риском

Некоторые трейдеры используют автоматизированные системы торговли, другие совмещают автоматическую торговлю с ручной, основанной на показаниях нескольких индикаторов. Я принадлежу ко второй группе, поэтому возникла необходимость в интерактивном инструменте для динамической оценки рисков и ценовых уровней непосредственно с графика. В данной статье мы представим способ реализации интерактивного советника для полуавтоматической торговли с заданным уровнем соотношения прибыль/риск (Reward/Risk ratio).
Копирование торговли из MetaTrader 5 в MetaTrader 4
Копирование торговли из MetaTrader 5 в MetaTrader 4

Копирование торговли из MetaTrader 5 в MetaTrader 4

Можно ли в MetaTrader 5 торговать на реале уже сегодня? Как организовать такую торговлю? Приводится теория этих вопросов и рабочие коды, при помощи которых реализуется копирование сделок из терминала MetaTrader 5 в MetaTrader 4. Статья будет полезна как разработчикам советников, так и практикующим трейдерам.
Владимир Цирульник: "Суть моей программы - импровизация!" (ATC 2010)
Владимир Цирульник: "Суть моей программы - импровизация!" (ATC 2010)

Владимир Цирульник: "Суть моей программы - импровизация!" (ATC 2010)

На счету у Владимира Цирульника один из самых ярких взлетов текущего Чемпионата. К концу третьей торговой недели эксперт Владимира пришел шестым и, похоже, не собирается сдавать позиций. Алгоритм IMEX, который лежит в основе советника, был создан самим разработчиком. Чтобы узнать об этом алгоритме побольше, мы связались с Владимиром.
Работа по Накоплению/Распределению и что из этого можно сделать
Работа по Накоплению/Распределению и что из этого можно сделать

Работа по Накоплению/Распределению и что из этого можно сделать

Индикатор Накопления/Распределения A/D имеет одно интересное свойство - пробитие трендовой линии, построенной на графике данного индикатора с определённой долей вероятности говорит нам о скором пробое линии тренда на графике цены. Данная статья будет полезна и интересна людям, только начинающим программировать на MQL4, поэтому я постарался изложить всё в наиболее доступной для понимания форме и использовать самые простые конструкции построения кода.
Взгляни на рынок через готовые классы
Взгляни на рынок через готовые классы

Взгляни на рынок через готовые классы

Не секрет, что большую часть информации об окружающем мире человек получает при помощи зрения. Справедливо это и в такой области как трейдинг. Новая платформа MetaTrader 5 и язык MQL5 открывают новые возможности для представления визуальной информации трейдеру. В данной статье предлагается универсальная и расширяемая система классов, которая берет на себя всю черновую работу по организации вывода произвольной текстовой информации.
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов

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

Строим анализатор спектра

Данная статья призвана познакомить читателя с возможным вариантом использования графических объектов языка MQL5. В статье рассматривается индикатор, в котором при помощи графических объектов создана панель управления простейшим анализатором спектра. Статья рассчитана на читателя, знакомого с основами языка MQL5.
Интервью с Борисом Одинцовым (ATC 2010)
Интервью с Борисом Одинцовым (ATC 2010)

Интервью с Борисом Одинцовым (ATC 2010)

Борис Одинцов - один из самых ярких участников Чемпионата, преодолевший на третьей торговой неделе планку в $100 000. Стремительный взлет своего эксперта Борис объясняет благоприятным стечением обстоятельств. В этом интервью он рассказывает, каким вещам стоит уделять внимание в трейдинге и о том, какой рынок неблагоприятен для его эксперта.
Интервью с Валерием Мазуренко (ATC 2010)
Интервью с Валерием Мазуренко (ATC 2010)

Интервью с Валерием Мазуренко (ATC 2010)

К концу первой торговой недели на первом месте оказался Валерий Мазуренко (notused) с мультивалютным экспертом ch2010. Ранее воспринимавший трейдинг как хобби, Валерий уже полгода пытается монетизировать свое «увлечение» и написать устойчивый советник для реальной торговли. В этом интервью экспертописатель делится своими взглядами на роль математики в трейдинге и рассказывает, почему объектно-ориентированный подход отлично подходит для написания мультивалютников.
MQL5: Руководство по тестированию и оптимизации советников
MQL5: Руководство по тестированию и оптимизации советников

MQL5: Руководство по тестированию и оптимизации советников

Первая часть статьи посвящена вопросам выявления и исправления различных ошибок в коде программ, написанных на MQL5. Во второй части статьи рассматриваются вопросы практического применения Тестера стратегий клиентского терминала MetaTrader 5. Показано, как пользоваться функционалом оптимизации входных параметров. Предлагаемые советы помогут вам в течении дня провести тестирование и оптимизацию ваших советников.
Интервью с Берроном Паркером (ATC 2010)
Интервью с Берроном Паркером (ATC 2010)

Интервью с Берроном Паркером (ATC 2010)

На протяжении почти всей первой недели Чемпионата эксперт Беррона Паркеразанимал лидирующую позицию, не подпуская к себе конкурентов. Привлекший внимание зрителей Чемпионата разработчик рассказывает о собственном опыте написания экспертов и сложностях перехода на MQL5. Беррон утверждает, что его советник настроен на трендовый рынок и в других условиях будет слаб. Тем не менее он верит, что эксперт покажет неплохой результат по итогам соревнования.
Простой пример построения индикатора с использованием нечеткой логики (Fuzzy Logic)
Простой пример построения индикатора с использованием нечеткой логики (Fuzzy Logic)

Простой пример построения индикатора с использованием нечеткой логики (Fuzzy Logic)

Статья посвящена вопросам практического применения концепции нечеткой логики (fuzzy logic) для анализа финансовых рынков. Предложен пример индикатора, выдающего сигналы на основе двух нечетких правил, основанных на индикаторе Envelopes. Разработанный индикатор использует несколько индикаторных буферов: 7 буферов для расчетов, 5 буферов для вывода графиков и 2 буфера цвета.
Технический анализ: Как мы анализируем?
Технический анализ: Как мы анализируем?

Технический анализ: Как мы анализируем?

Данная статья в краткой форме отражает отношение автора к таким явлениям, как перерисовывающие индикаторы, индикаторы Multi-timeframe и представление котировок при помощи японских свечей. Техника программирования в статье не затрагивается, статья носит общий характер.
Обработчик события "новый бар"
Обработчик события "новый бар"

Обработчик события "новый бар"

Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
Повышаем качество кода при помощи Unit Test
Повышаем качество кода при помощи Unit Test

Повышаем качество кода при помощи Unit Test

Даже в простых программах зачастую находятся ошибки, которые кажутся невероятными. "Как я такое написал?" - первое, что приходит в голову, когда мы обнаруживаем такую ошибку. Второй вопрос - "Как этого избежать?" - приходит гораздо реже. Нельзя написать 100%-ный безошибочный код, особенно в больших проектах, но можно использовать технологии для их своевременного обнаружения. Статья рассказывает о том, как можно повысить качество MQL4 кода, применяя распространенную методику модульного тестирования (Unit Testing).
Построение кода индикаторов с несколькими индикаторными буферами для начинающих
Построение кода индикаторов с несколькими индикаторными буферами для начинающих

Построение кода индикаторов с несколькими индикаторными буферами для начинающих

Процесс превращения простого в сложное зачастую сопровождается нагромождением количественных изменений до таких размеров, что непосвященному начинает казаться, что невозможно подобное хоть как-то объять разумом. Совсем другое дело, когда все фундаментальные элементы этого сложного уже до боли знакомы и процесс созидания превращается в незатейливую демонстрацию того, как на деле все необыкновенно просто. В данной статье автор, основываясь на материалах двух своих предыдущих статей, знакомит читателей с тем, как написать код такого индикатора, как Aroon.
Технический анализ: Что мы анализируем?
Технический анализ: Что мы анализируем?

Технический анализ: Что мы анализируем?

В статье предпринята попытка в общем виде проанализировать некоторые особенности представления котировок доступных для анализа в терминале MetaTrader. Техника программирования в статье не затрагивается, статья носит общий характер.
Растущий нейронный газ - реализация на языке программирования MQL5
Растущий нейронный газ - реализация на языке программирования MQL5

Растущий нейронный газ - реализация на языке программирования MQL5

В статье приводится пример написания на языке MQL5 программы, реализующий адаптивный алгоритм кластеризации, называемый "Растущий нейронный газ" (Growing neural gas, GNG). Статья рассчитана на пользователей, изучивших документацию к языку, а также уже имеющих определенные навыки программирования и базовые знания в области нейроинформатики.
Поиск ошибок и ведение лога
Поиск ошибок и ведение лога

Поиск ошибок и ведение лога

В редакторе MetaEditor 5 есть возможность отладки, но часто при написании программ на MQL5 требуется просмотр не отдельных значений, а массовых выводов сообщений во время онлайн-работы или при тестировании. При больших объемах содержимого лог-файла встает вопрос механизации для удобного и быстрого поиска интересующего сообщения. Мы рассмотрим способы поиска ошибок в программах на MQL5 и способы ведения лога. А также упростим запись логов в файлы и познакомимся с простенькой программой LogMon для комфортного просмотра логов.
Оценка торговых систем - эффективности входа, выхода и сделок
Оценка торговых систем - эффективности входа, выхода и сделок

Оценка торговых систем - эффективности входа, выхода и сделок

Существует масса критериев, которые позволяют оценить эффективность или прибыльность торговой стратегии. Но трейдеры всегда готовы подвергнуть любую систему новому краштесту. В статье рассказывается, как можно применить статистику для платформы MetaTrader 5 на основе измерения эффективности. Представлен класс перевода учёта статистики сделок в вид, не противоречащий описанному в книге "Статистика для трейдера" Булашева С.В. Приведён пример пользовательской функции оптимизации.
Simulink: в помощь разработчику эксперта
Simulink: в помощь разработчику эксперта

Simulink: в помощь разработчику эксперта

Я не являюсь профессиональным программистом. И поэтому принцип «от простого к сложному» имеет для меня первостепенное значение, когда я встречаюсь с таким понятием как МТС, а точнее создание МТС. Что есть для меня простое? Прежде всего это визуализация самого процесса создания системы и логики её функционирования. А также минимум рукописного кода. В данной статье я попробую создать и протестировать МТС на основе матлабовского пакета, а затем напишу эксперт для MetaTrader 5. Причём для тестирования будут использованы исторические данные из МetaTrader 5.
Контроль наклона кривой баланса во время работы торгового эксперта
Контроль наклона кривой баланса во время работы торгового эксперта

Контроль наклона кривой баланса во время работы торгового эксперта

Найти правила для торговой системы и запрограммировать их в советнике - это еще полбеды. Необходимо каким-то образом поправлять работу эксперта в процессе накопления результатов торговли. В статье описывается один из подходов, позволяющий улучшить характеристики торгового эксперта при помощи создания обратной связи, измеряющей наклон кривой баланса депозита.
Интервью с Александром Топчило (ATC 2010)
Интервью с Александром Топчило (ATC 2010)

Интервью с Александром Топчило (ATC 2010)

Александр Топчило (Better) - победитель Чемпионата Automated Trading Championship 2007. Коньком Александра являются нейронные сети - именно нейроэксперт со значительным отрывом опередил конкурентов в Чемпионате 2007 года. Интересный собеседник и успешный разработчик экспертов рассказывает в этом интервью о своей жизни после Чемпионатов, собственном бизнесе и новых алгоритмах для создания торговых систем.
Адаптивные торговые системы и их использование в терминале MetaTrader 5
Адаптивные торговые системы и их использование в терминале MetaTrader 5

Адаптивные торговые системы и их использование в терминале MetaTrader 5

В статье предложен вариант адаптивной системы, состоящей из множества стратегий, каждая из которых производит свои "виртуальные" торговые операции. Реальная торговля происходит в соответствии с сигналами стратегии, которая на текущий момент является самой прибыльной. За счет использования объектно-ориентированного подхода, классов для работы с данными и торговых классов Стандартной библиотеки, архитектура системы получилась простой и масштабируемой, теперь вы легко сможете создавать и исследовать адаптивные системы, включающие сотни торговых стратегий.
Как быстро написать советник для Automated Trading Championship 2010
Как быстро написать советник для Automated Trading Championship 2010

Как быстро написать советник для Automated Trading Championship 2010

Для того чтобы разработать эксперт для участия в чемпионате Automated Trading Championship 2010, воспользуемся шаблоном готового советника. Данная задача будет по силам даже новичку в программировании на MQL5, т.к. для ваших стратегий уже разработаны базовые классы, функции, шаблоны. Достаточно написать минимум кода, чтобы реализовать свою торговую идею.
Фрактальный анализ совместного движения валют
Фрактальный анализ совместного движения валют

Фрактальный анализ совместного движения валют

Насколько независимы валютные котировки? Движутся ли они согласованно или информация о направлении движения одной валюты ничего не скажет о движении другой? В этой статье предпринята попытка разобраться в этом вопросе, используя методы нелинейной динамики и фрактальной геометрии.
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Герой нашего интервью - Леонид Величковский (LeoV) – уже принимал участие в Чемпионатах по автоматическому трейдингу. В 2008 году его мультивалютная нейронная сеть ярко вспыхнула на небосклоне, заработав в определенный момент 110 000 $, но в итоге пала жертвой собственного агрессивного мани-менеджмента. В интервью двухлетней давности Леонид говорил о собственном опыте трейдинга и особенностях работы его советника. В преддверии же Чемпионата ATC 2010 наш герой рассказывает о самых распространенных мифах и заблуждениях, связанных с нейросетями.
20 торговых сигналов на MQL5
20 торговых сигналов на MQL5

20 торговых сигналов на MQL5

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

Прототип торгового робота

Целью данной статьи является обобщение и систематизация принципов создания алгоритмов и элементов торговых систем. В статье рассматривается вопрос проектирования алгоритма работы эксперта, в качестве примера представлен класс CExpertAdvisor, который может быть использован для быстрой и удобной разработки торговых систем.
Применение функции TesterWithdrawal() для моделирования снятия прибыли
Применение функции TesterWithdrawal() для моделирования снятия прибыли

Применение функции TesterWithdrawal() для моделирования снятия прибыли

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

Несколько способов определения тренда на MQL5

Любой трейдер отдал бы многое за возможность безошибочного определения тренда в любой момент времени, и, пожалуй, это и есть тот самый Грааль, который все ищут. В данной статье мы рассмотрим несколько способов определения тренда, а точнее, как средствами языка MQL5 запрограммировать несколько классических способов определения тренда.
Как создать свой Trailing Stop
Как создать свой Trailing Stop

Как создать свой Trailing Stop

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

Исследование паттернов (моделей) японских свечей

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

Ограничения и проверки в экспертах

Можно ли торговать этим инструментом в понедельник? Хватит ли денег на открытие позиции? Какой размер убытка мы получим, если сработает Stop Loss? Как ограничить количество отложенных ордеров? Была ли выполнена торговая операция на этом баре или это было на предыдущем? Если торговый робот не может сделать подобные проверки, то любая прибыльная торговая система может превратиться в проигрышную. В этой статье показаны примеры проверок, которые пригодятся в любом эксперте.
Цветные индикаторы - создание и применение
Цветные индикаторы - создание и применение

Цветные индикаторы - создание и применение

Речь в данной статье пойдет о возможностях для создания цветных индикаторов и раскрашивания индикаторов уже существующих. С переходом на MQL5 появилась возможность представлять информацию в удобном для глаза виде. Теперь не обязательно накидывать кучу графиков с разными индикаторами и с линейкой высматривать уровни RSI и Stochastic, можно просто раскрасить свечи в разные цвета в зависимости от показаний индикаторов.
Интервью с Николаем Косициным: мультивалютные эксперты менее рискованны (ATC 2010)
Интервью с Николаем Косициным: мультивалютные эксперты менее рискованны (ATC 2010)

Интервью с Николаем Косициным: мультивалютные эксперты менее рискованны (ATC 2010)

Мы побеседовали с Николаем Косициным о его разработках. Он считает мультивалютники перспективным направлением и занимается разработкой именно таких экспертов. На чемпионатах Николай также выступает только с мультивалютниками. Именно его советник стал единственным мультивалютником, который вышел в победители Чемпионата за все время проведения соревнования.
Взаимодействие MetaTrader 5 и MATLAB
Взаимодействие MetaTrader 5 и MATLAB

Взаимодействие MetaTrader 5 и MATLAB

Статья раскрывает детали реализации связки MetaTrader 5 и математического пакета MatLab. Детально раскрывается механизм преобразования данных, процесс разработки универсальной библиотеки для взаимодействия с рабочим столом MatLab, также рассматривается вопрос использования DLL библиотек, сгенерированных средой MatLab. Данная статья рассчитана на подготовленных читателей, знающих C++ и MQL5.
Конкурс советников внутри советника
Конкурс советников внутри советника

Конкурс советников внутри советника

С помощью виртуальной торговли можно создать адаптивный советник, который будет выполнять включение/отключение сделок на реальном рынке. Соберите несколько стратегий в одном эксперте! Ваш мультисистемный советник будет автоматически выбирать торговую стратегию, которой стоит торговать на реальном рынке по результатам успешности виртуальных сделок. Такой метод позволяет снизить просадку и увеличить прибыльность Вашей работы на рынке. Экспериментируйте и делитесь результатами с другими! Думаю, будет интересно многим узнать о вашем портфеле стратегий.
Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру
Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру

Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру

В статье рассматривается проблема необходимости подсчета совокупной позиции по заданному символу и магическому номеру. Предложенный метод подсчета объема позиции в процессе работы загружает только минимально необходимую часть истории сделок. В процессе же самой работы обработка происходит только по последним сделкам. Дополнительно рассматривается метод формирования уникальных имен глобальных переменных.
Перенос индикаторов из MQL4 в MQL5
Перенос индикаторов из MQL4 в MQL5

Перенос индикаторов из MQL4 в MQL5

Статья посвящена особенностям переноса в MQL5 ценовых конструкций, используемых в индикаторах, написанных на MQL4. Для упрощения переноса индикаторных расчетов из MQL4 в MQL5 предложена библиотека функций mql4_2_mql5.mqh, применение которой рассмотрено на примере переноса индикаторов MACD, Stochastic и RSI.