Блог им. aimaster

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

    • 17 сентября 2018, 10:48
    • |
    • aimaster
  • Еще
Всем привет!

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

Это несколько странно, с учетом того, что в других областях применение машинного обучения развивается семимильными шагами. Мне кажется, трейдинг — как раз та область, где эти технологии должны быть (и будут) востребованы.

Основное преимущество машинного обучения перед классическим алготрейдингом — это возможность выявлять нетривиальные и скрытые зависимости. При этом вам не нужно самим программировать множество сложных условий входа в сделку. Возможно вам даже вообще не понадобится программировать.

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

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

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

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

Какими могут быть эти факторы, кроме цены самого инструмента? Я бы выделил следующие группы:

1. Какие то общие характеристики финансового инструмента и параметры торговли, например: день недели, объем торгов, открытый интерес и т.д.

2. Факторы, вытекающие из технического анализа графика цены:
  • изменение цены в предыдущие дни;
  • гепы, пробои уровней;
  • значения каких то индикаторов (например, выше или ниже moving average).
3. Новости, политические события, корпоративные отчеты и макроэкономические события (повышение ставки и т.д.)

4. Изменения цены других финансовых инструментов и их влияние (нефть на рубль и т.д.)

Я сделал простенький сервис - ai-finmarkets.ru, который позволит попробовать использовать нейронную сеть в своей торговле, при этом не обладая какими-либо знаниями в области программирования или нейросетей. 
Вам нужно подготовить excel файл с историческим набором различных факторов и загрузить его в сервис. Сервис подаст его на вход нейросети, она обучится на основе этого файла и выдаст вам прогнозное значение на следующий период и оценку точности прогноза.

Там же можно найти более подробное описание формата файла и посмотреть пример использования сервиса для акций Apple.

В примере используются следующие факторы:

Change — процент изменения цены за прошедший квартал;
Gap — размер гэпа на следующий день после выхода отчета;
Day movement — изменение цены на следующий день после выхода отчета (с открытия сессии до момента входа в сделку);
SP500 change — изменение индекса S&P500 за прошедший квартал;
Earning delta — изменение прибыли по сравнению с прошлым кварталом согласно вышедшему отчету.

На выходе нейросеть дала мне 66% точных предсказаний по направлению сделки. Обольщаться здесь, конечно, не стоит, но как пример и основу для дальнейших исследований использовать можно. Если тема интересна, пишите в комментариях о своем опыте использования нейросетей для анализа и выявления закономерностей.
★5
19 комментариев
эх ктоб еще на пальцах объяснил что такое нейронная сеть... 

вернее что это такое понятно, а вот написать свою чот никак… начинаю разбираться и как баран на новые ворота смотрю на кучу формул… ну не математик я а там все объяснение в формулах идет (( 
avatar
Тихая Гавань, большинство и не пытается разобраться, а тупо юзает чужое ПО.
avatar
SergeyJu, ну имхо чужое ПО ничего не даст.. 

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

avatar
Тихая Гавань, зачем писать свою? сейчас есть множество качественных, хорошо описанных библиотек
avatar
1. Мы зарабатываем не на направлении, а на сделке. Критерий настройки неверный.
2. Очень многие пытались настроить сетку как Вы, в лоб. Что-то не видать успехов В чем Ваши преимущества? 
avatar
SergeyJu, 
1. Пока сервис считает %win/loss, учитывая только выбор направления (угадали или нет). Возможно потом добавиться еще что то, учет drowdown и прочих вещей.
2. Акцент нужно делать на факторах/условиях, а не настройках нейросети. Если подавать факторы, в которых нет закономерности — никакая сеть не поможет. Это всего лишь инструмент, который позволяет искать закономерности и использовать их, при большом количестве факторов.
avatar
aimaster, Метод обучения сети ???
avatar
aimaster, Сколько гигабайт данных  я могу загрузить в  ваш сервис?
avatar
aimaster, Если сеть не делает сделок , а пытается  просто угадать знак, то как ее вообще оценивать?
avatar
Алексей Никитин, никак. Типичная ошибка новичка.
avatar
Алексей Никитин, если говорить о сервисе на ai-finmarkets.ru, то эту сеть никак не надо пока оценивать. В ней нет ничего особенного (обычная ltsm). Пока все, что предлагает сервис — это оценить не сеть, а именно Ваши данные. Вы загружаете файл с данными, смотрите процент угадывания направлений. Если он высокий — это повод задуматься о том, что в данных есть закономерность и стоит предпринимать какие то действия по дальнейшим исследованиям. Возможно в будущем в сервис добавятся дополнительные функции. Вы какие хотели бы видеть?
avatar
aimaster, значение имеет все, и архитектура сети, и качество входных данных, и критерии настройки. В общем, нужна упорная творческая работа. Потому и нет массового внедрения сетей в трейдинг, что на тяп-ляп не выходит цветочек аленький, а серьезно самостоятельно работать умеют далеко не все. 
avatar
SergeyJu, согласен с Вами, что все должно учитываться. Но, как мне кажется, из «и архитектура сети, и качество входных данных, и критерии настройки» трейдер должен заниматься вот этим «качество входных данных», остальное должно быть в виде библиотек, инфраструктурных сервисов и программных решений. 
avatar
Нейронная сеть,  очень очень простая штука. Если рассматривать крайне  упрощенную модель, то  считайте что 1  нейрон  это  sma пусть гибкая  но все же sma.  в  итоге  получаем дикую комбинацию разных sma.

Но главное это обучить сеть. Т.Е  подобрать адскую кучу весов  внутри каждой sma так  чтобы  в итоге получился нужный результат.

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

Даже спец  по сетям не факт что сумеет правильно использовать сети в  рынке.   
avatar
 Еще один  момент,  любая  даже очень простая  сеть  способна к запоминанию данных,  или  не самих данных но критичных точек  в  этих данных. Именно запоминание, и как следствие  очевидный овер фитинг.
avatar
когда трейдер хорошо разбирается в рынках нейросети ему без надобности
avatar
Интересная задумка. Но требует очень мощной реализации. Теоретически нейронная сеть должна включать все патерны, индикаторы, историю за длительный промежуток времени и на разных инструментах и на мощном сервере все это постоянно пытаться комбинировать в разных стратегиях (тоже нужны шаблоны основных стратегий) на выходе система должна выплевывать готовые торговые стратегии объединяя множество индикаторов и стратегий наиболее эффективно. Это всю жизнь можно разрабатывать но тема конечно интересная. Я сейчас все это пытаюсь делать руками. Такую хрень в одного не создать. Да и есть ли смысл заморачиваться? Машина без человека все равно пока тупа — робот копать может но куда не знает.
avatar

теги блога aimaster

....все тэги



UPDONW
Новый дизайн