Научная статья на тему 'Оптимизация торговых алгоритмов на основе эволюционных вычислений'

Оптимизация торговых алгоритмов на основе эволюционных вычислений Текст научной статьи по специальности «Математика»

CC BY
332
93
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
TRADING STRATEGIES / OPTIMIZATION / GENETIC ALGORITHM / FINANCIAL INDICATORS / EVOLUTIONARY COMPUTATION

Аннотация научной статьи по математике, автор научной работы — Монахов О. Г., Монахова Э. А.

Описан подход для оптимизации торговых стратегий (алгоритмов), основанный на индикаторах финансовых и товарных рынков и эволюционных вычислениях. Представлен генетический алгоритм, который был применен для автоматизации поиска оптимальных параметров торговых стратегий с точки зрения максимизации показателей доходности.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Optimization of trading algorithms based onevolutionary computation

This work describes an approach for optimization of trading strategies (algorithms) based on indicators of financial markets and evolutionary computation. The presented genetic algorithm was applied for an automatic search of the optimal parameters in the trading strategies for profit maximization.

Текст научной работы на тему «Оптимизация торговых алгоритмов на основе эволюционных вычислений»

Вычислительные технологии

Том 13, № 5, 2008

Оптимизация торговых алгоритмов на основе эволюционных вычислении

О. Г. Монлхов, Э.А. Монахова Институт вычислительной математики и математической геофизики СО РАН, Новосибирск, Россия e-mail: {monakhov,emilia}@rav.sscc.ru

This work describes an approach for optimization of trading strategies (algorithms) based on indicators of financial markets and evolutionary computation. The presented genetic algorithm was applied for an automatic search of the optimal parameters in the trading strategies for profit maximization.

Введение

В практике биржевой торговли одним из основных направлений при выработке торговых стратегий (торговых алгоритмов) является технический анализ ценовых рядов с помощью множества индикаторов [1-6]. В соответствии с принятой торговой стратегией, выраженной в виде набора правил, с поведением ценового ряда и значениями индикаторов инвестор принимает решение о совершении/не совершении сделки купли-продажи в данный момент времени. При совершении сделки инвестор руководствуется соображениями максимизации доходности и минимизации риска. Принятый набор правил, составляющий торговую стратегию, и используемые индикаторы имеют эмпирический характер и значения их параметров определяются в основном опытным путем (методом проб и ошибок). Однако, как показывают эксперименты, такой подход с использованием известных правил и статически задаваемых параметров часто приводит к убыточным стратегиям.

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

1. Постановка задачи

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

* Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (грант № 08-01-00857).

© Институт вычислительных технологий Сибирского отделения Российской академии наук, 2008.

Будем считать, что цена на акцию представлена в виде ценового ряда {Сг}, 1 < г < N, с заданной частотой (например, минутные или часовые цены), где Сг — цена закрытия в момент г. Пусть Гг+1 = Сг+1 — Сг.

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

Пусть мы имеем индикатор технического анализа: /г(га) = /(Сг, Сг-1,..., Сг-П).

Обобщенная торговая стратегия Б(1г(п)), основанная на индикаторе 1г(п), определяется следующими соотношениями:

{1, если /г(га) > £ь <£г, если — £2 < 4га) < £1,

— 1, если /г(га) < —£2,

А т(п)

где £1, £2 > и — уровни значимого изменения индикатора 1г .

Состояние покупки в данной торговой стратегии наступает при <^¿+1 = 1, а состояние продажи наступает при = —1. Решение о сделке (купле-продаже) принимается при смене состояний: = —1.

Эта стратегия Б(1г(п)) будет использована как темплейт (с некоторыми модификациями) для определения торговых стратегий на основе различных индикаторов технического анализа, и поиск оптимальных значений свободных параметров (п, £), определяющих стратегию с наилучшими показателями доходности, будет осуществляться с помощью ГА.

Например, один из часто используемых индикаторов при анализе ценовых рядов — экспоненциальное скользящее среднее порядка к:

с= с(к) + (2/(* + 1))(ст — с(к)),

_(к)

0 < г < N — 1, С0 = Со. Порядок скользящего среднего к определяет степень сглаживания цены: чем больше к, тем сильнее сглаживание.

Рассчитывается также разность экспоненциальных скользящих средних порядков к1 < к2:

- = С г — С г

1 С(к2) '

