Не наистина. Вероятно няма да бъдете богати, освен ако не работите наистина усилено... Колкото и хубаво да е, не можете да предвидите цената на акциите само въз основа на ML, но сега имам вашето внимание!
Продължавайки от предишната си публикация в блога за това колко страхотно и лесно е да се разработват уеб-базирани приложения, подкрепени от Cloudera Operational Database (COD), започнах малък проект за интегриране на COD с друго CDP облачно изживяване, Cloudera Machine Learning (CML).
В тази демонстрация ще се опитам да предскажа поведението на отворената цена на акциите въз основа на техните исторически данни, което означава дали цената на отваряне на акциите ще се повиши или понижи. Аз не съм учен по данни, но има много примери онлайн как да направя това (взех някои кодови мостри, поправих ги и ги коригирах да работят с COD). За целта ще използвам алгоритъма LSTM (Long Short-term memory). RNN като цяло (повтарящи се невронни мрежи) и LSTM специално работят много добре с данни от времеви серии
За да избегнем съмнения, ние не претендираме да сме експерти на фондовия пазар и нищо в тази публикация в блога не трябва да се приема като финансов съвет по никакъв начин. Това е просто пример за това как да разработите решение с помощта на софтуера на Cloudera.
Основни компоненти, използвани в тази демонстрация:
- Оперативна база данни на Cloudera (COD), както беше споменато в предишната ми публикация, е управлявано dbPaaS решение, достъпно като опит в Cloudera Data Platform (CDP)
- CML е предназначен за специалисти по данни и инженери за машинно обучение, което им позволява да създават и управляват ML проекти от код до производство. Основни характеристики на CML:
- Среда за разработка за специалисти по данни, изолирана, контейнеризирана и еластична
- Производствен набор от инструменти за ML – внедряване, обслужване, наблюдение и управление на модели за ML
- Обслужване на приложения – Създайте и обслужвайте персонализирани приложения за случаи на употреба на ML
- Предварително опаковани приложения за прозрения за бизнес потребителите
- Проста, плъзгане и пускане изграждане на табла за управление и приложения с Cloudera Data Visualization
- Приложения за шаблони като начални комплекти за вашите случаи на употреба
- Данни за запасите – за изтегляне на данните за запасите използвах услугата alpha vantage (безплатна версия). По принцип това е услуга, която ви позволява да получавате ежедневно обобщение за статистическите данни за акциите (отворени, затварящи, нисък, голям обем)
Създайте приложението
Първото нещо, което трябва да направим, е да създадем база данни в COD.
1. Влезте в контролната равнина на Cloudera Data Platform Public Cloud
2. Изберете Оперативна база данни и след това щракнете върху “Създаване на база данни”
3. Изберете вашата среда и наименувайте вашата база данни
4. След като базата данни стартира и работи, превключете към раздела JDBC
5. Задайте вашата парола за CDP за натоварване
6. Сега нека преминем към CML – Върнете се в контролната равнина и щракнете върху „Машинно обучение“ и след това „Предоставяне на работно пространство“ Дайте име на работното си пространство и изберете средата, която искате да използвате
7. След като работното пространство е осигурено, създайте нов проект, дайте му име и използвайте git за изходния код. Целият изходен код може да бъде намерен тук.
8. След като проектът е създаден, ще видите всички файлове в директорията на проекта:
9. Малко допълнителна логистика – трябва да създадем променливи на средата за проекта, които ще съхраняват достъпа до нашата база данни и алфа vantage API ключ. За да направите това, отидете на раздела „Настройки на проекта ->Разширени“
10. Сега нека започнем да изпълняваме проекта – щракнете върху „нова сесия“, дайте име на сесията си, изберете „python 3“ и профила на ресурса
11. Или на терминала, или на CLI в долната част, инсталирайте всички необходими библиотеки, като изпълните „pip3 install -r requirements.txt“
12. Следващата стъпка е да създадем нашата таблица, в която данните ще се съхраняват в нашата база данни. за тази цел изпълнете скрипта за настройка:
13. Сега, нека започнем да тестваме нашия модел! Отидете на runner.py и го стартирайте. По принцип този скрипт прави следното:
a) Получава дневните данни за запасите от алфа-предвид
б) Основна трансформация на данни
в) Съхранявайте данните в оперативна база данни на Cloudera
г) Стартирайте модела и създайте файла на модела (tech_ind_model.py)
д) Изпълнете прогнозата за последните 120 дни
е) Изчислете прогнозираните печалби, ако купуваме и продаваме акции по точните цени
14. Докато програмата работи, ще видите, че събира данни за всяка акция, качва ги в COD, изпълнява прогнозата и начертава графика, показваща прогнозната цена спрямо текущата цена. Въпреки че графиката показва, че тенденцията в повечето случаи е много сходна, дори малка разлика може да повлияе на общите приходи от тези препоръки. Резултатът от цикъла включва следната информация за всяка акция:
а) препоръка:запазете/купувайте/продавайте
б) последна прогнозирана:последна прогнозирана цена
в) цена:последна цена
г) прогнозиран:прогноза за следващата цена на отваряне
д) сигнал:висок/нисък – препоръката е силна/не
15. Въз основа на последния път, когато стартирах програмата, щях да загубя пари в повечето акции въз основа на препоръките, но в същото време имаше няколко, които прогнозираха печалба до 20%!!!
Сега алгоритмичната търговия като цяло и прогнозирането на цените на акциите са теми, които съществуват от много години. За да операционализирате случаи на използване на машинно обучение като този, имате нужда от мощни инструменти, които са лесни за използване, мащабируеми и готови за предприятия.
Cloudera Operational Database осигурява латентност под секунда за произволно четене/записване и е точно това, което е необходимо за приложения в реално време като тези, използвани в индустрията на финансовите услуги.
За да започнете с CML и COD...
Надявам се да го намерите полезен,
Приятно кодиране!!