

Последний крестовый поход
Взгляните в ваш торговый терминал. Какие способы представления цены вы видите? Бары, свечи, линейный. Мы гонимся за временем и ценами, а прибыль нам дает одна цена. Так может стоит посмотреть на рынок лишь только с ценами? В данной статье предложен алгоритм построения пункто-цифровых графиков ("крестики-нолики") и скрипт, позволяющий производить построение данных графиков. Рассмотрены типичные ценовые паттерны и даны рекомендации по их практическому использованию.

Нейросети — это просто (Часть 9): Документируем проделанную работу
Мы уже проделали довольно большой путь, и код нашей библиотеке сильно разрастается. Становится сложно отслеживать все связи и зависимости. И конечно, перед продолжением развития проекта нам нужно задокументировать уже проделанную работу и актуализировать документацию на каждом последующем шаге. Правильно подготовленная документация поможет нам увидеть целостность нашей работы.


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


Графические интерфейсы XI: Нарисованные элементы управления (build 14.2)
В новой версии библиотеки все элементы библиотеки будут рисоваться на отдельных графических объектах типа OBJ_BITMAP_LABEL. Также продолжим описывать оптимизацию кода: рассмотрим изменения в классах, которые являются ядром библиотеки.


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


LifeHack для трейдера: Сравнительный отчет нескольких тестирований
В статье рассматривается одновременный запуск тестирования советника сразу на четырёх разных символах. Итоговое сравнение четырёх отчётов тестирования приводится в одной таблице, как при выборе товаров в интернет-магазинах. Дополнительным бонусом идут автоматически создаваемые графики распределений для каждого символа.


Универсальный торговый эксперт: Индикатор CUnIndicator и работа с отложенными ордерами (часть 9)
В статье описана работа с индикаторами через универсальный класс CUnIndicator. Кроме того, рассмотрены новые методы работы с отложенными ордерами. Обратите внимание: с этого момента структура проекта CStrategy существенно изменена. Теперь все его файлы располагаются в единой директории для удобства пользователей.


LifeHack для трейдера: индикаторы баланса, просадки, загрузки и тиков во время тестирования
Как сделать тестирование более наглядным? Ответ прост: нужно использовать в тестере один или несколько индикаторов — тиковый индикатор, индикатор баланса и эквити, индикатор просадки и загрузки депозита. Это позволит визуально отслеживать или природу тиков, или изменение баланса и эквити, или просадку и загрузку депозита.


Паттерны с примерами (Часть I): Кратная вершина
Статья начинает цикл рассмотрения разворотных паттернов в рамках алготрейдинга. Мы начнем мысль, исследуя первое и самое интересное семейство данных паттернов, которые берут начало из паттерна "Двойная вершина" и "Двойное дно".

Анализ спреда по ценам Bid и Ask в MetaTrader 5
В статье рассказываю об инструменте, который позволит увидеть уровни спреда, т.е. разницу между ценами бид и аск у вашего брокера. Тиковые данные в MetaTrader 5 позволяют проанализировать, какие же исторические значения спредов по ценам бид и аск были на самом деле. При этом не нужно искать текущее значение спреда, потому что его можно получить через отображение линий цен бид и аск.


Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)
В второй части серии будет показан процесс разработки таких элементов интерфейса, как главное меню и контекстное меню. Также затронем тему рисования элементов и для этого создадим специальный класс. Очень широко будет освещен такой вопрос, как управление событиями программы, в том числе и пользовательскими.


Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть I): Инструментарий
Данная статья развивает идею использования сетей Кохонена в МетаТрейдер 5, освещавшуюся в нескольких предыдущих материалах. Исправленные и усовршенствованные классы предоставляют инструментарий для решения прикладных задач.


Комбинационный скальпинг: сделки из прошлого или повышение результативности будущих сделок
На рассмотрение предлагается описание технологии повышения результативности любой автоматизированной торговой системы. В статье кратко раскрывается идея, базовые основы, возможности и недостатки метода.


Комбинаторика и теория вероятностей для трейдинга (Часть II): Универсальный фрактал
В данной статье я продолжаю изучать фракталы и очень большое внимание будет уделено обобщению всего материала. А именно, я постараюсь свести все наработок в нечто более компактное и понятное для практического применения в трейдинге.


