BC/NW 2018 № 1 (32):12.1

ИНТЕЛЛЕКТУАЛЬНАЯ ИССЛЕДОВАТЕЛЬСКАЯ СИСТЕМА ДЛЯ ОПРЕДЕЛЕНИЯ ЛУЧШИХ МОМЕНТОВ ВХОДА В РЫНОК

Морозова Е.А. Чернов С.А.

ВВЕДЕНИЕ

Forex (Форекс) – это рынок конверсионных операций по обмену валюты одной страны на волюту другой страны по согласованному курсу на определенный момент времени.

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

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

Для реализации такой идеи, предлагается применить генетический алгоритм (ГА) и эволюционное программирование. ГА – представляет собой адаптивно-поисковой метод, на селекции лучших элементов популяции. С точки зрения преобразования информации – это последовательное преобразование одного конечного множества промежуточных решений в другое. Само преобразование является алгоритмом поиска, или ГА.

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

Данный подход будет применен в текущей работе для анализа валютного рынка Форекс и поиска точек входа в рынок 

 

ОПИСАНИЕ ОБЪЕКТА ЗАДАЧИ

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

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

 

МЕТОД РЕШЕНИЯ ЗАДАЧИ

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

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

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

В данной работе будут разработаны  шесть хромосом. Каждая хромосома будет содержать набор математических правил для анализа рынка и принятия решения, входить в рынок или нет. Каждая хромосома будет отличаться своим уникальным алгоритмом и способом анализа рынка. Для отбора лучшей хромосомы среди однотипных, предполагается запускать в цикле заданное число раз ГА. В рамках одной итерации ГА получает хромосому, дающую наилучшее решение на данном этапе. Цель многократного повторения ГА заключается в получении множества лучших хромосом и выборе среди них наилучшей, причем наилучшие хромосомы, возможно появившиеся на неком предыдущем шаге, в силу условия алгоритма, остается в популяции среди лучших, и продолжает свое участие в отборе. Если появится новая хромосома, дающая большее значение ЦФ, то старая лучшая хромосома будет отброшена, или останется в популяции, заняв более низкую позицию в списке. В разработанном ГА в создании потомка участвуют две хромосомы. На базе их параметров рассчитываются параметры потомка. Также в предложенном ГА при создании потомка заложена возможность мутации. Мутация нужна чтобы значение ЦФ не зацикливалось  в области локального максимума, а выбивалась из этой области для возможного поиска еще большего максимума, хотя не гарантированно абсолютного. Данная идея применения ГА используется независимо ко всем типам хромосом, в итоге мы получили для каждого типа хромосом наборы лучших популяций. Из этих наборов возьмем наилучшие хромосомы наилучшего типа и составим из них ДНК.

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

 

ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

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

Входными параметрами ГА является количество итераций цикла; количество хромосом в итоговой популяции; количество потомков, генерируемых на каждом шаге цикла; значение процента, определяющего порог применения алгоритма мутации для генерации очередного потомка.

В начале работы генерируется заданное число хромосом и заданное число потомков. Процесс генерации заключается в создании объекта хромосомы и определения ее параметров значений случайным образом из заданного диапазона. Затем запускается основной цикл, каждый шаг которого моделирует генерацию новой популяции. Вначале каждой итерации сортируется коллекция популяции по убыванию значений ЦФ. Затем мы удаляем из популяции количество хромосом, равное количеству потомков, начиная с конца коллекции. Далее из популяции случайным образом выбираются хромосомы для генерации потомков. Таких хромосом выбирается в два раза больше, чем заданное число потомков, так как две хромосомы участвуют в создании одного потомка. Сутью создания потомка является определение значений его параметров. Используя датчик случайных чисел, определяются варианты получения этих значений. Это могут быть значения, взятые в числовом виде из соответствующих параметров родителей, а могут быть получены путем побитовой операции исключающего ИЛИ соответствующих параметров двух родителей. Результат, полученный таким способом, корректируется расчетом остатка от деления на максимально возможное значение, чтобы не выпасть за дозволенные границы. Случайным образом генерируется процент применения алгоритма мутации. Если он меньше заданного параметра, то к соответствующему параметру потомка применяется мутация. Рассчитанное значение представляется в двоичном коде, который делится пополам, и полученные половинки меняются местами. Результат корректируется остатком от деления. Полученный потомок проторговывается на всех исторических данных для расчета всех статистических данных и ЦФ. Далее потомок помещается в коллекцию итоговой популяции. Так создается заданное число потомков. После итоговая коллекция сортируется и все повторяется заново.