Приведем пример простейшей торговой стратегии на основе экспоненциальных скользящих средних [2]. Задается уровень значимого изменения сглаженных цен £ > 0. Состояние покупки в данной торговой стратегии наступает при — > £, а состояние продажи наступает при -г < —£. Решение о сделке (купле/продаже) принимается при смене состояний. Стратегия имеет три свободных параметра к1,к2,£, изменение которых изменяет показатели доходности и риска торговой стратегии. Поиск оптимальных стратегий (с наилучшими показателями доходности и/или риска) может осуществляться для каждого типа акций отдельно в динамике торговых сессий, с постоянной адаптацией к рыночной ситуации, или в квазидинамическом режиме, когда расчет оптимальных параметров происходит либо через заданные периоды времени, либо по выполнению определенных условий (например, по достижении заданного уровня потерь).

Пусть торговая стратегия Б содержит параметры Р = {рп}, п > 0, описывающие значения целочисленных и действительных коэффициентов и переменных, значения индексов, параметры структур данных, константы и некоторые примитивные операции алгоритма (величины инкрементов и декрементов, знаки переменных, логические операции и отношения, типы округления переменных).

Целевая функция Г оценивает величину доходности стратегии Б, полученную при заданных значениях параметров Р = {рп} и при входных данных ценового ряда Сг: Г = Гг(Б(Р,С)), з < г, 1 < г < N.

Таким образом, проблема оптимизации торговой стратегии состоит в следующем: для данной стратегии Б и заданного набора значений ценового ряда Сг, 1 < г < N, необходимо найти такие значения параметров Р* стратегии Б, что

(Б (Р *, С г ) ) > (Б (Р, Сг))

для 1 < г < N, при любых других значениях параметров Р £ Пош(Р).

Для решения данной проблемы в работе предлагается подход, основанный на применении генетических алгоритмов (ГА) [7, 8] с использованием предварительного знания прикладной области (множества индикаторов), на выборе обобщенной схемы торговой стратегии, задаваемой в виде темплейта с параметрами [9], и на ограничении пространства поиска оптимальных параметров.

2. Генетический алгоритм

Генетический алгоритм основан на моделировании процесса естественного отбора в популяции особей, каждая из которых представлена точкой в пространстве решений задачи оптимизации. Особи представлены структурами данных — Gen-хромосомами, включающими свободные (неопределенные) параметры pk торговой стратегии S: Gen = {P}= {pi,p2, •••,Pfc}, k > 0. Эти параметры определяют необходимую торговую стратегию S(Gen). Каждая популяция является множеством структур данных Gen и определяет множество стратегий S(Gen).

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

Примем, что целевая функция (fitness function, функция качества, функция пригодности) F вычисляет суммарную доходность Dn , полученную в результате торговли в соответствии с данной стратегией S за N шагов для заданного ценового ряда {C¿}, 1 < i < N:

Nbr

F = Dn = ^(dbm _ Comm),

m= 1

где

Csell _ Cbuy

--' ГГ-у-, --' rr-y-.

d

m fibyuy

Cm

Здесь Cme11, — цены продажи и покупки в m-й сделке, Nbr — число сделок за N шагов моделирования, Comm — размер постоянных комиссионных за каждую сделку.

Целью алгоритма является поиск максимума F.

3. Представление данных

Основными структурами данных в программной реализации эволюционного алгоритма являются хромосомы Gen. Для представления и реализации хромосомы была предложена линейная структура для параметров p^. Линейная структура хромосомы Gen используется для представления различных типов параметров p¿. стратегии, таких, как значения целочисленных и действительных коэффициентов и переменных, значения индексов, величины инкрементов и декрементов, а также знаков переменных, логических операций и отношений, типов округления переменных [9-11].

Приведем пример линейной структуры хромосомы, каждый ген которой обозначен через [g] и соответствует одному из параметров стратегии:

{[5][1.2][-1][+][&][>][LxJ]}.

При создании хромосом Gen задаются значения параметров p^, по которым можно оценивать и модифицировать стратегию S(Gen).

Таким образом, для фиксированных значений параметров p^ мы можем вычислять значения целевой функции F на основе заданных стратегий S(Gen) и полученных в ходе эволюции хромосом Gen для требуемого ценового ряда {C¿}, 1 < i < N. После выполнения стратегий S для данного ценового ряда мы получаем значения целевой функции F и выбираем лучшие стратегии в популяции.

4. Операторы алгоритма

Оператор мутации применяется к особям, случайно выбранным из текущей популяции с вероятностью pm G [0,1]. Мутация линейной хромосомы Gen состоит в замене значения случайно выбранного параметра p^ другой, случайно выбранной, величиной из множества допустимых значений.

Оператор кроссовера (скрещивания) применяется к двум особям (родителям), случайно выбранным из текущей популяции с вероятностью pc G [0,1]. Кроссовер состоит в порождении двух новых особей путем обмена частями хромосом родителей (обмен подчастями линейных структур хромосомы).

Оператор создания нового элемента (особи) состоит в генерации случайных значений параметров p¿..

Оператор селекции (отбора) реализует принцип выживания наиболее приспособленных особей. Он выбирает наилучшие особи с максимальными значениями целевой функции.

Заметим, что только простейшие генетические операторы были использованы в алгоритме, но данный подход позволяет применять и более сложные операторы, разработанные для ГА [7, 8].

5. Итерационный процесс

Для поиска оптимума заданной целевой функции F итерационный процесс вычислений в ГА организован следующим образом.

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

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

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

Последняя итерация (критерий остановки): итерации заканчиваются либо после исполнения заданного числа шагов, либо после нахождения оптимальной стратегии S (Gen) (с заданным значением целевой функции F ). После выполнения данного количества шагов алгоритма мы получаем множество (популяцию) стратегий S (Gen), содержащее в элементе best[U] стратегию S*(Gen), имеющую максимальное значение целевой функции F.

6. Экспериментальные результаты

Предложенный генетический алгоритм с использованием темплейтов был успешно применен для адаптивной оптимизации торговых стратегий, основанных на следующих, наиболее популярных, инструментах технического анализа: экспоненциальных скользящих средних (EMA — Exponential Moving Average), индекса относительной силы (RSI — Relative Strength Index), темпа изменения цены (ROC — Price Rate-Of-Change), момента (Momentum), метода схождения-расхождения скользящих средних (MACD — Moving Average Convergence/Divergence) [l-6].

Генетический алгоритм оптимизации торговых стратегий был реализован в системе эволюционного синтеза алгоритмов на основе шаблонов (TES — Template-based Evolutionary Synthesis) [9] на языке программирования C, стратегии также задавались на этом языке.

В экспериментах рассмотрены ценовые ряды с минутными интервалами для акций Газпрома (тип l, 65535 точек), РАО "ЕЭС России" (тип 2, 65535 точек), Nikkei (тип 3, 42622 точки), DJIA — Dow Jones Industrial Average (тип 4, 65535 точек), в периоде с 16.04.2006 по l6.04.200T. Первые l5000 точек использовались для обучения, остальные точки — для тестирования.

Число итераций и размер популяции мы выбирали экспериментальным путем, основываясь на параметрах из [Т, 8]. Значения основных параметров в экспериментах приведены в табл. l.

Таблица 1. Значения основных параметров

Parameter Setting

Population size 100

Max generations 300

Selection Tournament of size 2

Crossover rate 70%

Mutation rate 15%

Interval for K, ko,k\, k2 [1-200]

Interval for e [0.0001-0.03]

Interval for b [-49]

Commission Comm 0.001

6.1. Стратегии на основе экспоненциальных скользящих средних (EMA)

Экспоненциальное скользящее среднее — один из наиболее распространенных инструментов технического анализа. Традиционно скользящее среднее используется для наблюдения за изменением цен. Обычно инвесторы покупают, если цена бумаг поднимается выше скользящего среднего, и продают, если она падает ниже него. Аналогичная торговая стратегия используется на основе двух скользящих средних — с коротким и длинным периодом усреднения. Инвесторы покупают, если короткое скользящее среднее поднимается выше длинного скользящего среднего, и продают, если оно падает ниже длинного.

Для примера рассмотрим следующую торговую стратегию. Пусть задана разность двух экспоненциальных скользящих средних порядков k1 < k2:

C(kl) — с(к2)

r- = —---—

- C(k2) '

Определим торговую стратегию S(г-):

если r- > е, если — е < г < е, если r- < —е,

где е > 0 — уровень значимого изменения сглаженных цен. Состояние покупки в данной торговой стратегии наступает при = 1, а состояние продажи — при = — 1.

Решение о сделке (купле/продаже) принимается при смене состояний: = — 1.

Поиск оптимальных значений свободных параметров P = {k1,k2, е}, определяющих стратегию с наилучшими показателями доходности F, осуществляется с помощью ГА для каждого типа акций отдельно.

При рекомендованных [1] значениях свободных параметров k1 = 5, k2 = 20, е = 0.001 суммарная доходность составляет для первого типа акций 2.45 и 1.92 — для второго типа акций. В результате выполнения генетического алгоритма в случае акций первого типа найдены следующие значения свободных параметров: k1 = 1, k2 = 15, е = 0.001, при суммарной доходности 5.04. А в случае акций второго типа алгоритм нашел следующие значения параметров: k1 = 1, k2 = 4, е = 0.001 при суммарной доходности 5.013. Первый результат был получен за 180 итераций, за время 13 мин, при величине популя-

