Добрый день всем!
Читал и слышал, что deep learning сейчас рулит во всех областях, животных на фотографиях распознаёт лучше человека, детали на картинках достраивает, где-то даже писали, что для роликов продолжение придумывает. Вроде как, и при трейдинге тоже «достаточно легко» даёт хорошие результаты. Но мои личные попытки дали неважные результаты. В лучшем случае сеть худо-бедно подстраивалась под обучающие данные, но на тестовых данных результаты были плохие.
Я подавал сети нормализованные графики курса акций (тёмно-синее на графиках слева http://prntscr.com/hd8tl6), а на выходе ожидал от неё тот же график (синим пунктиром) с дополнением и ещё дополнительно два числа – на сколько % дешевле имеет смысл попытаться купить чтобы потом подороже продать и наоборот, % дороже продать чтобы потом откупить. На картинке слева 5 графиков из обучающего множества, а справа сверху – реальные и предсказанные результаты для 50 графиков из обуч. мн.
В лучшем случае получалось среднеквадратичное отклонение для этих двух чисел порядка 0.003, т.е. можно сказать, что для чисел от 0 до 0.4 (справа сверху) в среднем ошибка порядка 0.055 (корень из 0.003) – уже многовато. А на тестовых множествах тут же получается среднеквадратичное 0.03, т.е. среднее 0.15.
Сети пробовал разного вида, вот примерно такого размера и примерно на порядок больше-меньше: 5 групп слоёв, residual (next = prev + conv(prev)), с bottleneck’ами, в каждой группе по 3 свёртки, 100 слоёв в первых свёртках, 50 в bottleneck’ах, в каждом следующем слое в 2 раза меньше значений и в 2 раза больше слоёв. Обучающие наборы брал 100-2000 наборов (графиков), количество итераций – 5000-50000 по 50 наборов в каждой. Считал на Python’e c TensorFlow, на процессоре.
Нужны советы, куда дальше двигаться и где есть (или нет) перспективы. А лучше человек, который увлекается подобными вещами, чтобы объединить усилия. Тут это кому-нибудь интересно? Сам вообще программист, 37 лет, стаж – 15, в основном – на С++, на работе занимался другими, более приземлёнными вещами.
MM>Нужны советы, куда дальше двигаться и где есть (или нет) перспективы.
Там нужна очень особенная сеть, не знаю даже есть ли такие в составе широко распространённых пакетов — дело в том что графики колебаний валют являются "вложенными". Грубо говоря у тебя может развивается один тренд на часовике и в пределах ограничений этого тренда по своим правилам гуляет, иногда даже в противоположную сторону, пятиминутка. Когда ты пытаешься это смоделировать одной единственной сетью она усредняет правила пятиминутки и собственно всё.
MM>А лучше человек, который увлекается подобными вещами, чтобы объединить усилия. Тут это кому-нибудь интересно? Сам вообще программист, 37 лет, стаж – 15, в основном – на С++, на работе занимался другими, более приземлёнными вещами.
Работа с этим была связана, так что вопросом по инерции интересуюсь. Но именно deep learning как-то себя не показал. Очень сильно на ситуацию влияет то что на рынке много участников действующих строго по тех-анализу, и если фундаментальные факторы слабы, то ТА-шники формируют настоящий самосбывающийся прогноз — когда сотня человек с большими котлетами видят пробой какой-нибудь фигуры вверх, они все дружно наваливаются на покупку, и цена летит вверх пулей. При этом если ты посмотришь на то что ТА-шники рисуют — линии поддержки, сопротивления, границы каналов и треугольников с клиньями — опорные элементы могут находиться на произвольных расстояниях в прошлом от текущего момента. А у нейросетей мало того что с памятью вообще проблема, так с памятью далеко в прошлое полный капец.
Объединять усилия в этой области достаточно сложно — обычно все всем конкуренты, и готовы делиться наработками только когда с тем что есть оказываются на грани вылета с рынка
Здравствуйте, MichailM, Вы писали:
MM>Сети пробовал разного вида, вот примерно такого размера и примерно на порядок больше-меньше: 5 групп слоёв, residual (next = prev + conv(prev)), с bottleneck’ами, в каждой группе по 3 свёртки, 100 слоёв в первых свёртках, 50 в bottleneck’ах, в каждом следующем слое в 2 раза меньше значений и в 2 раза больше слоёв. Обучающие наборы брал 100-2000 наборов (графиков), количество итераций – 5000-50000 по 50 наборов в каждой.
Не смотрел в сторону LSTM? Они сейчас если и не лучшие, то очень неплохие для временных рядов. Использовали у себя для других целей — работают. Есть и более продвинутые варианты сетей с памятью, но, думаю, что начать лучше именно с LSTM.
_>Там нужна очень особенная сеть, не знаю даже есть ли такие в составе широко распространённых пакетов — дело в том что графики колебаний валют являются "вложенными". Грубо говоря у тебя может развивается один тренд на часовике и в пределах ограничений этого тренда по своим правилам гуляет, иногда даже в противоположную сторону, пятиминутка. Когда ты пытаешься это смоделировать одной единственной сетью она усредняет правила пятиминутки и собственно всё.
Ну да, возможно. А может быть и могла бы как-нибудь подстроиться, какие-нибудь низко- и высокочастотные фильтры бы сгенерировались...
_>Объединять усилия в этой области достаточно сложно — обычно все всем конкуренты, и готовы делиться наработками только когда с тем что есть оказываются на грани вылета с рынка
Если порознь вероятность облажаться у каждого 90% или там 99%, то вдвоём, при совмещении скиллов, должно быть существенно меньше, так что объединяться тем, кто не в передовой конторе данного профиля, по-моему, выгодно.
За подсказки спасибо! Если хотите, можем попробовать что-нибудь вместе забацать, что-нибудь поближе к тому, что я описал выше.
Здравствуйте, Nuzhny, Вы писали:
N>Не смотрел в сторону LSTM? Они сейчас если и не лучшие, то очень неплохие для временных рядов. Использовали у себя для других целей — работают. Есть и более продвинутые варианты сетей с памятью, но, думаю, что начать лучше именно с LSTM.
Нет, только глубокие свёрточные и раньше — более простые многослойные. У меня не настолько много времени.
Да поди накосячил где-нибудь с параметрами сети или подготовкой данных. Мне кажется, должно было бы лучше работать.
MM>Ну да, возможно. А может быть и могла бы как-нибудь подстроиться, какие-нибудь низко- и высокочастотные фильтры бы сгенерировались...
Затрудняюсь представить сеть (и объём данных для её обучения) которая могла бы одним обучением вывести фильтр генерирующий уровни Фибоначчи на произвольном участке, а ведь это одна из самых простых линеек уровней которой пользуется каждый второй трейдер. А вот если взять две НС — одна которая только и умеет что выбирать две ключевые точки для уровней, а вторая берёт на вход 15-минутный график и сетку построенную первой и планирует работу на границе возможного отскока или пробоя — уже более-менее реально.
MM>Если порознь вероятность облажаться у каждого 90% или там 99%, то вдвоём, при совмещении скиллов, должно быть существенно меньше, так что объединяться тем, кто не в передовой конторе данного профиля, по-моему, выгодно.
В форуме shareware уже было доказано, что в команде проценты скиллов умножаются а не складываются. Получается что 0.9*0.9 = 0.81
MM>За подсказки спасибо!
Меня больше крипторынки привлекают — на развивающихся пузырях торговать в плюс много ума не надо — ошибок прощается куда больше чем на стабильных, и уж тем более на схлопывающихся. Сейчас активные и непрофессиональные трейдеры, основная кормовая база другими словами, перетекают с акций и форекс-кухонь в крипто-биржи, и соответственно куда проще будет заработать деньги на условном bitfinex, чем отжать у профессионалов которые живут с торговли акциями и в этом деле собаку съели.
MM>Если хотите, можем попробовать что-нибудь вместе забацать, что-нибудь поближе к тому, что я описал выше.
В профиле не указано, географически не в Минске случайно?
MM>>Если порознь вероятность облажаться у каждого 90% или там 99%, то вдвоём, при совмещении скиллов, должно быть существенно меньше, так что объединяться тем, кто не в передовой конторе данного профиля, по-моему, выгодно. _>В форуме shareware уже было доказано, что в команде проценты скиллов умножаются а не складываются. Получается что 0.9*0.9 = 0.81
Очевидно, что зависимость неуспеха — экспоненциальная от произведения количества недостающих скиллов. Так что не знаю, как там они доказали, что будет 0.81.
_>Меня больше крипторынки привлекают — на развивающихся пузырях торговать в плюс много ума не надо — ошибок прощается куда больше чем на стабильных, и уж тем более на схлопывающихся. Сейчас активные и непрофессиональные трейдеры, основная кормовая база другими словами, перетекают с акций и форекс-кухонь в крипто-биржи, и соответственно куда проще будет заработать деньги на условном bitfinex, чем отжать у профессионалов которые живут с торговли акциями и в этом деле собаку съели.
Ну, если хорошо растёт, то да, причём с таким же успехом можно тупо купить криптовалют и ждать.
MM>>Если хотите, можем попробовать что-нибудь вместе забацать, что-нибудь поближе к тому, что я описал выше. _>В профиле не указано, географически не в Минске случайно?
Совсем нет Географический центр нашей большой родины
MM>Читал и слышал, что deep learning сейчас рулит во всех областях, животных на фотографиях распознаёт лучше человека, детали на картинках достраивает, где-то даже писали, что для роликов продолжение придумывает. Вроде как, и при трейдинге тоже «достаточно легко» даёт хорошие результаты. Но мои личные попытки дали неважные результаты. В лучшем случае сеть худо-бедно подстраивалась под обучающие данные, но на тестовых данных результаты были плохие.
Я еще не видал никаких примеров успешного применения deep learning в финансах, это при том что я работаю в этой области (я quant trading PM в большом фонде). Думаю мы ничего и не увидим, вот мои мысли почему
— оно не эффективно с точки зрения размерности данных (данных надо очень много)
— нужно несколько проходов по набором данных, что является проблемой для нестационарных данных
— результаты DL очень неустойчивы, требуют ручной настройки и зависит от случайного семени
— теоретическое понимание плохое, поэтому вы никогда не уверены в статистической зачимости результата
Вобще-то DL до сих пор работало лучше всего при применении к проблемам, где люди слишком ленивы или надо что-то делать в масштабе (например, распознавание изображений). Сеть распознавания изображений не соответствует производительности человека, но Гуглу все равно, потому что дешевле использовать ПК для отметки 1 000 000 изображений, чем платить человеку. Но в трейдинге стимулы для анализа данных велики ($$$), поэтому все, кто может сделать что-то, чтобы получить прибыль, они это сделают. Следовательно, AI должен превосходить человеческую производительность, а не просто соответствовать ей или замещать точность пропускной способностью.
ML в финансах интересна в основном с точки зрения анализа больших массивов данных — будь то структуры микро-рынка (для HFT) или анализ фундаментальных данных для людей типа меня. Думаю что всякий кластеринг или random forests будут более применимы.
MM>Нужны советы, куда дальше двигаться и где есть (или нет) перспективы. А лучше человек, который увлекается подобными вещами, чтобы объединить усилия. Тут это кому-нибудь интересно? Сам вообще программист, 37 лет, стаж – 15, в основном – на С++, на работе занимался другими, более приземлёнными вещами.
Это смотря что интересно. Если интересует quant trading, то можно поговорить off-line. Если интересуют нейронные сети, то тут я пас
Здравствуйте, negres, Вы писали:
N>Вобще-то DL до сих пор работало лучше всего при применении к проблемам, где люди слишком ленивы или надо что-то делать в масштабе (например, распознавание изображений). Сеть распознавания изображений не соответствует производительности человека, но Гуглу все равно, потому что дешевле использовать ПК для отметки 1 000 000 изображений, чем платить человеку. Но в трейдинге стимулы для анализа данных велики ($$$), поэтому все, кто может сделать что-то, чтобы получить прибыль, они это сделают. Следовательно, AI должен превосходить человеческую производительность, а не просто соответствовать ей или замещать точность пропускной способностью.
Вообще-то с изображениями всё может быть и иначе, есть рутинные операции, на которых человек проигрывает со свистом: подсчёт клеток крови или поиск объектов на видео в реальном времени.
В трейдинге разве такого нет?
N>Вообще-то с изображениями всё может быть и иначе, есть рутинные операции, на которых человек проигрывает со свистом: подсчёт клеток крови или поиск объектов на видео в реальном времени. N>В трейдинге разве такого нет?
Это все равно вопрос масштаба — когда было необходимо, на анализ видео в реальном времени бросали батальоны и они справлялись. К тому-же в рутинных операциях типа таких, я на 65% уверен что если человек проигрывает в скорости, то он выигрывает в точности и, хм, разумности (например, человек не будет путать картонную вырезку Санта Клауса с реальным человеком, или не будет делать вот такого: https://nerdist.com/trap-a-self-driving-car/).
Все рутинного что можно сделать в трейдинге уже давно автоматизированно (всякие мелочи типа pennying, арбитраж и прочее) без особого применения ML. Основаная проблема с применением ML, как я уже сказал, что роль простого pattern recognition в финансах очень мала (кстати, "технический анализ" о котором говорили выше не работает, т.к. обычно он просто результат апофении, но это отдельная долгая тема). Я знаю пару ребят которые пытаются применить что-то ML-like в HFT, но это в основном в духе "в основном мы нормально делаем деньги, но вот в этой конкретной ситуации мы бы хотели делать что-то другое".
Если бы у меня был доступ к "ресурсу" (т.е. к человеку с широкими знаниями SML и желанием применить их к финансам), я бы искал методы предсказания фундаментальных данных (типа earnings per share, book values, sales figures). Там данные с множеством компонентов и уровней, разные источники и прочие сложности. Человек который это делает вручную, с одной стороны видит всю мозаику, но с другой стороны подвержен всяким идеям о том как эту мозаику интерпретировать. Если там применить какие-то умные методы может и можно чего-то интересного придумать.
ПС. Пардон за корявый язык, я в Америке с раннего возраста и грамоте меня учили родители которые педагоги еще те.
Здравствуйте, MichailM, Вы писали:
MM>Добрый день всем! MM>Читал и слышал, что deep learning сейчас рулит во всех областях, животных на фотографиях распознаёт лучше человека, детали на картинках достраивает, где-то даже писали, что для роликов продолжение придумывает. Вроде как, и при трейдинге тоже «достаточно легко» даёт хорошие результаты. Но мои личные попытки дали неважные результаты. В лучшем случае сеть худо-бедно подстраивалась под обучающие данные, но на тестовых данных результаты были плохие.
а где исторические данные брали?
По теме вопроса — я не профи в нем, но думаю надо идти не вглубь а в ширь, т.е. для обучения брать больше сторонних данных кроме самих курсов.
Ну а если речь идет о распознавнии последовательностей, то как выше верно подметили — тут должны быть рекурентные сети кмк
Здравствуйте, The Passenger, Вы писали:
TP>а где исторические данные брали?
Ценовые данные как раз не проблема, их полно как за деньги так и бесплатно.
TP>По теме вопроса — я не профи в нем, но думаю надо идти не вглубь а в ширь, т.е. для обучения брать больше сторонних данных кроме самих курсов.
Употребление не-рыночных данных это правильный подход, гораздо легче найти факторы. Естественно, не факт что для этого нужен какой-то deep learning, всякие умные регрессии и деревья там тоже можно применить. Основная проблема в доступности таких данных, даже самые базовые наборы которые уже подготовлены к обработке стоят достаточно дорого.
Здравствуйте, negres, Вы писали:
N>Здравствуйте, The Passenger, Вы писали:
TP>>а где исторические данные брали? N>Ценовые данные как раз не проблема, их полно как за деньги так и бесплатно.
ну частоту раз в день — не проблема ... а вот посекундно или хотябы поминутно — я искал, не нашел ... если есть — подскажите где пожалуйста
TP>>По теме вопроса — я не профи в нем, но думаю надо идти не вглубь а в ширь, т.е. для обучения брать больше сторонних данных кроме самих курсов. N>Употребление не-рыночных данных это правильный подход, гораздо легче найти факторы. Естественно, не факт что для этого нужен какой-то deep learning, всякие умные регрессии и деревья там тоже можно применить. Основная проблема в доступности таких данных, даже самые базовые наборы которые уже подготовлены к обработке стоят достаточно дорого.
дееп леарнинг как раз будет хорош там где не прослеживается явная связь между данными и результатом — как возможно связь между погодой и курсом или чтото в этом роде ... посты в твиттере например
самый сложный вопрос как эти данные получать и готовить
Здравствуйте, The Passenger, Вы писали:
TP>ну частоту раз в день — не проблема ... а вот посекундно или хотябы поминутно — я искал, не нашел ... если есть — подскажите где пожалуйста
На какие типы бумаг?
TP>дееп леарнинг как раз будет хорош там где не прослеживается явная связь между данными и результатом — как возможно связь между погодой и курсом или чтото в этом роде ... посты в твиттере например
Проблема в том что без понимания (а) "почему есть взаимосвязь" и без понимания (б) "насколько статистически значима взаимосвязь" результат скорее всего будет стандартный (т.е. денег потеряешь). Мат ожидание изначально негативное.
Например, У меня есть знакомец который занимается NLP относительно стоков. И с данными с твиттера играл тоже (кстати, на Гит Хабе есть набор данных вроде). Но по разговорам, он делает достаточное простые вещи типа марковских цепей на Н слов, именно что бы были (а) и (б).
TP>самый сложный вопрос как эти данные получать и готовить
Если реально интересно, то можно поговорить.
Здравствуйте, negres, Вы писали:
N>Здравствуйте, The Passenger, Вы писали:
TP>>ну частоту раз в день — не проблема ... а вот посекундно или хотябы поминутно — я искал, не нашел ... если есть — подскажите где пожалуйста N>На какие типы бумаг?
акции ... желательно AEX
TP>>дееп леарнинг как раз будет хорош там где не прослеживается явная связь между данными и результатом — как возможно связь между погодой и курсом или чтото в этом роде ... посты в твиттере например N>Проблема в том что без понимания (а) "почему есть взаимосвязь" и без понимания (б) "насколько статистически значима взаимосвязь" результат скорее всего будет стандартный (т.е. денег потеряешь). Мат ожидание изначально негативное.
ну да — поймать эту связь значит поймать Бога за бороду
N>Например, У меня есть знакомец который занимается NLP относительно стоков. И с данными с твиттера играл тоже (кстати, на Гит Хабе есть набор данных вроде). Но по разговорам, он делает достаточное простые вещи типа марковских цепей на Н слов, именно что бы были (а) и (б).
Ну и как результат?
TP>>самый сложный вопрос как эти данные получать и готовить N>Если реально интересно, то можно поговорить.
Ну я не особо верю, что смогу произвести чтото существенное в этой теме, поскольку опыта скорее в минус ( судя по моей торговле акциями )
Да и помимо этого у меня сейчас есть пара дел в приоритете — одно из них — стать более менее профи в computer vision ( опыт уже наскребаю)
Потом может быть и поиграюсь, там и свяжемся ... хотя конечно интересно ... но я пока вообще фантик в ML
Вообще в идеале — неплохо бы создать интеллектуального агента, который сам будет искать информацию и пробовать ее ... но боюсь мне до того чтобы
понять как это сделать — мне еще пилить и пилить.
Здравствуйте, negres, Вы писали:
N>Употребление не-рыночных данных это правильный подход, гораздо легче найти факторы. Естественно, не факт что для этого нужен какой-то deep learning, всякие умные регрессии и деревья там тоже можно применить. Основная проблема в доступности таких данных, даже самые базовые наборы которые уже подготовлены к обработке стоят достаточно дорого.
Знаете, есть ли где-нибудь в открытом доступе данные по опционам на нефть марки Brent?
Для WTI есть(см. картинку). А для Brent не нашел...