После выполнения ГА, мы имеем итоговую популяцию хромосом, отсортированную по ЦФ. Первая хромосома в коллекции является наилучшей и берется как результат решения, которая помещается в результирующую ДНК.

Рис.1. Общий ГА.

В итоге, мы будем иметь для каждого типа хромосом по одной хромосоме с наилучшим значением ЦФ среди других хромосом в данном типе. Для тестирования найденных лучших хромосом, необходимо собрать их в единое множество, и организовать совместную торговлю. Был разработан объект коллекции ДНК. На ДНК размещается точно такая же статистическая коллекция, как и на хромосомах. Этот даёт возможность использовать те же способы оценки эффективности торговли и рассчитывать значение ЦФ по тем же самым формулам. Объект ДНК аналогичен хромосоме, за исключением того, что он содержит внутри себя шесть хромосом различных типов. Принимать решение о входе в рынок должны те, хромосомы, которые находятся в ДНК. Таким образом, принцип принятия решения фактически не изменился. Разница заключается лишь в том, что решение принимает не одна хромосома, а шесть. Таким образом, при поступлении очередной котировки в объект ДНК, эта котировка передаётся каждой  хромосоме, и каждая хромосома выдаёт своё решение, независимо от других. ДНК подсчитывает количество положительных и отрицательных решений. Если количество положительных больше или равно количества отрицательных, то сделка совершается на данной котировке, иначе ДНК в рынок не входит. Описанный алгоритм работы ДНК представлении на рис. 2.

 

Рис. 2. Алгоритм тестирования ДНК

 

ВЫВОД

Проведя тестирование полученной ДНК на коллекционном наборе исторических данных, мы получили следующие результаты: количество заключённых сделок внутри самой благоприятной области составляет 87%. Для области второй категории, которая хуже первой, но лучше, чем любая другая, составляет 92% от общего количества возможностей. Для третей области – 79%, а для четвёртой – 75%. В «чёрной» области этот процент составляет 73%. Количество ошибочных сделок составляет 30%. Суммарное количество всех благоприятных заключённых сделок составляет 81%, то есть только 19% благоприятных сделок не задействованы. Количество благоприятных сделок в 6 раз превышает количество неблагоприятных. Таким образом, прибыль может составлять 500% от вложенных средств. Разница между процентом благоприятных входов в рынок и количество ошибочных моментов входа составляет 68%, что значительно больше половина. Пример вывода рассчитанной статистики представлен на рис. 3, график котировок с выделенными областями, в которых были совершены входы в рынок, представлен на рис. 4.

Рис. 3. Вывод рассчитанной статистики на экран

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

Рис. 4. График истории котировок

 

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ И ТЕХНИЧЕСКОЙ ДОКУМЕНТАЦИИ

1. Куликов А.А. Форекс для начинающих. Справочник биржевого спекулянта. – Сб.: Питер, 2003.-356 с.;

2. Куликов А.А. Форекс для начинающих. Справочник биржевого спекулянта. Второе издание. – Сб.: Питер, 2009.-368 с.

3. Элдер А. Как играть и выигрывать на бирже. Учебное пособие для участников торгов на мировых биржах. – М.: Альпина паблишер, 2001. – 165 с.;

4. Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования. - М.:ФИЗМАТЛИТ, 2003. - 432 с.;

5. Родзин С.И., Курейчик В.В., Курейчик В.М. Теория эволюционных вычислений. - М.:ФИЗМАТЛИТ, 2012. - 260 с.;

6. Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы. - М.:ФИЗМАТЛИТ, 2006. - 320 с.;

7. Букатова, И.Л. Эволюционное моделирование: идеи, основы теории, приложения. Знание - Москва, 2010. - 801 c.;

8. Богатырев М.Ю. Инварианты и симметрии в генетических алгоритмах // XI национальная конференция по искусственному интеллекту с международным участием КИИ-2008, - М.: Физматлит, 2008, Т.1, - 1288 с.;

9. Букатова И.Л., Михасев Ю.И., Шаров А.М. Теория и практика эволюционного моделирования. - М.: Наука, 1991. - 206 с.