![Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы](https://c.mql5.com/2/0/MQL5_Willam_Blau_1.png)
![Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы](https://c.mql5.com/i/articles/overlay.png)
Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы
В статье представлено описание разработанных на MQL5 индикаторов по книге Уильяма Блау (William Blau) "Моментум, направленность и расхождение". Подход Уильяма Блау позволяет достаточно точно и с минимальным запаздыванием аппроксимировать колебания ценовой кривой, выделять тенденцию ценового движения и поворотные точки и устранять ценовой шум. При этом мы можем также получать сигналы о перекупленности/перепроданности рынка, сигналы об окончании тренда и о развороте ценового движения.
![Как заказать написание советника и получить желаемый результат](https://c.mql5.com/2/0/Order_EA_MQL5_Job.png)
![Как заказать написание советника и получить желаемый результат](https://c.mql5.com/i/articles/overlay.png)
Как заказать написание советника и получить желаемый результат
Как правильно написать Техническое Задание? Что можно и чего нельзя ожидать от программиста при заказе советника или индикатора? Как нужно вести диалог, на какие моменты обратить внимание? Статья дает ответы на эти и многие другие вопросы, которые зачастую неочевидны для многих без самостоятельного набивания шишек.
![Реализация автоматического анализа волн Эллиотта на MQL5](https://c.mql5.com/2/0/MQL5_Elliott_Waves_Automated.png)
![Реализация автоматического анализа волн Эллиотта на MQL5](https://c.mql5.com/i/articles/overlay.png)
Реализация автоматического анализа волн Эллиотта на MQL5
Одним из самых популярных методов анализа рынка является волновой анализ. Однако данный процесс является достаточно сложным, что приводит к использованию дополнительных инструментов. Одним из таких инструментов является автоматический разметчик. В данной статье рассматривается создание автоматического анализатора волн Эллиотта на языке MQL5.
![Реализация индикаторов в виде классов на примере Zigzag и ATR](https://c.mql5.com/2/0/indicator_boxed.png)
![Реализация индикаторов в виде классов на примере Zigzag и ATR](https://c.mql5.com/i/articles/overlay.png)
Реализация индикаторов в виде классов на примере Zigzag и ATR
Споры о том, какой способ расчета индикаторов является оптимальным, идут постоянно. Где лучше вычислять значения индикатора - в самом индикаторе или встроить всю логику в код самого эксперта, который его использует? В статье рассматривается один из вариантов переноса кода пользовательского индикатора iCustom непосредственно в код эксперта или скрипта с оптимизацией расчетов и моделированием значения prev_calculated.
![Курс Монетки и основанный на нем Индикатор Трендовости](https://c.mql5.com/2/0/coin_course.png)
![Курс Монетки и основанный на нем Индикатор Трендовости](https://c.mql5.com/i/articles/overlay.png)
Курс Монетки и основанный на нем Индикатор Трендовости
Модели случайных блужданий даётся название "Курс Монетки". Приводятся свойства курса монетки с точки зрения трейдера. Предлагается создать симулятор курса на основе курса монетки с трендом. Для отличия реального курса от курса монетки создан индикатор трендовости. Рассматривается трендовость реального курса.
![Новый индикатор технического анализа Moving Mini-Max и его реализация в MQL5](https://c.mql5.com/2/0/MQL5_Mini-Max_Indicator.png)
![Новый индикатор технического анализа Moving Mini-Max и его реализация в MQL5](https://c.mql5.com/i/articles/overlay.png)
Новый индикатор технического анализа Moving Mini-Max и его реализация в MQL5
В статье рассматривается новый индикатор технического анализа Moving Mini-Max, разработанный З.К. Силагадзе в 2008 году. Индикатор основан на модели туннельного эффекта, предложенного Г. Гамовым в теории альфа-распада. Описывается реализация индикатора на MQL5 и возможности его использования в торговле.
![Эконометрический подход к анализу графиков](https://c.mql5.com/2/0/econometrics.png)
![Эконометрический подход к анализу графиков](https://c.mql5.com/i/articles/overlay.png)
Эконометрический подход к анализу графиков
В данной статье рассматриваются эконометрические методы исследования, в частности автокорреляционный анализ и анализ условной дисперсии. Что нам даёт описанный в статье подход? Применение нелинейной GARCH-модели позволяет, во-первых, формально представить исследуемый ряд с математической точки зрения, а во-вторых, создать прогноз на заданное количество шагов.
![Реализация мультивалютного режима в MetaTrader 5](https://c.mql5.com/2/0/Multicurrency_Expert_Advisor.png)
![Реализация мультивалютного режима в MetaTrader 5](https://c.mql5.com/i/articles/overlay.png)
Реализация мультивалютного режима в MetaTrader 5
Интерес к мультивалютному анализу и мультивалютной торговле существует давно. Но только с выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность реализации полноценного мультивалютного режима. В данной статье предложен способ, позволяющий проводить анализ и обработку всех поступающих тиков по множеству финансовых инструментов. В качестве иллюстрации рассмотрен мультивалютный индикатор RSI для индекса доллара USDx.
![Построение каналов - взгляд изнутри и снаружи](https://c.mql5.com/2/0/channels_MQL5.png)
![Построение каналов - взгляд изнутри и снаружи](https://c.mql5.com/i/articles/overlay.png)
Построение каналов - взгляд изнутри и снаружи
Наверное, не будет преувеличением сказать, что после скользящих средних каналы - самый популярный инструмент для анализа рыночной ситуации и принятия торговых решений. Не углубляясь во множество существующих стратегий использования каналов и их составных элементов, мы здесь рассмотрим математические основы и практическую реализацию индикатора, строящего канал, заданный тремя экстремумами на экране терминала.
![Разработка и реализация новых виджетов на основе класса CChartObject](https://c.mql5.com/2/0/Design_Widgets_MQL5.png)
![Разработка и реализация новых виджетов на основе класса CChartObject](https://c.mql5.com/i/articles/overlay.png)
Разработка и реализация новых виджетов на основе класса CChartObject
После написания статьи про полуавтоматический советник с графическим интерфейсом пользователя у меня возникла необходимость расширения интерфейса новым функционалом для более сложных индикаторов и экспертов. Ознакомившись с классами Стандартной библиотеки, я сделал новые виджеты. В этой статье описан процесс создания и использования новых элементов пользовательского интерфейса, созданных на базе класса CChartObjectEdit.
![Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов](https://c.mql5.com/2/0/averages_MQL5__1.png)
![Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов](https://c.mql5.com/i/articles/overlay.png)
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
![Обработчик события "новый бар"](https://c.mql5.com/2/0/new_bar_born.png)
![Обработчик события "новый бар"](https://c.mql5.com/i/articles/overlay.png)
Обработчик события "новый бар"
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
![20 торговых сигналов на MQL5](https://c.mql5.com/2/0/20_Trading_Signals_MQL5__1.png)
![20 торговых сигналов на MQL5](https://c.mql5.com/i/articles/overlay.png)
20 торговых сигналов на MQL5
В этой статье вы научитесь получать торговые сигналы, необходимые для работы торговой системы. Приведены примеры формирования 20 торговых сигналов в виде отдельных пользовательских функций, которые можно использовать в написании экспертов. Для вашего удобства все функции из статьи собраны в один включаемый mqh-файл, который легко подключается к будущему эксперту.
![Несколько способов определения тренда на MQL5](https://c.mql5.com/2/0/Determine_Trend_MQL5.png)
![Несколько способов определения тренда на MQL5](https://c.mql5.com/i/articles/overlay.png)
Несколько способов определения тренда на MQL5
Любой трейдер отдал бы многое за возможность безошибочного определения тренда в любой момент времени, и, пожалуй, это и есть тот самый Грааль, который все ищут. В данной статье мы рассмотрим несколько способов определения тренда, а точнее, как средствами языка MQL5 запрограммировать несколько классических способов определения тренда.
![Как создать свой Trailing Stop](https://c.mql5.com/2/0/Trailing_Stop_MQL5.png)
![Как создать свой Trailing Stop](https://c.mql5.com/i/articles/overlay.png)
Как создать свой Trailing Stop
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
![Цветные индикаторы - создание и применение](https://c.mql5.com/2/0/paint_indicator_MQL5__1.png)
![Цветные индикаторы - создание и применение](https://c.mql5.com/i/articles/overlay.png)
Цветные индикаторы - создание и применение
Речь в данной статье пойдет о возможностях для создания цветных индикаторов и раскрашивания индикаторов уже существующих. С переходом на MQL5 появилась возможность представлять информацию в удобном для глаза виде. Теперь не обязательно накидывать кучу графиков с разными индикаторами и с линейкой высматривать уровни RSI и Stochastic, можно просто раскрасить свечи в разные цвета в зависимости от показаний индикаторов.
![Как написать индикатор на основе другого индикатора](https://c.mql5.com/2/0/indicator_based_on_other_MQL5__1.png)
![Как написать индикатор на основе другого индикатора](https://c.mql5.com/i/articles/overlay.png)
Как написать индикатор на основе другого индикатора
На MQL5 можно не только создать новый пользовательский индикатор с чистого листа, но и написать индикатор на базе другого, уже существующего индикатора, встроенного в терминал или пользовательского. И тут существует два способа: первый - доработать индикатор, добавить к нему новые вычисления и графические стили, второй - использовать встроенный в терминал индикатор или существующий пользовательский индикатор при помощи функций iCustom() или IndicatorCreate().
![Исследование быстродействия скользящих средних в MQL5](https://c.mql5.com/2/0/moving_averages_performance_MQL5__1.png)
![Исследование быстродействия скользящих средних в MQL5](https://c.mql5.com/i/articles/overlay.png)
Исследование быстродействия скользящих средних в MQL5
Со времён создания первого индикатора простой скользящей средней появилась масса разнообразных индикаторов. Многие из них построены именно на схожем принципе или используют в своих расчётах те или иные способы обработки ценового ряда. При этом зачастую за бортом остаётся вопрос скорости вычислений таких индикаторов и оптимальности алгоритмов, заложенных в них. В статье рассмотрены все возможные варианты использования скользящих средних и проведён сравнительный анализ быстродействия каждого.
![Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)](https://c.mql5.com/2/0/Named_Pipes_MetaTrader5.png)
![Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)](https://c.mql5.com/i/articles/overlay.png)
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
![Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов](https://c.mql5.com/2/0/Multicurrency_Indicator_MQL5.png)
![Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов](https://c.mql5.com/i/articles/overlay.png)
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
![Создание тиковых индикаторов](https://c.mql5.com/2/0/Untitled7.png)
![Создание тиковых индикаторов](https://c.mql5.com/i/articles/overlay.png)
Создание тиковых индикаторов
В этой статье описывается создание двух индикаторов: строящего тиковый график цены и рисующего "тиковые свечи" - свечи, содержащие заданное число тиков. Каждый из рассмотренных индикаторов записывает поступающие значения цен в файл для построения индикаторов при повторном запуске терминала (эти данные также могут использоваться другими приложениями).
![Стили рисования в MQL5](https://c.mql5.com/2/0/180x180LoongIndicator.png)
![Стили рисования в MQL5](https://c.mql5.com/i/articles/overlay.png)
Стили рисования в MQL5
В MQL4 есть 6 типов графического отображения индикаторов, а MQL5 доступно уже 18 стилей рисования. Поэтому, возможно, стоит написать статью о стилях рисования в MQL5. В данной статье мы рассмотрим подробности работы со стилями графического отображения индикаторов. Кроме того, мы создадим индикатор для иллюстрации всех этих стилей и уточним особенности графических построений.
![Практическая реализация цифровых фильтров на MQL5 для начинающих](https://c.mql5.com/2/0/Filter.png)
![Практическая реализация цифровых фильтров на MQL5 для начинающих](https://c.mql5.com/i/articles/overlay.png)
Практическая реализация цифровых фильтров на MQL5 для начинающих
Идее цифровой фильтрации сигналов посвящаются достаточно объёмные темы обсуждения на форумах по построению торговых систем. В этой статье автор знакомит с процессом превращения кода более простого индикатора SMA из своей статьи "Пользовательские индикаторы в MQL5 для начинающих" в код гораздо более сложного универсального цифрового фильтра. В ней также изложены простейшие приёмы замены текста в коде и методика получения простейших навыков по исправлению ошибок программирования.
![MQL5, обработка событий: Изменяем период мувинга "на лету"](https://c.mql5.com/2/0/How_Change_Period_Moving_Average_on_the_fly_MQL5__1.png)
![MQL5, обработка событий: Изменяем период мувинга "на лету"](https://c.mql5.com/i/articles/overlay.png)
MQL5, обработка событий: Изменяем период мувинга "на лету"
Предположим, что на чарт наброшен индикатор простого мувинга с периодом 13. А мы хотим изменить период до 20, но нам не хочется лезть в диалог свойств индикатора и править число 13 на 20: надоело уже пальцы стирать об мышку и клавиатуру. И уж тем более не хочется открывать код индикатора и модифицировать его. Мы хотим сделать все это однократным нажатием одной клавиши - "стрелочки вверх", расположенной рядом с цифровой клавиатурой. В этой публикации мы расскажем, как это сделать.
![Способы вызова индикаторов в MQL5](https://c.mql5.com/2/0/Calling_indicators_MQL5.png)
![Способы вызова индикаторов в MQL5](https://c.mql5.com/i/articles/overlay.png)
Способы вызова индикаторов в MQL5
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
![MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах](https://c.mql5.com/2/0/chainik__1.png)
![MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах](https://c.mql5.com/i/articles/overlay.png)
MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах
Для получения в торговом советнике значений встроенного или пользовательского индикатора, необходимо предварительно создать его хендл с помощью соответствующей функции. На примерах показано, как воспользоваться тем или иным техническим индикатором при разработке своих программ. Речь идёт о индикаторах, которые непосредственно встроены в язык MQL5. Статья предназначена для начинающих разработчиков торговых стратегий и предлагает простые и ясные способы работы с индикаторами с использованием приложенной библиотеки функций.
![Пользовательские индикаторы в MQL5 для начинающих](https://c.mql5.com/2/0/s_002__1.png)
![Пользовательские индикаторы в MQL5 для начинающих](https://c.mql5.com/i/articles/overlay.png)
Пользовательские индикаторы в MQL5 для начинающих
Любой новый предмет для новичка с первого взгляда кажется сложным для понимания. Нам кажется простым и ясным то, что мы уже знаем. Но мы просто не помним, что всем нам когда-то приходилось изучать с нуля, даже родной язык, на котором мы разговариваем. Так и язык MQL5, таящий в себе огромные возможности для написания торговых стратегий, можно начать изучать с базовых понятий и примеров. В этой статье на примере пользовательского индикатора SMA рассматривается взаимодействие технического индикатора с клиентским терминалом MetaTrader 5.
![Индикатор от индикатора в MQL5](https://c.mql5.com/2/0/indikators_001.png)
![Индикатор от индикатора в MQL5](https://c.mql5.com/i/articles/overlay.png)
Индикатор от индикатора в MQL5
При написании индикатора, который использует краткую форму вызова функции OnCalculate(), можно упустить то обстоятельство, что индикатор может рассчитываться не только на ценовых данных, но и на данных другого индикатора (встроенного или пользовательского - не имеет значения). Вы хотите улучшить индикатор, чтобы он правильно считался не только на ценовых данных, но и значениях другого индикатора? В этой статье мы по шагам пройдем все необходимые этапы такой модификации и выведем дополнительные полезные правила для правильного написания индикатора.
![Передача данных между индикаторами - простое решение наболевшей проблемы](https://c.mql5.com/2/0/v5__1.png)
![Передача данных между индикаторами - простое решение наболевшей проблемы](https://c.mql5.com/i/articles/overlay.png)
Передача данных между индикаторами - простое решение наболевшей проблемы
Мы хотим создать среду, которая предоставляла бы возможность обращения к показаниям индикаторов, присоединенных к тому или иному графику терминала, и обладала бы следующими свойствами: отсутствие копирования данных; минимальное вмешательство в код уже имеющихся инструментов при необходимости их «подключения»; реализация преимущественно средствами MQL (естественно, механизм DLL нам все же потребуется, однако, как мы увидим, его использование будет ограничиваться не более чем десятком строк на С++). В статье объясняется, как можно довольно просто создать в терминале MetaTrader программную среду, обеспечивающую средства для доступа к буферам индикаторов из других MQL-программ.
![Как написать индикатор в MQL5](https://c.mql5.com/2/0/indikator__1.png)
![Как написать индикатор в MQL5](https://c.mql5.com/i/articles/overlay.png)
Как написать индикатор в MQL5
Что представляет собою индикатор? Это набор вычисленных значений, которые мы хотим отобразить на экране монитора удобным для нас образом. Наборы значений представляются в программах в виде массивов. Таким образом, создание индикатора - это написание алгоритма, который обрабатывает одни массивы (массивы цен) и записывает результаты обработки в другие массивы (значения индикаторов). На примере создания индикатора True Strength Index в статье рассказывается, как писать индикаторы на MQL5