46 0.134 67 0.095 4 0.090 60 0.071 15 0.069 week 0.068 26 0.067 2 0.065 53 0.065 84 0.058Week у нас всего лишь на 6 месте с ничем не примечательными коеффами важности, а во главе фича «46», которая между нами говоря никакого смысла и не имеет, ибо случайно сгенерированный ряд. Обьяснить это можно только одним-фича week детерминирует наш таргет на 52%, что совсем не густо, а фича 46, была сгенерированна так что ее ценность случайно оказалась выше. Ну то есть мы все понимаем что если посадить макаку торговать, то будет она торговать в ноль, но если посадить 1 млн макак и каждой дать по терминалу, то наверняка среди 1 млн окажется парочку «макак-гуру», которые в силу случайности покажут длинную серию успешных трейдов (я кстати думаю что также обьясняется появление гуру среди людей), а если посадить за комп 1 млрд макак, то наверняка парочка вообще не совершит неправильных кликов, и это будет «макака-Баффет», все будут смотреть ей в рот, удивляться ее гениальности, а «макака Баффет» откроет блог и начнет давать советы как торговать правильно. Ну вот и в нашем пример, так получилось, что макака под номером «46» случайно понажимала кнопки правильней и RF назвал ее особо ценной.
Так как насчет практического применения ML? Как вообще это выглядит?!
А выглядит это так, что 80% времени data scientist тратит на работу с данными, чтобы потом загнав их в модельку мобильно получить прогноз. Вообще, предполагалось что такой мощный инструмент как нейросети сможет работать с сырыми данными, то есть загонишь в нейросеть обычную котировку, а дальше могучие нейроны похимичат, сгенерируют кучу фичей и найдут нужную их комбинацию (на самом деле никаких фичей нейросети на создают, но можно представить). Ну вот например такое явление как большой ГЭП, важный показатель? Еще какой! В сырых данных он содержится, то есть можно помечтать что если мы создадим очень сложную нейросеть, то она сможет вытащить это значение самостоятельно. Что такое ГЭП нейросеть конечно не знает, но путем манипуляций с весами она найдет, что когда меняется циферка в дате то образовавшийся большой разрыв в цене имеет большое влияние для хорошей аппроксимации.
Мечты, мечты. Пока все что я видел в результате скармливания нейросети сырах данных-это слезы, боль и убожество. В общем мы пойдет другим путем. Мы не будет скармливать модели сырятину и мусор, мы постараемся кормить его качественно чтобы удои увеличивались и все такое.
Есть такое понятие как в ML как feature engenering. Наверно единственное более менее креативное что остается человеку в этом бездушном мире машинного обучения. А уж коли мы ведем речь о RF, то сам бог велел заняться этим, RF знаете ли не нейросети, там даже теоретически сырятина в данных не приветствуется. Вот этим мы и займемся.
Откуда же нам взять эти фичи и главное как? Тут каждому воля вольная. Например можно сдув пыль с WealthLab использовать старичка как генератора фичей. Кто не знает в него вшито около полусотни известных индексов и еще столько же, но с неизвестным кодом. А еще можно запрограммировать свои фичи. По своему «знанию и разумению», своих «знаний и разумений» я накопил много, но почти все они из разряда «все эти технические индикаторы не стоят ничего». Зато кое что из своего показали свою небезнадежность. В общем на первый случай я сгенерировал около 17 своих фичей, затем ранжировал их для каждой стоки, итого 34 фичи. Стоки брал из числа 20 самых ликвидных отечественных фишек с 2010 года по март 2018, что дало 50 тысяч дневных наблюдений. Прямо сказать не густо, но что есть. Тем более речь идет о демонстрации силушки RF.
Вот набор моих фичей:
Week 49303 non-null int64 GEP 49303 non-null float64 Min10 49303 non-null float64 Cl/High 49303 non-null float64 Cl/Low 49303 non-null float64 Cl/w_High 49303 non-null float64 Cl/w_Low 49303 non-null float64 wdif 49303 non-null float64 dif 49303 non-null float64 Vol20/Vol200 49303 non-null float64 tHigh% 49303 non-null float64 tLow% 49303 non-null float64 tHigh%-tLow% 49303 non-null float64 Cl/SMA21 49303 non-null float64 Cl/SMA5 49303 non-null float64 SMA5-SMA21 49303 non-null float64 Cl/(minSMA) 49303 non-null float64 Cl/(maxSMA) 49303 non-null float64 l_Min10 49303 non-null int64 s_Min10 49303 non-null int64 l_gep 49303 non-null int64 s_gep 49303 non-null int64 l_cl/high 49303 non-null int64 s_cl/high 49303 non-null int64 l_cl/low 49303 non-null int64 s_cl/low 49303 non-null int64 l_wdif 49303 non-null int64 s_wdif 49303 non-null int64 l_SMA5-SMA21 49303 non-null int64 S_SMA5-SMA21 49303 non-null int64 L_Cl/(maxSMA) 49303 non-null int64 S_Cl/(maxSMA) 49303 non-null int64 L-tHigh%-tLow% 49303 non-null int64 S_tHigh%-tLow% 49303 non-null int64
Оке. Что именно я сгенерировал?!
Как я уже писал мое видение рынка это меняющиеся периоды случайного блуждания со вспышками какой то детерминированности, которые трейдер стремящийся к извлечению профита (а не чего то там еще) и должен торговать.
А как вообще подход в торговле я использую? А тут нужно вспомнить тех самых отцов-учителей которые лет 20 назад изрядно наследили на просторах инета. Атаман, Юра.… всех не упомнишь, но и не важно. Их конкретные подходы для российского фондового рынка оказались бесполезны, зато подход оказался понятным, логичным и что самое главное подходящими для меня. То есть сидишь ты такой с компьютером в обнимку, чего то там считаешь, ищешь закономерности (неэффективности, тут каждый может назвать как захочет), а затем исходя из предположения что эта закономерность продлится еще какое то время, начинаешь использовать на рынке. В чем природа возникающих закономерностей интересна для тех кто хочет понять суть рынка, а тем кто хочет просто рубить бабло наверно не очень. Но если откинувшись в кресло немножко пофантазировать можно вспомнить о таких природных явлениях имеющих числовые оценки как «золотое сечение», персистентность, толстые хвосты, нормальное распределение. Можно пофантазировать на тему что толпа (а фондовый рынок хоть он и фондовый прежде всего рынок, то есть толпа людей) в какие то критические моменты ведет себя шаблонно. Что есть какие то переходы в разные состояния рынка которые можно обсчитать. Что гуру и всякие теханализы с волнами Элиота создают паттерны поведения итп итд. Все это заполировать понятиями точка бифуркация, нелинейность, хаос… а можно на все это плюнуть и просто искать закономерности. Это не требует ни ума, ни какой то прозорливости или образования. Это как искать в куче сена иголку-кому то повезет и он найдет ее сразу, кому то нет, он будет искать ее долго, может всю жизнь, ну а кто то вообще не найдет. Все само собой IMXO.
Лет 20 назад была модной темой нейросети, и в частности в приложении к прогнозированию на фондовом рынке. Вообще, нейросети были придуманы в далеких 60 прошлого века, но как это часто бывает от теории до реализации прошли многие году. Если нейросети в других сферах нашли свое место, то о применении нейросетей для успешного трейдинга я честно говоря не слышал. Этому может быть два обьяснения-для фондовых рынков неросети неприменимы (вообще или пока), либо кто сумел их правильно применить, по понятной причине не стал писать об этом кандидатские, а ничтоже сумняшеся стал рубить бабло.
С момента моей первой попытки применить нейросети прошли многие годы, с тех пор и теория нейросетей сильно прибавила, и мощности компьютеров увеличились и появилось куча программных приложений и инженерных штуковин, которые позволяют все это проще, лучше и интересней обсчитывать.
Впрочем одна проблема осталась прежней (на мой очень скромный взгляд)-те кто пытается использовать нейросети на фондовом рынке мыло понимают рынок, поэтому это часто приводит к чистому (опять же по моему очень скромному мнению) идиотизму.
±50 | Колич | Обьем | /%/ | ± 200 | Колич | Обьем | /%/ |
2010 | 388 | 727 | 1,36 | 2010 | 90 | 956 | 2,54 |
2010 | 246 | 849 | 1,66 | 2010 | 504 | 979 | 1,76 |
2010 | 630 | 449 | 1,05 | 2010 | 90 |
Есть данные EPFR которые демонстрируют приток или отток на отечественный рынок капиталов зарубежных фондов. По обывательской логике все просто-пришли деньги на наш рынок-рынок растет. Ушли-рынок падает.
Давайте проверим как обстояло дело в 2010-2017 годах. Данные они публикуют за период от среды до среды. Данные выходят с задержкой. Но давайте представим что мы проснувшись рано утром в четверг точно знаем занесут иностранцы до следующего четверга деньги на наш рынок или выведут. И каждый день утром будем покупать фишки, а на следующее утро откупать из обратно.
Сгруппировал отток/приток по размеру и получил для FRTS:
Названия строк |
Колич |
Profit % |
± |
EPFR |
-276 |
Названия строк | Колич | Profit % |
2010 | 22 | -0,23 |