Интеграция эксперта на MQL и базы данных (SQL Server, .NET и C#)
Статья описывает, как добавить в экспертов на MQL5 возможность работы с сервером баз данных Microsoft SQL Server. Используется импорт функций из DLL. Для создания DLL применяется платформа Microsoft .NET и язык C#. Используемые в статье методы с незначительными изменениями подходят и для экспертов, написанных на MQL4.


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


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

Нейросети — это просто (Часть 11): Вариации на тему GPT
Сегодня, наверное, одной из самых передовых языковых моделей нейросетей является GPT-3, которая в максимальном своем варианте содержит 175 млрд. параметров. Конечно, мы не будем создавать подобного монстра в домашних условиях. Но давайте посмотрим, какие архитектурные решения мы можем использовать в своей работе и какие это нам даст преимущества.


Интервью с Алексеем Мастеровым (ATC 2012)
Мы стараемся заблаговременно знакомить зрителей Чемпионата со всеми претендентами на призовые места. Для этого мы внимательно следим за всеми перспективными участниками в TOP-10 и берём у них интервью. Но взлет на 3-е место Алексея Мастерова (reinhard) был для нас полной неожиданностью!


LifeHack для трейдера: "Тихая" оптимизация или Строим распределения трейдов
Анализ торговой истории и построение HTML графиков распределения результатов торговли в зависимости от времени входа в позицию. Графики отображаются в трех разрезах – по часам, дням недели и месяцам.


Самоадаптирующийся алгоритм (Часть III): Отказываемся от оптимизации
Получить по-настоящему стабильный алгоритм невозможно, если для подбора параметров используется оптимизация по историческим данным. Стабильный алгоритм сам должен знать, какие параметры нужны для работы по любому торговому инструменту в любой момент времени. Он не должен предполагать или угадывать, он должен точно знать.

Нейросети — это просто (Часть 14): Кластеризация данных
Должен признаться, что с момента публикации последней статьи прошло уже больше года. За столь длительное время можно многое переосмыслить, выработать новые подходы. И в новой статье я хотел бы немного отойти от используемого ранее метода обучения с учителем, и предложить немного окунуться в алгоритмы обучения без учителя. И, в частности, рассмотреть один из алгоритмов кластеризации — k-средних.


Рецепты MQL5 - Разработка мультивалютного индикатора для анализа расхождения цен
В этой статье рассмотрим разработку мультивалютного индикатора для анализа расхождения цен за указанный период времени. Многие основные моменты уже рассматривались в предыдущей статье по программированию мультивалютных индикаторов "Разработка мультивалютного индикатора волатильности на MQL5". Поэтому на этот раз будем останавливаться только на новых функциях и тех функциях, которые претерпели сильные изменения. Если Вы впервые рассматриваете тему программирования мультивалютных индикаторов, то рекомендуется в первую очередь прочитать предыдущую статью.


Расчёт интегральных характеристик излучений индикаторов
Излучения индикаторов - это малоизученное направление исследования рынка. В первую очередь из-за трудности анализа, которая вызвана обработкой очень больших массивов изменяющихся во времени данных. Существующий графический анализ слишком ресурсоёмкий и поэтому был разработан экономный алгоритм с использованием таймсерий излучений. В статье предлагается заменить визуальный (интуитивно-образный) анализ исследованием интегральных характеристик излучения. Статья будет интересна как трейдерам, так и разработчикам механических торговых систем.


Разработка торгового советника с нуля
Давайте разберемся, как разработать советник для торговли с минимальным количеством программирования


Использование электронных таблиц для построения торговых стратегий
В статье описаны основные принципы и приёмы, позволяющие провести анализ любой стратегии с помощью электронных таблиц — Excel, Calc, Google. Также сделано сравнение полученных результатов с тестером MetaTrader 5.

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


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


Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)
Недавно разработчики MQL5 представили новую версию графической библиотеки для создания научных графиков (класс CGraphic). В этом обновлении нашей библиотеки будет представлена версия с новым элементом для создания графиков. Теперь визуализировать данные различных типов будет ещё проще.


Использование MetaTrader 5 как поставщика торговых сигналов для MetaTrader 4
В статье обсуждаются особенности использования MetaTrader 5 в качестве поставщика торговых сигналов для MetaTrader 4. Вы узнаете как создать простой поставщик торговых сигналов из MetaTrader 5 и как его подключить к нескольким терминалам MetaTrader 4. Также вы узнаете о том, как в реальном времени копировать сделки участников Automated Trading Championship на свой реальный счет в MetaTrader 4.


Строим анализатор спектра
Данная статья призвана познакомить читателя с возможным вариантом использования графических объектов языка MQL5. В статье рассматривается индикатор, в котором при помощи графических объектов создана панель управления простейшим анализатором спектра. Статья рассчитана на читателя, знакомого с основами языка MQL5.


Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII): Основной торговый класс - контроль допустимых параметров
В статье продолжим развитие торгового класса - организуем контроль неверных значений параметров торгового приказа и озвучим торговые события.


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


Библиотека для простого и быстрого создания программ для MetaTrader (Часть XIX): Класс сообщений библиотеки
В статье рассмотрим класс вывода текстовых сообщений. Сейчас у нас имеется достаточное количество различных текстовых сообщений, и уже стоит подумать о реорганизации способа их хранения, вывода и удобства правки русских сообщений на иной язык, а так же об удобном способе добавления новых языков в библиотеку и быстром переключении между ними.


Обработка ошибок и логирование в MQL5
В статье рассматриваются общие вопросы обработки ошибок в программном обеспечении. Кроме того, затрагивается тема логирования и демонстрируется пример реализации логгера средствами MQL5.


Интервью с Дмитрием Терентьевым (ATC 2012)
Нужно ли быть программистом, чтобы писать торговых роботов? Должны ли вы провести годы в наблюдении за графиками цен, чтобы понять рынок и почувствовать его пульс? Эти вопросы мы затронули в интервью с Дмитрием Терентьевым (SAFF), чей торговый робот держится на первой странице Чемпионата с самого его начала.


Применение OpenCL для тестирования свечных моделей
В данной статье мы рассмотрим алгоритм реализации тестера свечных моделей на языке OpenCL в режиме "OHLC на M1". А также сравним его быстродействие cо встроенным тестером стратегий, запущенным в режиме быстрой и медленной оптимизации.

Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5
Уже доступен пакет Python для разработки интеграции с MQL, что открывает двери для многих возможностей, таких как изучение данных и создание и использование моделей машинного обучения. Эта встроенная интеграция MQL5 в Python открывает для нас много возможностей, которые позволяют построить от простой линейной регрессии до моделей глубокого обучения. Давайте разберемся, как установить и подготовить среду разработки и использовать некоторые библиотеки машинного обучения.


Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)
В этой статье мы создадим элемент «Разделительная линия». Его тоже можно будет использовать не только как независимый элемент интерфейса, но и как часть многих других элементов. После этого у нас будет всё необходимое для разработки класса контекстного меню, которое тоже будет подробно рассмотрено в этой статье. Кроме этого, вносятся необходимые дополнения в класс, который является базой для хранения указателей на все элементы графического интерфейса приложения.


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