Марат

Читают

User-icon
39

Записи

39

Сантименты на американском рынке. Продолжение.

Делюсь результатами. Напомню что я создал базу американских фишек входящих в SP500, выкачал для них отчеты 10-К с 2010 года, из которых достал 7 пункт «managements discussion and analysis of financial condition and results of operation». По идее должен был получить около 5000 текстов, но в парсинге 7 пункта и заключалась самая большая заковыка. В общем на финишную прямую вырулилось только около 2000 отчетов. 
Для каждого отчета я получил оценку сантиментов, по 10 эмоциям и по каждой из них, разбил свои 2000 отчетов на три ровных группы — с максимальными значениями, минимальными и средними. И для каждой из этой группы глянул на сколько изменилась цена акции через 250 торговых дней, после опубликования отчета. 
Вот корреляционна матрица между эмоциями (+ длина отчета).
Сантименты на американском рынке. Продолжение.


Как видим между позитивными и негативными эмоциями корреляция +0,4. Что может показаться странным, если предположить что они противостоят друг другу. Однако, тут видимо другая логика — есть отчеты где составившие их буквально сыпят эмоциями, и отчеты выдержанные в более строгом стиле. Даже предположу как это получается. Вот допустим много негативного в отчете, что обьекетивно — компания не на высоте, или рыночная ситуация аховая, понятно что по законам маркетинга такое никто не купит, поэтому в лучшем стиле манипулирования, негатив обильно разбавляется позитивными словечками и на выходе потенциальный инвестор получает некую сбалансированную баланду.  Вот вам и положительная корреляция долей позитивных и негативных слов в тексте. 

( Читать дальше )

Как начать изучать сантименты на фондовой бирже

Так вот о сантиментах на фондовой бирже. 
Вот вам лайхак как быстро что то сделать (про качество мы ничего не говорим, просто как вообще начать эту тему). Ну раз так, то начнем с англоязычного сегмента, ибо там информации и готовых скриптов завались. Да, как известно в любой теме можно потонуть, если копать очень глубоко. Но мы же трейдеры нас в общем интересует не программирование, а извлечение профита с помощью программирования. Так что к черту NLP и давайте не будем морочить голову слишком погружаясь в теорию.
Какие пункты я вижу:
1.
Первая задача это достать данные для анализа. Сначала я подумал о твитах. Популярная тема, наверняка много готовых кодов по выкачке, поисковики наверно есть неплохие,  готовых баз на все случаи жизни итп итд. И главное — мы ведь используем железного болвана там где человеческий мозг может утонуть в потоке информации, ну так вот ам и твиттер. Но начав копать, очень скоро обнаружилось что твиттер это такая большая пребольшая куча… эээ… мусора, а не какой то источник информации. Кстати забавно, когда я регился на твиттер, то в качестве рекомендуемых твиттеров мне предлагали исключительно твиттеры так скажем оппозиционные, если это можно так назвать. Та же история кстати в ютубе, я все больше и больше чувствую себя в каком то интернет концлагере, где тебе пихают строго определенные каналы, авторов, видение. Ну да ладно. Твиттер помойка,  так откуда качнуть новости? Есть openblender, оттуда можно что то качнуть более качественное, ну там разворотики WallStreet, а вот тут

( Читать дальше )

NLP, сантименты, фондовый рынок.

Решил покопаться в парсинге и сантиментах. То бишь пишем код, который цепляется к какому то сайту, выкачивает оттуда новости, а затем на ее основе делаем сантимент анализ и строим какие то прогнозы. Полистал иностранную литературу (на русском ничего не нашел, если у кого есть ссылки — кидайте), и нашел 2 схемы оценки сантиментов для фондовых рынков. Первое это Natural Language Processing, которые на основе ЛИНГВИСТИЧЕСКОГО анализа оценивают текст — позитивный он, негативный, или нейтральный.  Вторая схема — когда ты читаешь новости и вручную ставишь лейблы — позитивные это новости для фондового (или какой то конкретной бумажки) или негативные. А затем векторизация и уже на новых новостях железный болван ставит лейблы сам. Из прочитанного мною, нигде в заключении вроде не писали о каких то позитивных результатах, но чтобы не стоять на месте и узнать что, то новое, разобрать эту тему все равно будет полезно.
Все что я пишу очень сыро и пишу в том числе чтобы самому структурировать для себя эту новую тему и получить отклик от людей которые этим занимались.

