- [[Analytics_v2/Technical]] - технический план = Мотивация Аналитикса обеих версий = Глобальные наши мотивы: - продвижение идей фримаркета - jumping on the Bitcoin, Big Data, Artificial Intelligence bandwagons - извлечение прибыли из текущего хайпа - создание для себя работы в области, которой хотелось бы заниматься - получение "фонового дохода"-"пенсии" По сути, v2 - это не v2, а продолжение работ над v1, реализация первоначальной идеи аналитикса, которую мы в результате не потянули, и остановились на малом: - Аналитический инструмент для широкого круга лиц: - Рядовых граждан - Технических "аналитиков" и форексовцев - "Настоящих" финансовых аналитиков из HFT-кругов - Аналитиков из мира Artificial Intelligence, Machine Learning и Big Data, интересующихся Биткоином - Индикаторы и индексы разной направленности: - "Телевизор" - для любопытствующих - "Асtionable" - для трейдеров - "Research grade" - для учёных - Лёгкость добавления новых визуализаций - Лёгкость перетасовки графиков и организации кастомных видов - Интерактивность: Realtime, Pan-Zoom, выбор параметров - Расширения спектра доступных в мире Биткоина визуализаций - Сейчас ограничены рисованием простых индикаторов для торгов без разделения бид-аск - Исследования ордербуков затруднены и в мире других финансовых инструментов, т.к. Level 2 Data дорогие, непубличные и зарегулированные. В этом плане биткоин может активировать исследования free market в целом, т.к. это считай первый действительно свободный автоматизированный рынок с низким входным барьером. Вторичные сопутствующие мотивы: - Беспроблемные микроплатежи - продвижение идеи биткоина как удобного платёжного инструмента для приема оплаты за веб-услуги - Разработка средств разработки: контейнеры, клауды, супервизоры, docker-beaner-zeromq - "перекрёстное опыление" между проектами и возможность применения накопленного опыта: тематика пересекается с другими моими проектам - с Роджеровской аналитикой, хакнулом-HNC и Максимовским N2O-Vox-Mad = Проблемы Аналитикса-v1 = Проблемы: - отсутствие денег на разработку - невозможность заполучить работников, инвесторов или партнёров Причины: - низкое качество кода - низкая производительность - некрасивый графический дизайн - малый объём функциональности Пути разрешения проблем: - инкрементальное исправление архитектуры и производительности v1 (замена dyCharts на SVG, внедрение базы, свечи-агрегация - что делалось в Харькове в конце) - написание клона аналитикса без использования существующего кода с применением готовых фреймворков и изоляцией (что обсуждалось в Доминикане) - написание только новой функциональности в Аналитикс, без реинжиниринга существующего кода, в виде отдельного сайта (на основе Jupyter/IPython/nbviewer) = Видение Аналитикса-v2 = - Социальная площадка для тусовки производителей и потребителей аналитического контента - статей, иллюстрированных графиками (аналог quantopian posts) - Источник новостей о событиях в мире биткоина - https://en.wikipedia.org/wiki/Data-driven_journalism - Тусовка алготрейдеров (стратегии, backtesting, метрики риcков, slippage) - Data Market (буки-торги, может, blockchain analytics) - https://www.quantopian.com/data/accern/alphaone = Почему так не сделали сразу = На момент создания аналитикса HTML5 (web sockets, AJAX, SVG, Canvas, local store) и клауды (docker, zeromq, nosql, horizontal scaling) - только начинали развиваться. Соответственно, готовые инструменты были - либо убогими (jQuery), - либо cырыми (Meteor, Socketstream), - либо ориентированными на "старые" многостраничные сайты поверх SQL (Django, Zend Framework, Typo3, Connect-Express) - и были достаточно низкоуровневыми (ориентировались на произвольные сайты, не было специализированных на аналитике и визуализации) То же самое можно сказать про - готовые инструменты для big data, аналитики и визуализации (scientific python, R, Hadoop, Spark), - и про клиент-серверные IDE (atom editor, R studio, IdeOne...) - и про высокоуровневые фреймворки виджетов для фронт-энда (webix, cappuccino) = Выбранные инструменты = - http://jupyter.org/ - IPython - плагин для написания под Jupyter на Питоне (наиболее развит из [40 имеющихся]) - [http://pandas.pydata.org/pandas-docs/version/0.17.1/overview.html pandas] - библиотека датасорсов - "фреймов", заполняемых данными и передаваемых аргументами в функции отображения графиков - [http://matplotlib.org/examples/pylab_examples/histogram_percent_demo.html matplotlib], [http://stanford.edu/~mwaskom/software/seaborn/index.html seaborn] - библиотеки графиков, совместимые c Jupyter и pandas = Прочие инструменты = == Для Python == - [http://docs.scipy.org/doc/scipy/reference/index.html scipy] - библиотека научных рассчётов, численные методы широкого профиля, сейчас используется косвенно внутри seaborn == Для R == - IRKernel - плагин для R (под R больше библиотек анализа и визуализации) - [http://shiny.rstudio.com/gallery/ shiny] - библиотека браузерных виджетов для R - [https://www.rstudio.com/products/rstudio-server/ R Studio Server] - онлайн-IDE, аналог Jupyter прошлого поколения - CRAN [https://cran.r-project.org/web/views/Finance.html Finance], [https://cran.r-project.org/web/views/Econometrics.html Econometrics] - библиотеки "взрослой" финансовой аналитики - CRAN [https://cran.r-project.org/web/packages/obAnalytics/vignettes/guide.html obAnalytics] - библиотека анализа **исторических ордербуков битстампа (!)** (больше никаких библиотек для Level 2 на CRAN нету) == Для клиентского JS == - [http://square.github.io/crossfilter/ crossfilter] - библиотека сверхбыстрых (30+ fps) интерактивных гистограмм поверх миллионов датапоинтов (тот же seaborn уже неюзабелен при 20к точек) - [http://dc-js.github.io/dc.js/ dc.js] - библиотека подчиненных графиков поверх crossfilter - [https://d3js.org/ D3.js] - библиотека художественной резьбы по SVG DOM, включая анимации. Если будем делать наши собственные графики. = Пакеты Archlinux = {{{ [andy@arch ~]$ pactree -d 1 jupyter jupyter ├─ipython ├─jupyter-notebook ├─python-setuptools ├─python-jinja ├─python-pyzmq ├─python-tornado ├─python-jsonschema ├─python-terminado ├─python-mistune └─python-pygments [andy@arch ~]$ pactree -d 1 python-seaborn python-seaborn ├─python-pandas ├─python-matplotlib └─python-scipy }}}