Задачи классификации временных рядов с утилитой ML-Assistant

Задачи классификации временных рядов с утилитой ML-Assistant

13 ноября 2017, 22:31
Aleksey Terentev
0
216

Введение

В последнее время машинное обучение (МО) становится все более известным в широких кругах. Конечно не обошло оно стороной и тех, кого интересует заработок спекуляциями на международных рынках различных специализаций. Действительно, эта сфера предоставляет огромное количество данных, которые изучаются уже достаточно давно математиками разного профиля.
В среднем обычный трейдер не является профессором математики или статистики, еще меньше вероятность, что он Data Scientist, но доступность технологий диктует свое, поэтому и появляется много энтузиастов со стороны.
Исследование рынка методами статистики и машинного обучения накладывает на пользователей MetaTrader некоторые ограничения в работе с данными. Эта статья предназначена познакомить читателя с инструментом используемым автором лично в своих изысканиях.


Теоретическое обоснование

Цель данной статьи - знакомство с инструментом, позволяющим упростить работу с данными предоставляемыми терминалом MetaTrader, отобразить прогнозы моделей классификации и регрессии (в диапазоне [-1, +1]), автоматизировать рутинные действия. Все ради того, чтобы позволить исследователю не терять концентрацию и время на рутину в процессе изысканий.
ML-Assistant - утилита написанная на языке mql4, предназначена для терминала MetaTrader 4. Основной функционал программы:

  • Сохраняет необходимые для анализа данные в стандартном для статистики формате CSV: "data_x.csv", "data_y.csv", "data_xx.csv", данные рыночных тайм серий, индикаторов, а также сигналы принятия решений для обучения модели.
  • Читает прогноз из файла "data_yy.csv" и отображает на графике вместе с сигналами стратегии. По умолчанию все действия с файлами данных производятся в директории "$MetaTrader$\MQL4\Files\ML-Assistant".
  • Автоматически запускает внешнее ПО с параметрами для обучения и прогнозирования.
  • Позволяет легко вести отладку скриптов МО. За счет удобного интерфейса, минимизирует количество рутинных действий.
  • Позволяет корректировать вручную сигналы стратегий, сохранять откорректированные данные.

Программа сэкономит много времени тем, кто увлечен собственными исследованиями. Достаточно настроить окружение.

Image 1.

ML-Assistant


Применение

Настройка параметров ML-Assistant

  • Выбираем индикатор для прогнозирования. Настраиваем его параметры.
  • Выбираем данные для сохранения на вход модели машинного обучения. (Время / Данные цен / Данные индикаторов)
  • Настраиваем запуск скрипта МО:
    • Для этого нужно разрешить программе импорт DLL.
    • Пути к расположению программы и скрипта (например, C:\\python.exe или python.exe, если он указан в переменной PATH ОС Windows, и соответственно C:\\test.py). В случае если у вас компилируемое приложение, оставляем путь к скрипту пустым.
    • Необходимые параметры для обучения и прогнозирования (например, "-train" и "-predict"). В качестве первого параметра программа всегда устанавливает текущий инструмент и таймфрейм с префиксом и постфиксом из системного раздела параметров - PrefixEURUSD60.
    • Период, через который ML-Assistant будет запускать скрипт МО с параметрами на обучение.
    • Глубина прогноза (лаг) определяет, то насколько бар вперед будут различаться целевые (выходные) данные. 0 - прогноз на текущий бар.
    • Размер истории определяет количество свечей сохраняемых для прогнозирования.
  • По необходимости настраиваем остальное:
    • Включенная панель пользователя позволит одним кликом запускать скрипт, изменять значения сигналов стратегии.
    • Координаты панели пользователя.
    • Путь к файлам данных. По умолчанию $MetaTrader$\MQL4\Files\ML-Assistant.
    • Префикс и постфикс определяют формат названия сохраняемых файлов и первого параметра запускаемых скриптов МО.
    • Разделитель данных в файлах CSV.
    • Коэффициент отображения данных прогноза. 1.0 - читает данные как есть; 2.0 - Увеличит прогноз вдвое; 0.5 - уменьшит данные прогноза в двое.
    • Пороговый уровень, меньше которого сигналы индикатора пропускаются.

Image 2.

Параметры ML-Assistant

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

Image 3.

ML-Assistant с прогнозом на 1 бар вперед


Подготовка скриптов

ML-Assistant позволяет запускать скрипты для любого типа применяя параметры запуска. Для статистического анализа данных применяются MatLab, Excel, языки программирования Python и R, и другие программные системы.
Рассмотрим языки программирования.
Чтобы оптимизировать процесс и исключить лишние действия скрипт МО можно запускать с параметрами запуска. Ниже приведены примеры скриптов на Python и R, позволяющие прочитать параметры запуска программы.

example.pyexample.r
import sys

args = sys.argv
for item in args:
	print(item)

input('...')
args <- commandArgs(trailingOnly = TRUE)

print(args)

Image 4.1.

Параметры запуска программы и скрипта

Image 4.2.

Запущен скрипт с параметрами для обучения

Работа с ручными сигналами

В ML-Assistant есть возможность настроить сигналы в ручную.
Для этого выберете в параметрах любой индикатор. На панели интерфейса имеется кнопка "Save Custom", которая сохраняет сигналы для хранения/редактирования. Сохранив сигналы нужного индикатора, в параметрах программы ML-Assistant выберете индикатор Custom. Переключатель "Signal Rec." во включенном положении позволяет записывать клики по области индикатора для расстановки сигналов.
Сохраненные сигналы подаются на выход модели для обучения, как и обычные сигналы индикаторов, подгружаются после перезапуска терминала.

Image 5.1.

Сохраняем сигналы индикатора Impulse System нажатием на "Save Custom"

Image 5.2.

В индикаторе Custom активируем запись и делаем пирамиду на 7 декабря


Завершение

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

P.S. Публикация программы на маркете не возможна, т.к. вызов сторонних приложений требует разрешения на импорт dll. При скачивании исполняемого файла ML-Assistant вы берете на себя ответственность за безопасность вашей системы.

Обновления

Версия 1.19 от 24.12.2017

  • + Порог срабатывания индикатора сигналов [0.0 - 1.0].

    Threshold

  • + Возможность сохранять данные индикаторов ATR, CCI, RSI.

Версия 1.20 от 08.01.2018

  • + Новый индикатор сигналов для машинного обучения iSampler (by her.human@gmail.com, 2012).

    Sampler

  • + Возможность сохранить любые сигналы в индикатор Custom.
  • + Возможность изменить координаты панели интерфейса.
  • + Улучшена производительность, исправлены мелкие баги.
Файлы:
Поделитесь с друзьями: