Wolf von Runik - Использование экспертных систем в трейдинге
В широком смысле слова искусственный интеллект это попытка моделирования человеческого поведения и процесса принятия решений. В последние годы техника искусственного интеллекта начали применяться к разным сферам человеческой деятельности, включая трейдинг. Множество пакетов торгового программного обеспечения, которые находятся сегодня в продаже, основаны на технике искусственного интеллекта.
С момента появления в 1950 году изучение проблем искусственного интеллекта разделилось на две большие сферы: экспертные системы и нейросистемы. Хотя эти два термина часто считаются взаимозаменяемыми они, тем не менее, основаны на разных подходах к процессу принятия решений. Соответственно различно и их применение в трейдинге.
Что такое эспертная система?
В самом простом виде экспертная система представляет собой набор данных с импликативными (если…то) функциями, которые конфигурируются в дерево решений (рисунок 1). Дерево начинается с вершины, которая содержит оператор ввода данных (D1). Информация D1 подвергается анализу на основании пары правил, которые обозначаются R1 и R2 следующим образом:
Если данные D1 соответствуют критерию R1, то тогда мы переходим на ветку, которая соответствует R1. Если данные D1 соответствуют критерию R2, то тогда мы переходим на ветку R2.
Каждая ветка ведет к другой вершине, в которой находится новый оператор ввода данных. На этом операторе вновь включается импликативная функция "если…то", следствием применения которой является выбор очередной ветки, ведущей к следующей вершине. Подобного рода процедура продолжается до тех пор, пока выбранная цепочка не приведет вас к заключению. Каждая цепочка представляет собой автономное логическое суждение. Например, если вы вберете самую левую честь дерева на рисунке 1, то это даст нам следующее логическое суждение: если D1 есть R1 и D2 есть R2 и D3 есть R5, тогда заключение 1.
Экспертная система отличается от традиционной компьютерной программы тем, что она решает проблему, используя информацию, которая уже заложена в систему, а не ту, которую мы получаем путем использования математического алгоритма. Например, в компьютерной программе будет использоваться алгоритм для определения годовой волатильности швейцарского франка, тогда как в экспертной системе эта информация будет внесена в базу знаний заранее. Эта априорная информационная структура позволяет экспертным системам успешно решать проблемы, для которых не существует алгоритмических решени.

Рисунок 1. Рисунок дает представление о том, как работает экспертная система. Каждая ветвь содержит модуль данных и пару импликативных правил.
Главная отличительная черта классической экспертной системы заключается в том, что сбор модулей данных и импликативных правил (вместе они называются "базой знаний") осуществляется экспертом в некоей отдельной области (отсюда название "экспертная система"). Таким образом, экспертная система представляет собой персональное или внутреннее дерево решений эксперта.
Применение.
Исторически экспертные системы были инструментом больших финансовых учреждений. Представим себе, что компания Big Bucks Trading намерена улучшить результативность работы своего департамента на рынке SP 500. Вместо того, чтобы нанять крутых трейдеров или попытаться задействовать новое и не прошедшее тестирование торговое программное обеспечение, компания принимает решение использовать экспертную систему. Они заключают контракт с "Мистером SP500", всемирно известным трейдером, торгующим на этом рынке для разработки экспертной системы через анализ его торговых решений.
Экспертная торговая система конструируется посредством взаимодействия "Мистера SP500" cо специалистом, известным как "инженер по знаниям", который должен закодировать торговую методологию "Мистера SP500". Инженер спрашивает трейдера, как он начинает свой процесс принятия решения. "Мистер SP500" отвечает, что он сперва интересуется тем, какая в настоящий момент процентная ставка. Инженер задает следующий вопрос: какие правила он применяет в зависимости от разных процентных ставок. Трейдер отвечает: "Основным для моего решения является - больше ли ставки 10 % или меньше". Инженер задает вопрос о следующем шаге. "Мистер SP 500" отвечает: "Я принимаю в расчет показатель ВВП, где Рубиконом является цифра в 3 %". Инженер человеческих душ продолжает извлекать информацию из "Мистера SP 500", пока совокупность разных ветвей не приведет его к окончательному решению. Результат их совместной работы может напоминать рисунок 2.

