!"#"$%&'$%()*)+',-)(,#".*"*#,/0"*')$$"1$0)1*2&3&',4"" 5)$/3,'$%(&##)&*)+',-)(,%&67#)&*/8'&93&#"&* (:$;&5)*<')2&$$")#,67#)5)*)+',-)(,#". =#)()$"+"'$0"1*5)$/3,'$%(&##:1*/#"(&'$"%&%>*?#5/@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0BCDEFB*GHIDJ*KLCGFMBNKOK !"#$%&'()*&!(+,-,&(.,/''()*0(1/2(*1(&(+(!0( 0BPBLQDR*!BOSKM*0GLSNBLNKLGRKT ="LNDUFBQKV*SKSNDMW*XYZ[\]^_`*R*SKSNDMa*FBPFBHGNOK*K*bGEEDFcOK*NFDJEKLUGRWd* SNFBNDUKJ*e^fghijkfl> #BbFBRmDLKD*bGEUGNGROK*nopqpprsn*"#2)'!,%"0,*"*(:8"$6"%&67#,.*%&t#"0, 034565789:;<************************************************************************************(695= (KNVDR*&r*&r************************************************************************** ***0BPBLQDR*!r*0r Er*CrjMr*Lru ***2"%u*UFabbB*vnpw RrLrS*"!*$)*',#******************************************************************************* xxxxxxxxxxrr*********************************************************************xxxxxxxxxxrr ?bGEbKSyu*EBNB@*********************************************************************************************************************************************?bGEbKSyu*EBNB@ * #GRGSKHKFSOu*npqqUr !"#"$%&'$%()*)+',-)(,#".*"*#,/0"*')$$"1$0)1*2&3&',4"" 5)$/3,'$%(&##)&*)+',-)(,%&67#)&*/8'&93&#"&* (:$;&5)*<')2&$$")#,67#)5)*)+',-)(,#". =#)()$"+"'$0"1*5)$/3,'$%(&##:1*/#"(&'$"%&%>*?#5/@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0BCDEFB*GHIDJ*KLCGFMBNKOK /%(&'93,P -BQR*OBCDEFGJ*<BSTUVLGQ*3R&R WWWRRRRRRRRRRRWWWWR ?XGEXKYTZ*EBNB@ !"#"$%& $"'()*+,-$+.'-("/%0%-"1%2$$+.'3"425+'4"-"/"(3" $NVEDLNV*0B[BL\DQV*!BOYKMV*0GLYNBLNKLGQKUV #BXFBQSDLKD*XGE]GNGQOK*^_`a``Rb^*"#2)'!,%"0,*"*(:8"$6"%&67#,.*%&c#"0, 2,0/67%&%*"#2)'!,4")##:c*%&c#)6)5"1 %DMBd*="LND]FB\Ke*YKYNDMf*ghijklmno*Q*YKYNDMV*FB[FBHGNOK*K*XGEEDFpOK*NFDJEKL]GQfq* YNFBND]KJ*rmstuvwxsy>R "YqGELfD * EBLLfD * ?KSK * \DST * FBHGNf@d * KLND]FB\Ke * YKYNDMf * XGKYOB * [BOGLGMDFLGYNDJ * QG* QFDMDLLfq*FeEBq*ghijklmno*Q*YKYNDMV*FB[FBHGNOK*K*XGEEDFpOK*NFDJEKL]GQfq*YNFBND]KJ* rmstuvwxsy*ESe*BQNGMBNK[B\KK*XFG\DYYB*BLBSK[B*K*GNHGFB*[BOGLGMDFLGYNDJ*zOYXDFNBMK*Q* XFDEMDNLGJ*GHSBYNKR $NFVONVFLfD*UBYNK*FBHGNfd*GHGYLGQBNT*BONVBSTLGYNT*[BEBUKZ*YCGFMVSKFGQBNT*XFGHSDMVZ* XFGBLBSK[KFGQBNT * NFDHGQBLKeZ * XFDESGpKNT * BEDOQBNLfJ * NFDHGQBLKeM * K * [BEBUD * QBFKBLN* FD{DLKeR*)XKYBNT * KYXGST[VDMfD* KLYNFVMDLNf *K* BS]GFKNMfZ* FDBSK[GQBNT* XGYNBQSDLLV|* [BEBUV*?KLND]FKFGQBNT*YKYNDMV*K*FDBSK[GQBNT*NFDHVDMfD*ESe*zNG]G*MGEVSK@*Q*YGGNQDNYNQKK* Y*VOB[BLLfMK*NFDHGQBLKeMKR*<FDESGpKNT*QG[MGpLfD*NGUOK*FGYNBZ*QBFKBLNf*VSVU{DLKeZ* XGSVUKQ{D]GYe*FD{DLKeR Содержание ВВЕДЕНИЕ 3 1 Постановка задачи 3 2 Предлагаемое решение 4 3 Описание системы Wealth-Lab 5 4 Описание алгоритма поиска вероятностных закономерностей 7 4.1 Алгоритм поиска вероятностных закономерностей . . . . . . . . . . 7 4.2 Формирование прогноза и принятие решения . . . . . . . . . . . . . 10 5 Система вывода вероятностных закономерностей 12 6 Система визуализации правил 14 7 Заключение 18 Литература 21 Список литературы 21 2 ВВЕДЕНИЕ В настоящее время актуальной остается проблема финансового прогнозирования. Известно, что программные системы справляются с торговлей на рынках ценных бумаг эффективнее, чем человек, занятый в выполнении той же деятельности. Программно-аппаратные решения не подвержены влиянию произвольно возникающих эмоций, утомляемости и прочим свойственным человеку негативно влияющим на конечный результат торговли факторам. Для решения этой задачи ранее была создана система «Discovery», превосходящая другие методы Knowledge Discovery in Data Bases and Data Mining (KDD&DM), такие как нейронные сети, решающие деревья, ассоциативные правила, статистические методы, по проценту правильных прогнозов, показателям финансовой эффективности [4] и обнаруживающая в исходных данных знания, сформулированные на однозначно интерпретируемом языке логики первого порядка, в отличие от других эффективных методов, работающих по принципу черного ящика. Со стороны эксперта результаты работы этих методов вызывают недоверие из-за невозможности или затруднительности их интерпретации в предметной области. 1 Постановка задачи Несмотря на все преимущества метода обнаружения знаний в данных «Discovery», обнаруживаемые с его помощью закономерности в том виде, который они имеют в системе «Discovery», сложны в восприятии для экспертов в предметной области. И даже при умении сопоставить синтаксис закономерностей с его предметной семантикой, их ручной анализ и восприятие затрудняется из-за сложности визуального представления знаний на данных, с помощью которых они были получены. Более того, без возможности увидеть закономерность в контексте текущей динамики рынка эксперт не может составить своего суждения о ней. Отображение же закономерности на данных вручную — трудоемкий и неэффективный процесс. 3 Кроме того, количество выводимых системой «Discovery» закономерностей велико и при их использовании в условиях реальной торговли на рынках ценных бумаг возникает задача дополнительной фильтрации и анализа закономерностей для более осознанного и эффективного их применения. На протяжении долгого времени существуют показатели, традиционно используемые при торговле на финансовых рынках, — инструменты фундаментального и технического анализа. Данные показатели могут быть использованы для торговли независимо от любых других факторов, но примененные вместе с закономерностями, полученными в результате работы системы «Discovery», они могут дать значительный прирост в эффективности как торговой стратегии, в основу которой положен метод «Discovery», так и процесса анализа и отбора закономерностей. 2 Предлагаемое решение В целях решения задачи доступного представления было решено разработать модуль визуализации закономерностей, получаемых с применением системы «Discovery», на тех самых данных, с помощью которых эти закономерности выводятся. Система «Discovery» может использовать различные данные по различным инструментам и даже в случае обучения на одном и том же финансовом инструменте изменение параметров алгоритма приводит к изменению множества выводимых правил. Кроме того, эксперта интересует не только вид правил, но и детали: в какой день это правило сработало, какова была цена в данный момент. Принимая во внимание эти факторы, а также то, что количество данных, на которых обучается система «Discovery», велико (обычно анализируется история торговли нескольких прошедших лет), закономерной является реализация не статической, а программной визуализации. Для решения задачи анализа и отбора закономерностей разработано дополнение к системе разработки и поддержки торговых стратегий Wealth-Lab, позволяющей кроме правил, полученных в результате работы системы «Discovery», 4 учитывать в процессе торговли также показатели фундаментального и технического анализа. Для этого в Wealth-Lab существуют встроенные функции учета этих факторов. Программа Wealth-Lab позволяет формулировать стратегии с использованием многообразия возможностей и функций языка C#, таким образом предоставляя разработчику максимальную свободу в области использования дополнительных инструментов принятия торговых решений в отличие от сходных по функциональности инструментов, представленных в торговых терминалах. Кроме того, в Wealth-Lab предусмотрена возможность импорта данных из различных источников, включая торговые терминалы QUIK и MetaTrader, информационные ресурсы Google Finance и Bloomberg, а также произвольные СУБД с поддержкой SQL и файлы в формате Microsoft Excel. 3 Описание системы Wealth-Lab Wealth-Lab — платформа для разработки и тестирования торговых стратегий с возможностью применения технического и фундаментального анализа. Успешно опробованные на исторических данных стратегии могут использоваться для торговли в режиме реального времени с использованием внутреннего инструментария генерации торговых сигналов. Стратегией в терминах Wealth-Lab называется набор строго определенных правил, генерирующих на основании различных факторов сигналы покупки, продажи, короткой продажи или короткой покупки. Программа Wealth-Lab позволяет формулировать стратегии с использованием всего многообразия возможностей и функций языка C#. Также при создании стратегии на C# в Wealth-Lab допускается использование встроенных автоматических инструментов технического анализа, на основании которых можно принимать решение и подавать сигнал к совершению сделки. Кроме того, в Wealth-Lab 5 существует специальный пользовательский интерфейс для конструирования стратегий без C#, только на базе фундаментальных показателей, специально предложенный для пользователей, не обладающих навыками программирования. Неотъемлемым этапом запуска стратегии на реальном счете для работы в режиме реального времени является ее тестирование. С учетом этого Wealth-Lab оборудован широким набором функций проверки создаваемых стратегий на исторических данных: по одному инструменту и по разнородному портфелю инструментов, с фиксированным размером стартового капитала и в режиме максимизации прибыли. Таким образом, достигается максимальное приближение тестового использования стратегии к тому шаблону поведения, которым руководствуется пользователь. На этапе тестирования можно изучить прибыльность стратегии, величину максимальной просадки счета, а значит и понять, действительно ли следует запускать созданную стратегию в ежедневное использование. Wealth-Lab также наделен возможностями наблюдения за активными стратегиями, уже запущенными на реальных счетах, в режиме реального времени, что позволяет всегда держать под контролем баланс и в момент очевидной ошибки стратегии отменить поданный сигнал. Таким образом, Wealth-Lab представляется эффективным инструментом для создания с его помощью торговых стратегий на базе системы «Discovery». Поскольку количество правил, получаемых в результате работы системы «Discovery», обычно велико, их фильтрация и отбор могут быть осуществлены в том числе и с использованием автоматических средств технического и фундаментального анализа, представленных в Wealth-Lab. Дополнительный отбор дает возможность выделить наиболее эффективные правила, учитывать внешние показатели на этапе принятия решения и улучшить результативность торговли. Несмотря на все имеющиеся преимущества, в Wealth-Lab отсутствует возможность проводить обучение стратегии перед ее запуском, как реальным, так и тестовым. Процесс обучения нет смысла проводить с каждым запуском стратегии 6 в силу его трудоемкости, поэтому модуль обучения вынесен за пределы стратегии и реализован отдельно. Правила, получаемые на выходе алгоритма, представляются как XMLфайл в специальном формате, пример которого приведен на рисунке 1. Тот же формат файла поддерживается стратегией в Wealth-Lab: перед началом работы она десериализует правила из XML-файла во внутреннее представление и использует их в процессе принятия решений. 4 Описание алгоритма поиска вероятностных закономерностей 4.1 Алгоритм поиска вероятностных закономерностей Используемый в работе алгоритм поиска вероятностных закономерностей [2] основан на идее семантического вероятностного вывода [1], который для заданного класса гипотез T h позволяет находить все вероятностные закономерности вида A1 & . . . &Am ⇒ = A0 , с максимальной вероятностью предсказывающих литерал A0 , где Ai ∈ U (T h) — литералы, а U (T h) — множество всех литералов, определенных в классе гипотез T h. Базовое понятие алгоритма — вероятностная закономерность [1, 2], которой называется правило вида A1 & . . . &Am ⇒ = A0 , удовлетворяющее следующим условиям: а) условная вероятность правила p(A0 |A1 & . . . &Am ) определена, т.е. p(A1 & . . . &Am ) > 0; б) условная вероятность правила p(A0 |A1 & . . . &Am ) строго больше услов- ных вероятностей каждого из его подправил, т.е. для любого правила Ai1 & . . . &Aik ⇒ = A0 такого, что {Ai1 & . . . &Aik } ⊂{ A1 , . . . , Am }, условная вероятность p(A0 |Ai1 & . . . &Aik ) < p(A0 |A1 & . . . &Am ). Чтобы проверить при помощи обучающего множества, является ли неко7 Рисунок 1 – Пример XML-файла с правилами, выведенными системой «Discovery» 8 P0 = F P0 = T Всего P1 = F n1,1 n1,2 n1,0 P1 = T n2,1 n2,2 n2,0 Всего n0,1 n0,2 n0,0 Таблица 1 – Таблица сопряженности 2 × 2 торое правило вероятностной закономерностью, необходимо проверить выполнимость вероятностных неравенств а), б) и оценить его статистическую значимость. Условная вероятность правила A1 & . . . &Am ⇒ = A0 оценивается на обучаю- щем множестве D следующим образом: p(A0 |A1 & . . . &Am ) = N (A0 &A1 & . . . &Am ) , N (A1 & . . . &Am ) где N (C) — число событий C на исходных данных D. Для проверки статистической значимости правила используется статистический критерий Юла для таблиц сопряженности 2 × 2 [3]. Так, для таблицы 1 критериальный коэффициент Q определяется следующим образом: Q= n1,1 · n2,2 − n1,2 · n2,1 . n1,1 · n2,2 + n1,2 · n2,1 Целесообразность применения критерия Юла для рассматриваемой задачи обусловлена тем, что при больших значениях n0,0 (а именно такие массивы данных рассматриваются при финансовом прогнозировании) критерий Фишера выполнен для любого правила и не может служить фактором отбора правил. Для проверки закономерности нужна только положительная корреляция, т.е. Q > 0. Если Q < 0, то проверка закончена и результат проверки критерия отрицательный. Для определения доверительных границ используется дисперсия D нормального распределения, посчитанная по критерию Q: ! " 1 1 1 1 1 + + + D2 (Q) = (1 − Q2 )2 4 n1,1 n1,2 n2,1 n2,2 9 P = P rob(|Q − V | > λD(Q)) = 2(1 − Φ(λ)), где Φ — нормальное распределение, а λ вычисляется по D(Q) и по заданной вероятности P . Для требуемой вероятности P = 0.05 значение λ равно 1.96. Поэтому, √ Q = 0.43 ± 1.96 0.065, что дает доверительный интервал (−0.07; 0.93). Поскольку нас интересуют положительные значения критерия Q, означающие положительную корреляцию, то находим нижнюю доверительную границу интервала Q0.05 , с фиксированной доверительной вероятностью P = 0.05. Эта граница будет равна: # Q0.05 = Q − 1.96 D2 (Q). Пользователем задается нижняя граница α > 0 так, что отбираются толь- ко те закономерности, для которых Q0.05 > α. Если правило удовлетворяет этому критерию с некоторым доверительным уровнем α, а также удовлетворяет условиям а) и б), то оно будет являться вероятностной закономерностью. Суть самого алгоритма заключается в последовательном наращивании условной части правил с проверкой выполнимости условий вероятностной закономерности. Сокращение перебора осуществляется за счет того, что начиная с момента, когда длина условной части правил достигает некоторой заранее заданной величины d, алгоритм начинает последовательно наращивать условные части не всех правил, а только тех из них, которые являются вероятностными закономерностями. 4.2 Формирование прогноза и принятие решения Основная функция торговой системы, сформированной на основании правил, полученных в ходе процесса обучения, состоит в принятии решения об осуществлении новой сделки в каждый момент времени. Можно говорить, что в данном случае задача принятия решения является задачей выбора одного варианта исхода из заранее известного набора исходов. 10 Под прогнозом будем понимать высказывание о варианте исхода с некоторой оценкой его точности, которую мы будем называть оценкой точности прогноза. В качестве оценки точности прогноза можно использовать как наиболее простую оценку — оценку его вероятности — так и другие способы оценки точности прогноза, больше соответствующие специфике задачи. Например, величину, описывающую прибыльность. Под принятием решения на основе прогноза будем понимать выбор одного варианта исхода на основании оценок точности прогноза всех известных вариантов исхода. Таким образом, для каждого элемента множества вариантов исхода {o1 , . . . , on }, где каждый вариант исхода oi представим некоторым целевым предикатом T Pi , существует P Ri — множество правил, предсказывающих один и тот же целевой предикат (вариант исхода). Это множество правил называется предиктором [2]. Под оценкой точности прогноза предиктора P Ri будем понимать величину pr(i) ∈ [0, 1], где pr — отображение, которое ставит в соответствие множеству прогнозов отдельных правил значение из интервала [0, 1], т.е. pr(i) : {prR : R ∈ P Ri } → [0, 1], где prR — прогноз правила R, prR = p(R). Для осуществления принятия решения необходимо определить решающее правило DecRule(j), которое должно на основе множества прогнозов отдельных предикторов выбирать конкретный вариант исхода из множества возможных исходов, т.е. DecRule(j) : {prj (i)} →{ o1 , . . . , on }, где prj (i) — оценка точности прогноза i-го предиктора для момента времени с номером j. В качестве варианта исхода для j-го момента времени выбирается исход, соответствующий предиктору, показатель согласованности которого строго больше заданного порога δ. Значение δ будем называть порогом согласованности. В случае, если не существует прогноза, показатель согласованности которого выше указанного порога, то решение о выборе варианта исхода не принимается. Величина порога δ зависит от специфики решаемой задачи и должна устанавливаться исследователем. 11 5 Система вывода вероятностных закономерностей Для реализации системы «Discovery» обнаружения вероятностных закономерностей был выбран кросс-платформенный язык Java, который позволяет запускать процесс обучения в любой операционной системе. А поскольку поиск вероятностных закономерностей — ресурсоемкий и затратный по времени процесс, это преимущество особенно актуально, т.к. позволяет обучать систему на высокопроизводительных системах без неудобств с точки зрения конечного пользователя. Программа вывода вероятностных закономерностей выполнена с использованием объектно-ориентированной парадигмы программирования. Набор классов (см. рис. 2), из которых состоит программа, максимально приближен к абстракному представлению алгоритма, рассмотренного в разделе «Описание алгоритма поиска вероятностных закономерностей». Для конструирования исходных предикатов и литералов применяются классы Variable, Term, Predicate и Literal, отвечающие соответствующим им сущностям из описания алгоритма. Переменная может иметь постоянное числовое значение, а может быть представлена целочисленным отступом от текущего объекта и наименованием рассматриваемого свойства во временном ряду. Оба этих типа переменных могут быть представлены классом Variable. Терм использует произвольное количество переменных и позволяет производить над ними операции сложения, вычитания, умножения и деления. Всевозможные виды термов покрываются одним классом Term. В предикат входят два терма и один из знаков сравнения: меньше, меньше или равно, равно, больше или равно, больше. Любой из них представим с помощью класса Predicate. Литерал — абстракция над предикатом, позволяющая отразить отрицание. По этой причине в состав правил входят именно литералы (не предикаты), а значит должны быть и литералы, не производящие операцию отрицания над 12 Рисунок 2 – Диаграмма классов системы вывода вероятностных закономерностей 13 входящими в них предикатами. Класс Literal удовлетворяет этим потребностям. Результат работы алгоритма представляется списком объектов типа Rule, которые и представляют собой вероятностные закономерности с конъюнкцией литералов и целевым предикатом. Также в каждом объекте типа Rule содержатся его условная вероятность и значение статистического критерия. Основным классом программы, в рамках которого реализован и сам алгоритм вывода вероятностных закономерностей, и подсчет статистического критерия, является класс DataTable. В классе DataTable осуществляется загрузка исходных данных временных рядов из таблиц, представленных в виде CSV-файлов, а также с его помощью на загруженных данных можно рассчитать значение условной вероятности для любого, как выведенного самой системой, так и сконструированного вручную, правила. Работа с программой осуществляется в консольном режиме: на вход подаются параметры алгоритма (глубина базового перебора и доверительный уровень статистического критерия) и массив исходных данных в виде CSV-файла. Программа сообщает пользователю о ходе работы в текстовом виде и по окончании выводит результат —множество вероятностных закономерностей — в текстовом, удобном для человеческого глаза, формате, а также в форматах XML и JSON для последующего использования в стратегии системы Wealth-Lab и системе визуализации правил соответственно. 6 Система визуализации правил Количество правил, выводимых системой «Discovery», может измеряться сотнями. Правила представляются в виде выражений на языке логики первого порядка, отличающиегося недвусмысленностью, но часто являющегося в то же время неочевидным для эксперта в предметной области. Кроме того, правила сложны в восприятии и анализе даже после их интерпретации, т.к. рассматриваются вне контекста тех данных, с помощью которых они были получены на этапе семантического вероятностного вывода. 14 В этих условиях актуальной оказывается задача визуализации правил на тех же самых данных, с помощью которых они были получены. Система «Discovery» может использовать различные данные по различным инструментам, и даже в случае обучения только на одном инструменте изменение параметров алгоритма приводит к изменению множества выводимых правил. Кроме того, эксперта интересует не только вид правил, но и детали: в какой день это правило сработало, какова была цена в данный момент, и т.д. Принимая во внимание эти факторы, а также то, что количество данных, на которых обучается система «Discovery», достаточно велико, закономерной является реализация не статической (графические файлы), а динамической программной визуализации. Визуализация данных является актуальной и активно развивающейся областью IT, поэтому существует большое количество различных библиотек и компонентов для самых разных технологий разработки ПО. Сильные стороны визуализации — демонстративность и очевидность. Следовательно, при разработке решения следовало максимизировать эти факторы, в частности путем обеспечения кросс-платформенности. В задаче визуализации правил системы «Discovery» таким кросс-платформенным решением выступила визуализация в виде веб-страницы с использованием языка разметки HTML как базы, JavaScript как динамической составляющей и JavaScript-библиотеки Flot как средства представления данных и правил на графике. Модуль обучения системы «Discovery» специально дополнен функцией сохранения правил в JSON-файлах (объектная нотация языка JavaScript) для наиболее простого и очевидного экспорта правил в систему визуализации. Форматы JSON-файлов с правилами и с данными приведены на рис. 5 и рис. 6. Таким образом, данные тоже представлены в специальном, близком для системы визуализации, формате. В результате существующая система визуализации правил на данных позволяет: 15 Рисунок 3 – Пример демонстрации точек, в которых сработало правило, с помощью разработанной системы визуализации Рисунок 4 – Пример демонстрации сработавшего правила на торговых данных с помощью разработанной системы визуализации 16 Рисунок 5 – Пример JSON-файла с торговыми данными Рисунок 6 – Пример JSON-файла с правилами, выведенными системой «Discovery» 17 — изучать все множество правил в обозримом и понятном виде, — для каждого правила просматривать даты, в которые оно сработало, на графике, содержащем все данные, на которых проходило обучение системы (см. рис. 3), — для любой точки, в которой сработало правило, ознакомиться с его видом в качестве ломаной, соединяющей значения, используемые в правиле, — для любой точки, участвующей в формулировке правила, посмотреть использованное значение (см. рис. 4). 7 Заключение В процессе работы удалось полностью решить поставленные задачи. Первая проблема — создание средства для анализа и отбора вероятностных закономерностей [1], получаемых в результате работы системы «Discovery», — решена путем интеграции системы «Discovery» в систему разработки и поддержки трейдинговых стратегий Wealth-Lab. Разработана стратегия для Wealth-Lab на языке C#, с помощью которой можно изучать эффективность отдельных закономерностей, дополнять их показателями финансового и фундаментального анализа, тестировать и применять на практике сконструированную торговую систему. Поскольку система Wealth-Lab, несмотря на все ее преимущества, не позволяет проводить предварительное обучение, модуль обучения реализован отдельно. Для обеспечения максимальной универсальности и независимости процесса обучения, он реализован на языке программирования Java. Таким образом, процесс обучения стало возможно проводить на любых платформах, в том числе на высокопроизводительных серверах, находящихся, как правило, под управлением операционной системы семейства UNIX, а не Windows, исключительно в рамках которого работает Wealth-Lab. Вторая проблема — реализация возможности ручного разбора вероятностных закономерностей и ознакомления с ними на данных, которые использовались в процессе их создания, — также решена отдельно от Wealth-Lab в силу того, что, 18 во-первых, Wealth-Lab не позволяет в явном виде дополнять его компоненту, отвечающую за графическое представление данных, эта часть программы закрыта для доступа извне, а, во-вторых, эта задача представляет интерес и вне контекста интеграции с системой Wealth-Lab, для предоставления финансовому эксперту возможности ознакомления с правилами, по которым работает торговая система. Такая торговая система может быть объективно оценена экспертом и вызывает у него большее доверие. Кроме того, такую систему с участием эксперта можно точечно доводить до совершенства с учетом экспертного мнения. С учетом всех начальных функциональных требований, создана система визуализации правил на данных с помощью языка разметки HTML, языка программирования JavaScript и графической библиотеки Flot для него. Таким образом, эксперт имеет возможность, не вникая в технические особенности реализации системы «Discovery», загрузить в систему визуализации данные, на которых проводилось обучение, а также выведенные закономерности, в формате JSON, и в результате получает возможность изучать визуальное представление данных и правил. Созданные в процессе работы средства уже могут быть использованы экспертами для формирования торговых стратегий, оперирующих на фондовом рынке. Однако, у готовых решений есть возможности для дальнейшего развития. Так, в формате стратегии для системы Wealth-Lab, на базе интегрированной в нее системы «Discovery» и с участием финансовых экспертов, представляется актуальным и закономерным создание семейства торговых систем, регулируемых простыми и доступными настройками и автоматизирующих базовые функции фильтрации правил системы «Discovery». Для системы визуализации правил на данных представляется возможным рассмотреть задачу оптимизации пользовательского интерфейса. В процессе использования системы экспертами предположительно возникнет ряд ранее не выявленных требований, учет которых может потребовать частичного изменения пользовательского интерфейса для упрощения и увеличения эффективности работы. 19 Кроме того, для системы визуализации можно таже реализовать один из пригодных для использования экспертами способов конфигурирования пользовательских интерфейсов. Поскольку от задачи к задаче требования экспертов могут изменяться, закономерно было бы предоставить им возможность самостоятельно подбирать параметры работы с помощью доступного и понятного средства. 20 Список литературы 1. Витяев, Е.Е. Извлечение знаний из данных. Компьютерное познание. Модели когнитивных процессов: Монография / НГУ. — Новосибирск, 2006. — 293 с. 2. Демин, А.В. Реализация универсальной системы извлечения знаний «Discovery» и ее применение в задачах финансового прогнозирования // Вычислительные системы. Вып. 175. / Витяев Е.Е., Демин А.В. — Новосибирск, 2008. — C. 3-47 3. Кендал М., Стюарт А. Статистические выводы и связи / М.: Наука, 1973 — 899 с. 4. Kovalerchuk B., Vityaev E. Data Mining in Finance: Advances in Relational and Hybrid Methods — Kluwer Acad. Pub., 2000 21