( Читать дальше )

Вот мы и добрались до Америки. Накладываем паттерны там.

Мой переход к программированию и машингленинг (случилось это где то год с небольшим), отчасти был связан с мыслями глянуть, а что там в забугорье творится. Проходить опять тот же путь ручного перелопачивания, что я прошел на отечественном рынке, понятно дело не хотелось. Но то котировок не было, то еще чего то, и вот наконец то дошли ручки до Америки, тем паче робот для автоматического скачивания котирок есть, модели для тестирования есть, осталось только пуско-наладочные работы.
К слову, по поводу выкачки американских внутридневных котирок через Питон не все так просто оказалось, как казалось раньше. Google Finance ограничивает скачивание часовиков 730 днями (а ниже — еще меньше), у Yfinance я вообще внутридневных не нашел. Была большая надежда на AlphaVantage, но и там ограничение на intraday в несколько дней. Еще и данные в каком то месте оказались кривыми, на что я даже написал кляузу им в поддержку, на что мне ответили что так и надо, это все «adjusted close» и закрыли тему. Так что у кого есть какие то секретные места, где все это можно быстро выкачать — делитесь.

( Читать дальше )

Накладываем патерны друг на дружку.


Ну… такое 62 паттерна. Каждый протестить проанализировать, тем более что никакого особого профита они не несут, не очень то и интересно. Решил глянуть что будет если не в отдельности. Например, есть какой то паттерн на дневках, который показал стабильные результаты за последние лет 15. Ну там профиты не то чтобы высокие, но срабатывал паттерн часто и каждый год по 0,1% на сделку, но блин, стабильно, без минусов. А на часовиках такая же скромная система, но тоже стабильная, ровная по годам и фишкам. И на 15 минутках. Вот что если все их обьединить. Курочки по зёрнышку клюют. 
Схема поулчилось такая.
1. 62 паттерна прогнал по 15 минуткам, часовикам и дневкам.
2. Выбрал из них те которые показали профитность на сделку более +0,25 и сработали ну хоть раз 50 (лонг, шорт — не важно).
Получил что то вроде этого:
Накладываем патерны друг на дружку.




3. Для каждого момента времени и фишки посчитал количество сработавших паттернов (0 — ничего не сработало, 1 — один сработал, 2 — два разных паттерна сработало, или одинаковых, но на разных фреймах итд ).



( Читать дальше )

Паттерны на 60 минутках

На 15 минутках вроде была парочка интересных паттернов, но рассудив что на 60 минутках их будет еще больше, пошел тудысь. Вообще, завозился с этими паттернами, хотя казалось используя питон, да еще и при готовой библиотеке — знай только на разны таймфреймах загоняй котировки в цикле и смотри результат. Вот с оценкой результатов и возникли проблемы. Какие критерии взять? В общем все свелось к ручному просмотру результатов применения тех или иных паттернов. Так что в качеств нейросети работал самая что ни на есть нейросеть-человеческий мозг. Стремился я к стабильности по годам и симметрии.
Отобрал я те что получше и решил прикинуть насколько они вообще годятся для реальной торговли. И тут оказалось что они часто пересекаются с теми системами что я уже использую, и если убрать дни когда я и так в рынке, то для оставшихся дней результаты использования паттернов скромны. Так что по второму циклу я запустил тестирование паттернов для периодов когда мои системы были пассивны. И оказалось что если раньше вполне такими рабочими на 60 минутках казались пара десятков, то сейчас речь идет о 5-6, да и их результаты… ну такие. 

( Читать дальше )

Немножко о паттернах, с помощью питона.


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

С 0,06-0,07% на сделку особой каши не сваришь, комиссиии, проскальзывания, спрэды сожрут больше (впрочем я не специалист, может кто на тикерах сидит по другому оценят все это) однако привлекло меня другое — для всех лет и для всех фишек не было ни одного убыточного года, а винрейт 63% для шорта и 57% для лонга.   Такое я люблю. Ну а то что профит не велик, ну так это 15 минутки, далеко ли фишка убежит за 15 то минут? Убрав дублирование (это когда в одно и то же время срабатывают сигналы больше чем по  фишке) получаем по 6000 сделок в год по +0,089%  в лонг и + 0,074% в шорт. В последние годы профитность падала, но если перемножить, все равно выходим на сотни процентов годовых. Осталось только найти план без комиссий и научиться торговать без проскальзывания. И если с ликвидными фишками торговлю без проскальзований еще можно как то представить, то с каким нибудь Аэрофлотом… пупок развяжется.

