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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1)
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

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

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

рынках!

0
15 комментариев
Написать комментарий...
Аккаунт удален

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Почистить от чего??

Биржевые данные это не измерение шероховатости в машиностроении или любых других параметров в любой отрасли.

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

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

Но тогда если нейронная сеть работает и с утра и вечером, то как она будет делать это эффективно, если вы ее не научили??

Или я не понял что вы имеете ввиду.

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

"Значит должно быть три автомата для утра, вечера и дня.

Но используя простую житейскую мудрость можно понять, что использование предективных систем в утреннею и вечернюю секцию это крайне неразумная вещь."

???

Я так понимаю, что вы говорите про торговые системы. Лично я не использую, да и глубоко убеждён, что нет никакого смысла использовать системы предиктивной аналитики для дейтрейдинга по ряду причин.

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

Система предиктивной аналитики может только показать вам потенциальный канал, но не дать сигналов к покупке и/или продаже.

Также я хочу заметить, что вы говорите странные вещи. Как минимум в вашей системе я вижу риски. И много рисков.

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

Ваша система тупо при вашем подходе будет лажать и приносить убыток.

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

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

И именно с точки зрения этой самой универсальности я рассуждаю. Более того, я неоднократно говорю о применимости не только к фондовому рынку.

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

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

Предиктивная аналитика это просто пример. Один из многих, на котором не нужно заострять внимание.

Также хочу отметить следующее. Я этого не написал про пример предиктивной системы, но это было и не нужно. Но то, что описывалось в примере это прогноз на срок до 130 рабочих дней.

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

Конкретно в данном случае, позволяет оценить потенциальную доходность инструмента на рассматриваемом промежутке.

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

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

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

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

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

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Я понимаю что вы говорите, но вы не учитываете то, что делается ДО усреднения.

Я еще раз обращаю ваше внимание на следующее.

1. Делается оценка стаститической значимости алгоритма. Это как раз и есть сравнение данных результата алгоритма и реальных данных.

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

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

Вы говорите о конечном результате, но ДО этого нужно много сделать, чтобы результаты работы были адекватны.

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Со всем уважением к вам, всё это расписано в статье. Про анализ статистической значимости по Стьюденту и ANOVA, и про остальное.

Что касается среднего, то я про него написал после всей оценки достоверности. Обратите внимание еще раз. Я всё это написал.

+ Я еще раз говорю. Среднее это примитивный пример, который адекватен в некоторых случаях. Например в системах предиктивной аналитики его применить можно. Но в торговых роботах, которые генерируют логические сигналы, тем более разнородные уже нет.

Ответить
Развернуть ветку
Маркетинговое Айкидо

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

Ответить
Развернуть ветку
12 комментариев
Раскрывать всегда