Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Данная статья будет интересна всем, кто занимается разработкой торговых и инвестиционных алгоритмов, роботов, советников, систем поддержки и принятия решений, а также ЛЮБЫХ подобных сервисов не только в финансовой сфере, но и в любых других областях: бизнес-аналитика, медицина, машиностроение и все остальные прочие отрасли. Данная статья будет полезна всем, кто использует алгоритмы не только на нейронных сетях, но и простой логике или математике.

Суть проблемы

Погружая вас в проблему, я бы хотел начать с примера из моей практики. Много лет я занимался наукой и возглавлял научно-технические лаборатории. И за годы я всегда удивлялся тому что напишу ниже. Когда вы изготавливаете какое-нибудь изделие, вы должны оценить точность изготовления по тем или иным параметрам (соответствие техническим требованиям).

Допустим вы делаете титановый болт для авиации. Банально, просто болт. Вон он нарисован ниже.

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Рис. 1. Титановый болт

Вам нужно померить один из размеров болта. Сделать это можно одним из самых распространённых инструментов, который называется штангенциркуль (рис. 2).

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Рис. 2. Штангенциркуль.

И вот что странно. Даёшь десятку человек один и тот же болт, один и тот же штангенциркуль, то на десяток человек, 15! разных результатов изменений! Вдумайтесь только в это! (К слову говоря, в моей практике десяток бухгалтеров на простой пример из разряда на 5-ку в 5-ом классе также дают 15 разных ответов)

Как такое возможно?? В метрологии есть такая вещь, которая называется ПОГРЕШНОСТЬ ИЗМЕНЕНИЯ.

Приведу ссылку на определение из вики:

«Погрешность измерения — отклонение измеренного значения величины от её истинного (действительного) значения.»

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

Проблематика аналитики на фондовых рынках

Теперь давайте к проблематике аналитики и принятия решений на фондовых рынках. Давайте рассмотрим пример системы предиктивной аналитики. Взгляните ниже.

1)
1)
2)
2)

Рис. 3. Примеры результатов обучения системы предиктивной аналитики на одних и тех же наборах данных. Тикер ASRT, дневной тайм фрейм

Одна и та же нейронная сеть, которая не имеет изменений в её структуре и макропараметрах, обученная на одних и тех же данных даёт разные результаты. Всё это справедливо для ЛЮБЫХ систем аналитики, поддержки принятия решений, торговых роботов не только на фондовых рынках, но и в любой другой сфере. Бизнес-аналитика, контроль технических показателей, маркетинг и прочее.

Ваша нейронная сеть, алгоритм или математическая функция, которую вы адаптируете к решению той или иной задачи является инструментом. И как для любого другого инструмента, его использование не может быть абсолютно точным, и в процессе его использования вы получаете ПОГРЕШНОСТЬ ИЗМЕРЕНИЯ.

Научный подход к решению данной задачи

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

Я сколько хожу по различным научных, ИТ и бизнес мероприятиям, как правило вижу как берется какой-нибудь робот, нейронная сеточка или алгоритм, где-нибудь едет, считывает данные и выдаёт результат на основании ОДНОГО НАБЛЮДЕНИЯ. И это в КОРНЕ НЕВЕРНО.

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

Применительно к нейронным сетям/алгоритмам/математическим функциям в данном случае я имею ввиду НЕ то, что вы взяли одни и те же данные и посчитали одно и то же несколько раз. Я говорю о том, что нужно обучить РАЗНЫЕ алгоритмы.

То есть, вы должны получить N алгоритмов контроля/аналитики/принятия решений для любой вашей системы. Это справедливо как для торговых и инвестиционных алгоритмов на фондовых рынках, так и для совершенно любых отраслей.

То есть, в итоге, ваша система принятия решений должна выглядеть следующим образом (рис. 4).

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Рис. 4. Ансамбль торговых и инвестиционных алгоритмов

Расчёт числа алгоритмов

Сколько нужно алгоритмов в ансамбле??

Для тех, кто не хочет читать, считать и разбираться, я сразу назову цифру. Минимум 3, а лучше 5.

Теперь, что касается расчёта. Есть методики расчёта числа параллельных опытов. Пример вы можете посмотреть здесь: https://studbooks.net/2495883/tovarovedenie/raschet_neobhodimogo_chisla_parallelnyh_opytov

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

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

где tb – квантиль нормального распределения измеряемого параметра при доверительной вероятности b (рекомендуемое значение b = 0,95, при этом tb = 1,96); – дисперсия распределения измеряемого параметра; e – заданная ошибка выборочной средней измеряемого параметра. При этом e = a×`Y, где a – относительная ошибка среднего значения параметра.`Y – среднее значение параметра.

Оценка достоверности результатов алгоритмов ансамбля