Рисунок 2
Хотя знания трейдера - эксперта представляют собой важную составляющую экспертной системы, в не меньшей степени от опыта инженера баз знаний зависит положительный результат. После создания базы знаний начинается настоящая работа. Инженер анализирует взаимосвязи, очерченные экспертом - трейдером и начинает работать над кодом программы.
Хотя приведенный нами пример является весьма схематическим, тем не менее он дает представление о том, как создается и работает экспертная система, вне зависимости от уровня ее сложности.
Самодельная экспертная система
Большинство экспертных систем создаются так, как было описано выше. Разумеется, что обычный трейдер вряд ли будет в состоянии пользоваться услугами "Мистера SP 500" и инженера баз знаний. Но у каждого есть возможность создать экспертную систему, основанную на простых закономерностях и вероятностях.
Логика этого подхода достаточно проста. Когда эксперт говорит примерно следующее: "Если ситуация А, тогда результат В", - это утверждение делается на его личном опыте вероятности такой ситуации. Например, эксперт говорит: "Я торгую 30 лет и в 9 из 10 случаев, когда реализуются факторы X, Y, Z рынок падает". Мы можем осуществить симуляцию подсознания эксперта, его процесса принятия решений на основе вероятности путем анализа дистрибуции вероятности на рынках. Рассматриваемая в статье методология позволяет создать простую самодельную экспертную систему. Цель: создать базу знаний и правил, которые будут говорить вам, когда покупать, продавать или оставаться вне рынка. База основана на следующих переменных:
1. Учетные ставки (Interest rates -IR): низкие - 1, средние -2, высокие - 3.
2. Уровень безработицы (Unemployment rates - UN): низкий -1, средний - 2 , высокий - 3.
3. Американский доллар (US$): слабый - 1, умеренный - 2, сильный - 3.
4. Направление рынка (Market direction - MD): вниз - 1, боковое - 2, вверх - 3.
Наша цель определить вероятность, связанную со следующей логической цепочкой: если IR=X и UN=Y и US$=Z тогда
1. Какова вероятность нисходящего тренда на рынке?
2. Какова вероятность восходящего тренда на рынке?
3. Какова вероятность бокового тренда на рынке?
Вероятность для каждого условия легко определяется при помощи программы вложенных циклов (см. Программа вложенных циклов). Поскольку у нас три вводных с тремя возможными определениями для каждого и три возможных исхода, мы должны получить 34 или 81 логическую цепочку.
Для иллюстрации давайте предположим, что ваша база данных содержит 84 случая для логической цепочки, если IR=1 и UN=3 и US = 2. Далее представим, что в итоге вы получили 4 результата для нисходящего рынка, 12 результатов для бокового рынка и 68 для восходящего рынка. В итоги мы имеем следующую вероятность для логического утверждения
если IR=1 и UN=3 и US = 2, тогда
Вероятность нисходящего рынка 4/84 или 5 %
Вероятность бокового рынка 12/84 или 14 %
Вероятность восходящего рынка 68/84 или 81 %.
После анализа каждой логической цепочки и соответствующих ей вероятней направления движения рынка, вам следует определить количество примеров необходимых для каждой цепочки, чтобы вы чувствовали себя уверенно, включая ее в вашу экспертную систему. В приведенном нами примере, таких было 84. Хватит ли вам этого? Чтобы ответить на данный вопрос, неплохо бы обратиться к различными статистическим тестам, которые можно найти в книгах по статистике.
Программа вложенных циклов.
Вероятность для каждого условия легко определяется при помощи выполнения простой программы вложенных циклов.
CLS
DIM con(3, 3, 3, 3)
10 READ IR, UN, US, MD
DATA 1,2,3,1
DATA 1,1,1,2
" " "
" " "
DATA 0,0,0,0
FOR x = 1 TO 3
FOR y = 1 TO 3
FOR z = 1 TO 3
FOR a = 1 TO 3
IF IR = 0 THEN GOTO 20
IF IR = x AND UN = y AND US = z AND M = a THEN con(x, y, z,a)
= con(x, y, z, a) + 1
NEXT a
NEXT z
NEXT y
NEXT x
GOTO 10
20
FOR x = 1 TO 3
FOR y = 1 TO 3
FOR z = 1 TO 3
FOR a = 1 TO 3
IF con(x, y, z, a) 20 THEN PRINT "If IR ="; x; "and UN ="; y;"and
US ="; z;"then the probability of Market Direction"; a; "is"; con(x, y, z,
a) / (con(x, y, z, 1) + con(x, y, z,
2)+ con(x, y, z, 3))
NEXT a
NEXT z
NEXT y
NEXT x
END
-W.V.
Содержание раздела