Vi+1

-1,

1

ции 500, второй результат был получен за 140 итераций, за время 10 мин, при величине популяции 500 (средние значения получены по результатам 10 экспериментов).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6.2. Стратегии на основе схождения/расхождения скользящих средних (MACD)

Индикатор МАСБ вычисляют как разность между двумя экспоненциальными скользящими средними (ЕМА) цены акции порядков к1 < к2. Полученная величина может быть как выше, так и ниже нуля. Кривая индикатора МАСБ обычно сглаживается при помощи скользящего среднего самого индикатора МАСБ (а не цены) порядка к0 < к1. Эта линия называется сигнальной. Она предвосхищает схождение двух скользящих средних (т.е. движение МАСБ к нулевой линии).

Основная торговая стратегия с помощью МАСБ построена на пересечениях индикатора со своей сигнальной линией: если МАСБ опускается ниже сигнальной линии — следует продавать, а если поднимается выше сигнальной линии — покупать.

Более формально, аналогично стратегии на основе экспоненциальных скользящих средних, определим торговую стратегию Б(гтг):

если гтг > £, если — £ < гтг < £, если гтг < —£,

где £ > 0 — уровень значимого изменения разности сглаженных цен,

_ = (С(к1) — С(к2)) — ЕМА((С(к1) — С(к2)), ко) ГГПг~ ЕМА((С(к1) — С(к2)),ко) '

Состояние покупки в данной торговой стратегии наступает при = 1, а состояние продажи — при = —1. Решение о сделке (купле/продаже) принимается при смене состояний: = —1. Поиск оптимальных значений свободных параметров

Р = {к1, к2, к0, £}, определяющих стратегию ^ с наилучшими показателями доходности, также осуществляется с помощью ГА для каждого типа акций отдельно.

При рекомендованных [1, 3] значениях свободных параметров к1 = 12, к2 = 26, к0 = 9, £ = 0.02, суммарная доходность составляет для первого типа акций 6.20 и 5.16 — для второго типа акций. В результате выполнения генетического алгоритма в случае акций первого типа найдены следующие значения свободных параметров: к1 = 19, к2 = 58, к0 = 9, £ = 0.02 при суммарной доходности 7.09. А в случае акций второго типа алгоритм нашел следующие значения параметров: к1 = 17, к2 = 55, к0 = 8, £ = 0.02 при суммарной доходности 5.97. Первый результат был получен за 143 итерации, за время 11 мин, при величине популяции 500, второй результат — за 240 итераций, за время 18 мин, при величине популяции 500 (средние значения получены по результатам 10 экспериментов).

^¿+1 =

-1,

1

6.3. Стратегии на основе индекса относительной силы (RSI)

Процедура расчета RSI проста:

RSI, = 100 - 100

Н A

1 I Ai — K

Bi

K

где — среднее значение цен закрытия, по величине выше предыдущих за K дней,

— среднее значение цен закрытия, по величине ниже предыдущих за K дней.

Основная торговая стратегия с помощью RSI — S(RSI,): сигнал о продаже формируется при превышении индикатором уровня 50 + b, а сигнал о покупке — при понижении за уровень 50 — b, 0 < b < 50:

(1, если RSI, > 50 + b,

если 50 — b < RSI, < 50 + b, — 1, если RSI, < 50 — b.

Стратегия имеет два свободных параметра K и b: P = {K, b}.

При рекомендованных [1, 3] значениях свободных параметров K = 14, b = 20 суммарная доходность F составляет для первого типа акций 1.64 и 0.898 — для второго типа акций. В результате выполнения генетического алгоритма в случае акций первого типа найдены следующие значения свободных параметров: K = 6, b = 9 при суммарной доходности 2.87. А в случае акций второго типа алгоритм нашел следующие значения параметров: K = 9, b =17 при суммарной доходности 2.26. Первый результат был получен за 60 итераций, за время 6 мин, при величине популяции 500, второй результат — за 25 итераций, за время 3 мин, при величине популяции 500 (средние значения получены по результатам 10 экспериментов).

6.4. Стратегии на основе темпа изменения цены (ROC)

Индикатор темпа изменения цены (ROC) показывает разность между текущей ценой и ценой K периодов назад. Разность цен может быть выражена или в пунктах, или в процентах:

ROC, = C - ■ 100%.

Заметим, что индикатор момента (Momentum) носит аналогичный характер и отражает зависимость между теми же величинами, но не в виде разности, а в виде отношения.

ROC измеряет величину ценового изменения за определенный период. Если цены растут, ROC также растет; если цены падают, ROC падает вместе с ними. Чем больше ценовое изменение, тем сильнее меняется ROC.

Определим торговую стратегию S (ROC,):

если ROC, > е, если — е < ROC, < е, если ROC, < —е,

где е > 0 — уровень значимого изменения цен. Состояние покупки в данной торговой стратегии наступает при = 1, а состояние продажи — при = —1. Решение о сделке (купле/продаже) принимается при смене состояний: = —1. Поиск оп-

тимальных значений свободных параметров P = {K, е}, определяющих стратегию с наилучшими показателями доходности F, осуществлялся с помощью ГА для каждого типа акций отдельно.

При рекомендованных [1, 6] значениях свободных параметров K = 12, е = 0.0065 суммарная доходность составляет для первого типа акций 1.22 и 0.90 — для второго типа

^г+1

—1,

1

Таблица 2. Увеличение суммарной доходности торговых стратегий, %

Тип акции Индикатор

EMA MACD RSI ROC

Газпром 204 14 38 12

РАО "ЕЭС России" 167 15.7 151 14.1

Nikkei 219 38 250 21

DJIA 41 35,6 31 16

акций. В результате выполнения генетического алгоритма в случае акций первого типа найдены следующие значения свободных параметров: K = 27, е = 0.004 при суммарной доходности 2.044. А в случае акций второго типа, алгоритм нашел следующие значения параметров K = 27, е = 0.03, при суммарной доходности 1.027. Первый результат был получен за 12 итераций, за время 3 мин, при величине популяции 500, второй результат — за 140 итераций, за время 10 мин, при величине популяции 500 (средние значения получены по результатам 10 экспериментов).

Заключение

Представленный подход к оптимизации торговых стратегий, основанный на индикаторах технического анализа, эволюционных вычислениях и темплейтах, был успешно применен для поиска свободных параметров стратегий с целью максимизации функции суммарной доходности F. Используемый генетический алгоритм позволил найти значения параметров торговых стратегий, обеспечивающие увеличение функции суммарной доходности (на 12-250 % для различных индикаторов, см. табл. 2) по сравнению с известными ранее [1, 3, 6].

Дальнейшее развитие данного подхода будет направлено на эволюционный синтез [9] новых торговых алгоритмов, правил и стратегий с использованием комбинаций нескольких индикаторов и поиском новых функций для анализа ценовых рядов.

Авторы выражают благодарность С.С. Артемьеву за полезные консультации.

Список литературы

[1] ÁOHELis S.B. Technical analysis from A to Z. Chicago: Probus, 1996.

[2] Артемьев С.С., Якунин М.А. Математическое и статистическое моделирование на фондовых рынках. Новосибирск: ИВМиМГ СО РАН, 2003.

[3] LeBeaü C., LüCAS D.W. Computer analysis of the futures market, N.Y.: IRWIN, 1992.

[4] WEiSSMAN R.L. Mechanical Trading Systems, Hoboken. New Jersey: John Wiley and Sons, Inc., 2005.

[5] SALOV V. Modeling maximum trading profits with C++ : new trading and money management concepts, Hoboken. New Jersey: John Wiley and Sons, Inc., 2007.

[6] Blau W. Momentum, Direction and Divergence, Hoboken. New Jersey: John Wiley and Sons, Inc., 2001.

[7] Goldberg D.E. Genetic Algorithms, in Search, Optimization and Machine Learning. Reading, MA: Addison-Wesley, 1989.

[8] KozA J. Genetic Programming. Cambridge: The MIT Press, 1992.

[9] Monakhoy O.G., Monakhova E.A. Evolving templates for synthesis of scientific algorithms // Comput. Technologies. 2005. Vol. 10, N 6. P. 3-12.

[10] МОНАХОВ О.Г., МОНАХОВА Э.А. Синтез новых семейств оптимальных регулярных сетей на основе эволюционных вычислений и шаблонов функций // Автометрия. 2004. № 4. С. 106-116.

[11] Монахов О.Г., Монахова Э.А. Параллельные системы с распределенной памятью: структуры и организация взаимодействий. Новосибирск: Изд-во СО РАН, 2000.

Поступила в редакцию 22 июня 2007 г., в переработанном виде —16 июня 2008 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.