Ну хорошо, допустим вы обучили N-ое количество ваших алгоритмов, но как теперь определить какие из них можно включить в ансамбль?? Вы же не думали, что тупо взяли указанное выше число и просто на основании этого числа сгенерируете нужно число алгоритмов??

Теперь вам нужно проверить каждый из алгоритмов на достоверность. Это можно сделать несколькими способами. Первый способ это проверка статистической значимости. Например это можно сделать по t-критерию теста Стьюдента или дисперсионному тесту ANOVA. В принципе вы можете выбрать один любой.

Пример для расчёта можно найти здесь: https://www.machinelearningmastery.ru/parametric-statistical-significance-tests-in-python/

В указанном выше примере вы сравниваете результаты расчёта с данными тренировочной выборки.

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

Получение результатов ансамбля

Теперь, когда вы создали ансамбль ваших торговых и инвестиционных алгоритмов, самое время получить результат.

Всё просто, когда вы у вас N подобных нейронных сетей обученных на одних и тех же данных и имеющих одинаковую структуру, тогда вы можете воспользоваться методикой обработки результатов измерений, пример которой можно посмотреть здесь: https://www.gubkin.ru/faculty/oil_and_gas_development/chairs_and_departments/physics/files/docs/100.pdf

И в итоге, зная среднее значение того, что посчитала ваша нейронная сеть вы можете записать ваше значение в следующем виде:

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Рис. 5. Результаты расчёта

То есть, например, ваше РАСЧЁТНОЕ значение находится в некоторых пределах. Но здесь важный нюанс. В данном случае не учитываются показатели точности нейронной сети. То есть, указанный выше результат нужно еще привести к результатам эффективности самой нейронной сети. И что в итоге у вас получится, что например, с вероятность 78% (не 97% и сколько то там), ваше значение ожидается в каком-то промежутке от и до.

Но что делать, если у вас разнородные алгоритмы, работающие на различной логике?? (рис. 6).

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Рис. 6. Пример ансамбля с разнородными алгоритмами

Например, на рисунке 6 показаны 3 разнородных алгоритма А, Б и В с двумя алгоритмами каждого типа.

Вы не можете взять среднее значение результатов расчёта ансамбля, так как их суть и результаты расчёта могут быть совершенно разными.

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

Ансамбли торговых и инвестиционных алгоритмов на базе нейронных сетей

Рис. 7. Ансамбль с системой управления/принятия решений

Про управление ансамблем торговых алгоритмов с помощью нейронных сетей, я писал здесь.

Заключение

В завершение я бы хотел с вами поделиться двумя мнениями:

1. Нейронные сети, если «нормально» подходить к процессу их использования невероятно ресурсоёмкие во всех смыслах слова инструменты. Причём здесь ресурсоёмкость во всех смыслах этого слова. И не это не только железо и деньги, но и квалификация людей.

2. И из первого вытекает второе. DataScience это не просто математика или программирование. Многие современные курсы дают примитивное и кардинально неверное представление о DatScience сводя это к программированию на питоне, нейронным сетям или даже математике. В первую очередь, любая область где вы применяете подобные решения это наука. Это понимание. Причём понимание много чего. Математика слаба и ничтожна без понимания. Программист слаб без понимания научных основ. Если вы хотите эффективно решать вопросы в бизнесе, то в первую очередь вам нужно БИЗНЕСМЕН, который ОБЛАДАЕТ СООТВЕТСТВУЮЩИМ ПОНИМАНИЕМ КАК ОБЛАСТИ, ТАК И ИНСТРУМЕНТОВ. Это не математик или питонист. Если вы двигаетесь примитивном подходе, то вы всегда будете неконкурентоспособны в глобальном масштабе.

Если кому то интересна тематика применения нейронных сетей к фондовому рынку во всём многообразии, можете почитать другие мои статьи на vc.ru: статья, статья, статья, статья, статья, статья, статья, статья.

Если у кого то будет желание пообщаться, можно писать мне здесь или по контактам, указанным ниже.

Контакты:

Мой стартап: finprophet.com

Всех благ, побед и

успехов на фондовых

рынках!

33
15 комментариев

Комментарий недоступен

Ответить

Комментарий недоступен

Ответить

То, что написано, придумано не мной, а другими учёными и проверено годами исследований во всех областях.

Дело совсем не в применении касательно системы предиктивной аналитики. Система предиктивной аналитики в статье это пример погрешности системы измерения/функции/алгоритма.

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

В данном случае, инструмент для измерения это алгоритм/математическая функция/нейронная сеть. И когда вы исследуете объект (фондовый рынок) и принимаете на вход данные, то вы должны сделать это несколько раз.

И когда вы несколько раз поменяли, то вы не сразу берете среднее значение для простого ансамбля. Сначала вы должны оценить достоверность результатов. Об этом тоже написано в статье.

Ответить

Какая доходность вашей системы по портфелю за этот год ?

Ответить