В связи с хайпом вокруг искуственных нейронных сетей стало интересно: насколько реально обучить сеть или дерево или иную технологию машинного обучения для восстановления вида неизвестной функции по следующим значениям обучающей выборки:
Сеть или дерево должна вычислить значение этой функции для аргумента x==97853
Философский подтекст состоит в том, что человек в состоянии определить вид этой функции совершенно достоверно и получить нулевую ошибку на валидационной выборке любого размера и сложности.
Если технологии ML не могут дать адекватного ответа на этот вопрос, то могут ли они в принципе быть полезны в торговле?
UPDATE 1: За прошедшие несколько часов 2 человека однозначно продемонстрировали способность восстановить вид искомой функции. Что подтверждает простоту озвученной задачки.
Наконец дошли руки сделать работающий прототип на нейронных сетях — сразу же получился результат близкий к текущей используемой модели на основе градиентного бустинга. Учитывая, что в нейронные сети подавалась только часть информации по сравнению с той, которая используется для построения признаков для градиентного бустинга, и пара простых архитектур без всякой оптимизации, то есть все шансы в перспективе обойти градиентный бустинг. Из минусов — сетки обучаются в разы медленнее бустинга, но для моей инвестиционной стратегии это не принципиально.
Сходил недавно на семинар по эволюционному поиску нейросетевых архитектур — очень проникся темой. Пока останусь на градиентном бустинге, но буду двигаться в сторону сетей и эволюционного поиска их архитектур. В какой-то момент столкну бустинг и сети в эволюционном процессе, а там посмотрим, кто победит.
В последние время причесал некоторые блоки своей программки по управлению портфелем. Из последнего добавил в качестве фичи оборот и получил известную зависимость, что малоликвидные бумаги в среднем имеют большую доходность (по горизонтали натуральный логарифм дневного оборота, по вертикали ожидаемая доходность).
По большому счету дальше можно лишь потихоньку расширять перечень анализируемых бумаг и добавлять новые признаки, объясняющие доходность, но придумывать в рукопашную новые фичи не хочется, поэтом попробую переписать все на нейронных сетях и сырых котировках без всякой обработки.
В основном раньше имел дело с TF/Keras, но по ощущениям в последнее время подавляющая часть статей по сетям сопровождается кодом на PyTorch, поэтому решил изучить его и использовать в своей программе. В качестве обучения собираюсь принять участие в соревновании Кто поставит лайк без использования градиентного бустинга только с помощью PyTorch. Ну о потом приступить уже к использованию сеточек для прогнозирования доходности.
Приветствую вас, любители трейдинга!
Видел на смартлабе посты про Пайтон (Python), читать их было очень интересно, в том числе и про то, как НС торгует на бирже. В настоящее время Пайтон (https://www.python.org/) занимает 3 строчку в рейтинге по языкам программирования (https://www.tiobe.com/tiobe-index//). Сам изучал в детстве бейсик (Basic), потом паскаль (Pascal) и далее посмотрел множество языков программирования, вплоть до ассемблера. Самый тяжелый С++)), а все потому, что у него код пишется сокращенными символами, например «начало» и «конец» программы обозначались фигурными скобками «{ …здесь код… }», а у паскаля «begin» и «end». Согласитесь, проще запомнить слова, чем множество лишних для нас символов, которые хранятся у нас в головном мозге, нейронных клетках. Программировал из любопытства.
Я хочу поделиться с вами, про Нейронную сеть (НС), что меня заставляет двигаться в этом направлении вперед. Простую НС теперь может создать любой желающий, даже ребенок с 6 лет сможет понять суть работы НС и попробовать написать программу. Программировать можно через веб-сайт, например Гугол (Google) сделал потрясающую колабораторию (так он ее называет) для программирования на Пайтон (https://colab.research.google.com/).
Нейронные сети активно и успешно используются во всех сферах, в том числе для прогнозирования.
Вполне логично было бы использовать её для прогнозирования курса акций, валют и пр.
Если принять за аксиому, что поведение в прошлом определяет поведение в будущем, то нет ничего проще — обучаем нейронную сеть на всех исторических данных и на выходе всегда знаем, куда пойдёт цена — вверх или вниз.
На практике обученная нейронная сеть даёт результат не выше 50-60%. Т.е. по сути пальцем в небо.
Найдя некоторый паттерн и зная реакцию на подобные патерны в прошлом, иногда цена может отреагировать также как в прошлом, а иногда — совсем иначе.
Ранее я писал пост «почему не работает технический анализ»
Нейронные сети также можно отнести к методам технического анализа, т.к они тоже пытаются выявить закономерности в развитие ряда, обучаясь на его исторических данных.
Всем привет.
Наша команда “Robot Spring” состоит из 4 человек с абсолютно разными компетенциями и опытом работы, каждый из нас будет рассказывать о том, чем он занимается в рамках нашего проекта.
Head, 3 года работал инженером в лаборатории, в текущий момент работает в финансовой (IB) сфере.
Собрал команду и замотивировал на разработку алгоритмов.
Расскажет о методологии анализа алгоритмов. [Structure]
Mathematician, 4 года опыта работы с алгоритмами обработки изображений.
Расскажет про нейронную сеть, которую он пишет. [AI]
Developer, 6 лет опыта разработки ПО (включая софт для банков), в том числе на руководящих позициях.
Расскажет о том, как устроена наша система с точки зрения IT. [IT]
Financier, 3 года опыта работы с деривативами в финансовой сфере.
Расскажет, как он придумывает новые алгоритмы. [Trading]