( Читать дальше )

Мои "значки на танчиках"

Лет 12 назад, когда я впервые ковырял тему нейросетей на фондовой бирже, прочитал как кто то облапошился обучая нейросеть распознавать танчики. Нет, сеть результат показала, но как оказалось на картинке с танчиками был какой то значок, а где танчиков не было, значка не было и нейросеть научилась распознавать не танчики, а наличие отсутствие вот этого значка. Запомнилось мне это наверно, потому что это было единственное, что я тогда понял о нейросетях. 
И вот теперь я поймал свои «значки», когда пытался предсказать динамику, на основе CNN+вейвлетпреобразований. Тут подробней. Нет я не заглядывал в будущее, и не так знак поставил где то. Я не стал нормализовывать цены, ибо считал что для CNN не важно все это, картинки они ведь и в Африке картинки, и вот так выглядит картинка вейвлетпробразования для ВТБ с ее копеечными ценами за акцию и Норникель, с его десятками тысячами рублей за акцию:
Мои "значки на танчиках"

( Читать дальше )

CNN+wavelet = blue stocks forecast

После использования вейвлетов для классификации, я конечно сразу попробовал оценить ценность вейвлет для прогнозирования, но тестирование мягко говоря затянулось. Эпох я прогонял много, 600, а одна эпоха это минута. И оставляя нейросеть на ночь я забывал, то одно, то другое. Затем я стал пробовать разные learning rate, датасеты, архитектуры и обнаружилось что тот самый позитивный первоначальный результат (в виде 55% accuracy на валидации и over +75% на тесте) исчез, сеть не могла зацепить ничего, даже на тесте. В пятницу я решил в последний раз прогнать сеть и уже с 50 эпохи сеть начала уверенно обучаться. Обьяснение тому что на том же наборе данных, одна и та же сеть, то обучается, то необучается, у меня одно — каждый раз нейросеть начинает блуждать по гиперплоскости функции ошибки с разных мест, и при одном наборе весов застревает в зоне локальных минимумов, которые чуть-чуть лучше 50%, не в силах перескочить в область более низких минимумов. 
Данные все те же — голубые, отечественные. Тестирую на недельках, прогноз на недельку вперед. 

( Читать дальше )

CNN+wavelet

Займемся бессмыслицей. Никакого прогнозирования, просто попробуем методами вейвлет преобразований и CNN ответить на вопрос — есть или нет разница в цикличности при росте фишки и падении? Эллиот чертил 3 волны вверх и 2 вниз. Давайте почертим и мы.
Данные я взял недельные, от понедельника до пятницы, но с разбивкой по 15 минуткам, итого ряд в 175 элементов. Судя по прошлым результатам, мизерная длина, и никакой цикличности там нет. Но...«а вдруг?!». Ну а разбивка недельная, в надежде уловить недельную цикличность, все таки понедельник это «день тяжелый», пятница это «тяпницы», четверг это маленькая пятница. В общем каждый день недели уникален и помню какие то корреляции/антикорреляции даже были, вроде пятница и понедельник шли вразрез, а четверг и пятница шли вместе. Впрочем точно не помню.
Каждому ряду в 175 отчетов я присвоил лейбл (1 рост, 0 падение). Ряд прогнал через вейлет преобразование, получив квадратную картинку. Все это добро загнал в CNN и стал ждать чего нейросеть намутит. В теории, после вейвлет преобразования, на полученной картинке, не должно быть никакого намека на то росла фишка или нет. Следы наличия тренда присутствуют, но какого именно не указывается. Хотя это не точно. А вот точно что должны быть следы цикличности, и если при росте и падении цикличность разная то точность классификации должна быть больше 0,5… Хотя это не точно.  Ну нам жалко чтоли, попробовать? Пуская нейросетка крутит колесико. Крутило колесико нейросеть долго....:

CNN+wavelet



( Читать дальше )

теги блога Марат

....все тэги



UPDONW