
Мною была поставлена задача разобраться в причинах получения прибыли определенной ТС (торговая система). Для этого требовалось изучить историю котировок, подтвердив или опровергнув возникающие гипотезы.
Ниже пойдет речь об этом процессе для одной из них.
Несколько лет назад написал простой инструментарий для лучшего понимания фильтра, что использую. Сам фильтр (торговых сигналов) был опубликован с открытым исходным кодом почти пять лет назад.
Теперь любой желающий может попробовать этот инструмент (beta). А ниже просто покажу его удивительные результаты в теме машинного обучения (МО) через одну из версий (8.13) имитации интеллекта (ИИ).
Для статистически значимой проверки требуется много сделок, поэтому с помощью вышеупомянутого ИИ был собран робот с просьбой (к ИИ) ничего не фильтровать и быть постоянно в рынке одной позицией, только ее переворачивая. Грубо говоря, вся история торгов — это чередование Buy/Sell.
В итоге в замечательном MT5-тестере с возможностью подключения ONNX-моделей был получен такой результат.
В этом обновлении был улучшен веб-терминал. Мы добавили в него разные цветовые схемы для интерфейса, а также улучшили окно спецификации инструмента.
Помимо этого, в MQL5 появилась поддержка нового алгоритма умножения матриц General Matrix Multiplication (GeMM). Он позволяет значительно ускорить вычисления на большинстве процессоров. На данный момент новый алгоритм поддерживается в методе matrix::GeMM.
Также в MQL5 появилась поддержка работы с моделями ONNX. Это позволит значительно облегчить использование нейронных сетей в торговых советниках.
MetaTrader 5 Client Terminal build 3620
Что-то никто не написал вчерашнем сбое.
Тогда напишу я, чтобы в истории осталось. Это будет история без финансовых потерь и без громких обвинений, но, надеюсь, не скучная.
Речь пойдет о терминалах и серверах Metatrader у брокера «Открытие».
Если кратко, то почти сразу после начала утренней сессии на срочном рынке, около 7:02 сервера перестали корректно работать и вскоре были выключены. Некорректность работы заключалась в том, что часть заявок, отправленных с пользовательского терминала «зависли». С такими заявками невозможно было ничего сделать, ни снять, ни переставить.
Не очень приятно иметь на рынке заявки (кроме стопов) в момент, когда вы не можете ничем управлять. К счастью (счастье, как известно, приходит к подготовленным), терминал Quik работал корректно. Быстро запускаем Quik и отменяем все лишние заявки: Ctrl-D, Enter, Ctrl-D, Enter, …, фух, все.
Остается только ждать, когда починят неисправность на сервере.
Сервера долго не работали, ненадолго включались и тут же выключались. Окончательно включились около 7:50. Однако, даже после того как они включились все те же «зависшие» заявки, которые были уже сняты через Quik по-прежнему отображались в терминалах и ничего с ними сделать было нельзя. Для моих роботов это большая проблема, потому что такую заявку они принимают за корректную, принимаются ее переставлять или снимать. С «зависшими» заявками роботы получали ошибки, а через определенное количество ошибок мои роботы принимают «абсолютно оправданное) решение о том, что «что-то пошло не так». От этого они перестают что-либо делать, периодически сигнализируя «Хьюстон, кажется, у нас проблема».
Причем, торговая система у меня построена так, что достаточно одного робота в таком состоянии, чтобы отключились и все остальные роботы. Как итог-пока в терминалах показываются такие заявки у меня ничего не работает. Даже там, где никаких зависших заявок нет.
Написал в техподдержку и стал дожидаться каких-либо изменений.
Незаметно прошло время до 10:00. От скуки проверил, что новые заявки ставятся-снимаются корректно как через Quik, так и через Metatrader. Все было бы прекрасно, если бы не эти заявки, которые никак не хотели уходить.
На смартлабе никто не писал обычные в таких случаях посты. Значит, проблемы была только у небольшой части клиентов. Все яснее была мысль, что техподдержка не смогла исправить проблему не перезапуская сервер. А сервер не хотят перезапускать, из-за нескольких клиентов, тогда как у остальных клиентов все прекрасно работает.

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

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

Теперь надписи на картинке в виде текста (авто-переводчикам) и некоторых подробностей.
1. Расчетный график, построенный Validate в конце своей работы.
Через каждые две недели автооптимизация за прошедшие два месяца. Кастомный критерий оптимизации, принудительный обрыв ГА через 2000 проходов.
Итого всего 15 оптимизаций в режиме по реальным тикам+пипсы. Полностью на все ушло ровно 19 минут.
Первый горб на графике во многом вызван тем, что не учитывалось смещение времени. Как только период смещения времени перестал попадать в интервал оптимизации, график сгладился.
2. Фактический график результата работы Validate.
Идея не нова, вопрос был только в реализации.
Платформа MetaTrader 5 обладает возможностями автоматизации Тестера. Расчет огромного количества данных на истории реальных тиков — обыденность.
Проверка адаптивности ТС — аналогично.
Однако, при большом количестве уже проведенных вычислений требуется разобрать эту кучу данных и найти в ней что-то, действительно, интересное.
Это можно делать двумя способами:
В первом случае получается быстро, но можно легко что-то упустить, действительно, важное.
Во втором случае все гораздо тщательнее, но очень много времени на это уходит. Элементарно утомить природную машину настолько, что больше никогда не захочется к этому возвращаться.
Для MetaTrader 5 написана торговая библиотека MT4Orders.
Начиналось так.
// Список изменений: // 03.08.2016: // Релиз - писался и проверялся только на оффлайн-тестере.
Сегодня библиотеке ровно пять лет. Продолжает развиваться. Перечислим ее достижения.