Kpi.ua



Нац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут?мен? ?ГОРЯ С?КОРСЬКОГО?НАВЧАЛЬНО-НАУКОВИЙ КОМПЛЕКС??НСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛ?ЗУ?КАФЕДРА МАТЕМАТИЧНИХ МЕТОД?В СИСТЕМНОГО АНАЛ?ЗУ?На правах рукопису?УДК 004.891.2?До захисту допущено?Зав?дувач кафедри__________ __________О.Л. Тимощук(п?дпис) “___”____________2018 р.Маг?стерська дисертац?яз? спец?альност? 124 Системний анал?зна тему: ?Система прогнозування курсу криптовалют на основ? фундаментального анал?зу?Виконав:студент II курсу, групи КА-62мДеундяк Олександр ВолодимировичНауковий кер?вник:доц., к.т.н, доц.Д?дковська М.В.Рецензент:доц. кафедри програмного забезпеченнякомп'ютерних систем ФПМ,к.т.н., доц.Заболотня Т.М.Засв?дчую, що у ц?й маг?стерськ?й дисертац?? нема? запозичень з праць ?нших автор?в без в?дпов?дних посилань.Студент _____________(п?дпис)Ки?в2018Нац?ональний техн?чний ун?верситет Укра?ни ?Ки?вський пол?техн?чний ?нститут?мен? ?горя С?корського??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зуР?вень вищо? осв?ти – другий (маг?стерський) за осв?тньо-профес?йною (осв?тньо-науковою) програмоюСпец?альн?сть (спец?ал?зац?я) – 124 ?Системний анал?з? (?Системи ? методи прийняття р?шень?)ЗАТВЕРДЖУЮЗав?дувач кафедри__________ О.Л. Тимощук(п?дпис) ?___?_____________20__ р.ЗАВДАННЯна маг?стерську дисертац?ю студентуДеундяку Олександру Володимировичу1. Тема дисертац?? ?Система прогнозування курсу криптовалют на основ? фундаментального анал?зу?, науковий кер?вник дисертац?? Д?дковська Марина В?тал??вна к.т.н., доц., затверджен? наказом по ун?верситету в?д ?___?_________ 20__ р. №_____2. Строк подання студентом дисертац?? 3. Об’?кт досл?дження: методи прогнозування курсу криптовалют, методи Data Mining, Machine Learning.4. Предмет: модел?, що застосовуються у системах прогнозування курсу криптовалют, ?х види та модиф?кац??.5. Перел?к завдань, як? потр?бно розробити: зробити огляд ?снуючих метод?в та практик прогнозування курсу криптовалют, зробити систему прогнозування курсу криптовалют на основ? фундаментального анал?зу.6. Ор??нтовний перел?к граф?чного (?люстративного) матер?алу: об’?кт, предмет та мета досл?дження, постановка задач?, основн? п?дходи до прогнозування курсу криптовалют, результати модел?.7. Ор??нтовний перел?к публ?кац?й 8. Дата видач? завдання Календарний план№ з/пНазва етап?в виконання маг?стерсько? дисертац??Строк виконання етап?в маг?стерсько? дисертац??Прим?тка1Отримання завдання та розробка календарного плану18.03.2018Виконано2Оформлення першого розд?лу02.04.2018Виконано3Оформлення другого розд?лу15.04.2018Виконано4Оформлення третього розд?лу24.04.2018Виконано5Оформлення четвертого розд?лу02.05.2018Виконано6Оформлення висновк?в08.05.2018ВиконаноСтудент ____________О.В. ДеундякНауковий кер?вник дисертац?? ____________М.В. Д?дковськаРЕФЕРАТМаг?стерська дисертац?я: 66 с., 13 рис., 24 таб., 3 додатки, 26 джерел.Об’?кт досл?дження – методи прогнозування курсу криптовалют, методи Data Mining, Machine Learning.Предмет досл?дження – модел?, що застосовуються у системах прогнозування курсу криптовалют, ?х види та модиф?кац??. Мета роботи – створити систему прогнозу курсу криптовалют, ?? реал?зувати та досл?дити. Метод досл?дження – розгляд та анал?з метод?в прогнозу курсу криптовалют: багатошаровий перцептрон Румельхарта.Актуальн?сть – досл?дження молодого ? динам?чного ринку криптовалют, зароб?ток на коливаннях курсу, соц?альн? та економ?чн? досл?дження ринку криптовалют.Результати роботи – розроблено програмний продукт, що да? змогу прогнозувати курс криптовалют з точн?стю 20-50% в залежност? в?д пер?оду прогнозу, а також прогнозувати тренд курсу з точн?стю до 100%.Новизна роботи – розроблено спос?б прогнозу курсу криптовалют, у якому використову?ться дан? соц?альних мереж як зовн?шн?й чинник, що вплива? на курс.Шляхи подальшого розвитку предмету досл?дження – б?льш детальний анал?з соц?альних мереж методами NLP.ПРОГНОЗ КУРСУ КРИПТОВАЛЮТ, НЕЙРОНН? МЕРЕЖ?, МАШИННЕ НАВЧАННЯ, ФУНДАМЕТНАЛЬНИЙ АНАЛ?З, РЕГРЕС?ЯABSTRACTTopic: Cryptocurrency rate forecastMaster’s thesis: 66 p., 13 Fig., 24 tables , 3 applications, 26 sources.Object of the research – cryptocurrency rate forecast, Data Mining methods, Machine Learning methods.Purpose of the study – create and examine system for cryptocurrency forecastResearch methods – review and analysis of cryptocurrency forecast methods: multilayer perceptron.Urgency – analysis of young and dynamic cryptocurrency market, profit based on cryptocurrency rate changes, economic and social cryptocurrency market researches.Results – developed software, that allows forecast cryptocurrency rate with 20-50% accuracy depending on forecast period and predict trend of cryptocurrency rate with accuracy up to 100%.Novelty of the work – developed a method of cryptocurrency forecast, which uses social network data as exogenous variable;Further development of the subject of study – more detailed analysis of social network data using NLP methods.CRYPTOCURRENCY FORECAST, NEURAL NETWORKS, MACHINE LEARNING, FUNDAMENTAL ANALYSIS, REGRESSIONЗМ?СТ TOC \o "1-3" \h \z \u ПЕРЕЛ?К СКОРОЧЕНЬ PAGEREF _Toc513998831 \h 9ВСТУП PAGEREF _Toc513998832 \h 10РОЗД?Л 1 АНАЛ?З ЗАДАЧ? ПРОГНОЗУВАННЯ КУРСУ КРИПТОВАЛЮТ PAGEREF _Toc513998833 \h 121.1 Криптовалюта PAGEREF _Toc513998834 \h 121.1.1 Загальн? в?домост? PAGEREF _Toc513998835 \h 121.1.2 ?стор?я PAGEREF _Toc513998836 \h 141.2 Анал?з актуальност? задач? прогнозування курсу криптовалют PAGEREF _Toc513998837 \h 151.3 Анал?з ?снуючих п?дход?в до вир?шення задач? прогнозування курсу криптовалют PAGEREF _Toc513998838 \h 171.3.1 Walletinvestor PAGEREF _Toc513998839 \h 171.3.2 Belinvestor PAGEREF _Toc513998840 \h 181.3.3 NeuroShell. PAGEREF _Toc513998841 \h 201.3.4 Trader PAGEREF _Toc513998842 \h 201.3.5 ELLIOTT WAVE ANALYSER PROFESSIONAL PAGEREF _Toc513998843 \h 211.3.6 AINET PAGEREF _Toc513998844 \h 221.4 Фундаментальний анал?з та його використання при роз’язанн? задач? прогнозування курсу криптовалют PAGEREF _Toc513998845 \h 231.4.1 Прикладне використання фундаментального анал?зу для задач? прогнозування курсу криптовалют PAGEREF _Toc513998846 \h 241.5 Формал?зац?я постановки задач? досл?дження PAGEREF _Toc513998847 \h 26Висновки до розд?лу PAGEREF _Toc513998848 \h 26РОЗД?Л 2 МАТЕМАТИЧН? ОСНОВИ ДЛЯ ЗАДАЧ? ПРОГНОЗУВАННЯ КУРСУ КРИПТОВАЛЮТ PAGEREF _Toc513998849 \h 272.1 Задача регрес?? PAGEREF _Toc513998850 \h 272.2 Нейронн? мереж? PAGEREF _Toc513998851 \h 282.2.1 Означення PAGEREF _Toc513998852 \h 282.3 ARIMA ?з зовн?шн?ми регресорами PAGEREF _Toc513998853 \h 302.4 Оц?нка якост? побудовано? модел? PAGEREF _Toc513998854 \h 32Висновки до розд?лу PAGEREF _Toc513998855 \h 32РОЗД?Л 3 АРХ?ТЕКТУРА ПРОГРАМНОГО ПРОДУКТУ PAGEREF _Toc513998856 \h 343.1 Виб?р мови програмування PAGEREF _Toc513998857 \h 343.2 Модул? та б?бл?отеки PAGEREF _Toc513998858 \h 343.3 Алгоритм роботи PAGEREF _Toc513998859 \h 353.4 Виб?р модел? регресора PAGEREF _Toc513998860 \h 35Висновки до розд?лу PAGEREF _Toc513998861 \h 36РОЗД?Л 4 АНАЛ?З ПРАКТИЧНИХ РЕЗУЛЬТАТ?В PAGEREF _Toc513998862 \h 374.1 Анал?з алгоритму роботи системи PAGEREF _Toc513998863 \h 374.2 Анал?з якост? роботи системи PAGEREF _Toc513998864 \h 38Висновки до розд?лу PAGEREF _Toc513998865 \h 43РОЗД?Л 5 МЕНЕДЖМЕНТ СТАРТАП ПРОЕКТУ PAGEREF _Toc513998866 \h 445.1 ?нформац?йна карта проекту PAGEREF _Toc513998867 \h 445.2 Команда проекту CryptoForecast PAGEREF _Toc513998868 \h 475.3 Б?знес-модель проекту PAGEREF _Toc513998869 \h 485.4 Анал?з ринкових можливостей запуску стартап-проекту PAGEREF _Toc513998870 \h 495.5 Розроблення ринково? стратег?? проекту PAGEREF _Toc513998871 \h 585.6 Розроблення маркетингово? програми стартап-проекту PAGEREF _Toc513998872 \h 61Висновки до розд?лу PAGEREF _Toc513998873 \h 65ВИСНОВКИ PAGEREF _Toc513998874 \h 66ПЕРЕЛ?К ПОСИЛАНЬ PAGEREF _Toc513998875 \h 68ДОДАТОК А Л?СТИНГ ПРОГРАМИ PAGEREF _Toc513998876 \h 71ДОДАТОК Б Twitter API PAGEREF _Toc513998877 \h 76ДОДАТОК В ?ЛЮСТРАТИВН? МАТЕР?АЛИ PAGEREF _Toc513998878 \h 81ПЕРЕЛ?К СКОРОЧЕНЬBTC – б?тко?нНМ – нейронна мережаПП – програмний продуктMSE – середньоквадратична похибкаВСТУПУ сучасному св?т? ?нформац?я ста? одним з ключових ресурс?в економ?ки, що не поступа?ться, а можливо, ? перевершу? в деяких сферах класичн? ресурси виробництва – працю, землю, кап?тал. Ц?нн?сть ?нформац??, як в?домо, визнача?ться ступенем ?? актуальност?. ?накше кажучи, за ?нших р?вних умов, чим св?ж?ша ?нформац?я, тим вона ц?нн?ша. При цьому вона повинна бути достов?рною ? як можна б?льш точною. ?нформац?я гра? д?йсно ключову роль у формуванн? ринково? ситуац??. У зв'язку з цим особлива увага прид?ля?ться способам отримання достов?рно? ?нформац??, посилю?ться значим?сть прогнозних метод?в. Можлив?сть отримати достов?рну ?нформац?ю наперед да? суб'?кту владу над ситуац??ю, можлив?сть реально впливати на не? ? зм?нювати на свою користь, зводити до м?н?муму ймов?рн?сть настання несприятливих насл?дк?в ? зд?йснювати ризик-менеджмент.В даний час використовуються ? розробляються три пров?дн? напрямки прогнозування валютних курс?в:- техн?чний анал?з;- фундаментальний анал?з;- анал?з економ?чних цикл?в.У дан?й робот? буде розглядатись задача прогнозування криптовалют на основ? саме фундаментального анал?зу.Таким чином, метою дано? роботи ? створення системи прогнозування криптовалюти, ?? реал?зац?я та досл?дження.Для цього розв’язано наступн? задач?:проведено анал?з ?снуючих систем прогнозування, досл?джено ?х основн? етапи роботи;розроблено арх?тектуру системи прогнозування;реал?зовано цю систему у вигляд? програмного продукту.Робота склада?ться з п’яти розд?л?в. В першому розд?л? проводиться загальний огляд задач? прогнозування курсу криптовалют, п?дх?д з використанням фундаментального анал?зу, а також анал?з ?снуючих р?шень. У другому розд?л? розглядаються основн? п?дходи до задач? прогнозування (регрес??). Трет?й розд?л присвячено анал?зу арх?тектури програмного продукту, п?дн?ма?ться питання вибору мови програмування, б?бл?отек для реал?зац?? допом?жних функц?й та алгоритм?в машинного навчання. В цьому розд?л? детально описано алгоритм, за допомогою якого у робот? вир?шу?ться задача прогнозування криптовалюти Четвертий розд?л м?стить практичн? результати роботи системи, анал?з результат?в в залежност? в?д параметр?в системи. У п’ятому розд?л? розгляда?ться перспектива використання даного проекту для створення стартапу.РОЗД?Л 1 АНАЛ?З ЗАДАЧ? ПРОГНОЗУВАННЯ КУРСУ КРИПТОВАЛЮТ1.1 Криптовалюта1.1.1 Загальн? в?домост?Криптовалюта – технолог?я, що дозволя? обм?н ресурсами в електронн?й форм?. ?дея ц??? технолог?? поляга? у тому, що вона виключа? участь регулюючо? сторони, що п?дтримувала би ?нфраструктуру (наприклад, банк) при цьому дозволя? безпечно обм?нюватись ресурсами м?ж незнайомими людьми, що не дов?ряють один одному. Дана ц?ль досяга?ться тим, що роль ведення обл?ку операц?й перекладена з централ?зованих ф?нансових ?нститут?в на мережу автономних комп’ютер?в, що утворюють децентрал?зовану що працю? поза впливом будь-якого ?нституту управл?ння. По сво?й сут? криптовалюти побудован? навколо ?де? ун?версального, незм?нного обл?ку, що ? повн?стю публ?чним ? пост?йно перев?ря?ться мережею потужним комп’ютер?в, як? працюють незалежно один в?д одного. [1] Найчаст?ше криптовалюти мають плаваючий курс до нац?ональних валют та м?ж собою. Bitcoin - перша, найб?льш популярна ? дорога криптовалюта. Ма? неоф?ц?йний статус ?криптозолота?. Перш? к?лька рок?в вс? нов? валюти базувалися на блокчейн? б?тко?на. Тобто, були fork (в?дгалуженням) першо? в св?т? криптовалюти. Вс? криптовалюти, кр?м б?тко?на також називають альтко?ни [2].Перевагами криптовалюти ?:В?дкрит?сть коду. Завдяки цьому забезпечуються р?вн?сть вс?х учасник?в мереж?, система ? прозорою для вс?х ? кожен може добувати монети;Анон?мн?сть. Пор?внюючи з? звичайними електронними переказами грошима, операц?? з якими можуть бути в?дсл?дкован? державними органами, д?знатись ?нформац?ю про господаря криптовалютного гаманця не так просто – в кращому випадку доступна лише адреса гаманця ? дан? про транзакц??. Б?льш сучасн? криптовалюти (Monero, ZCash) нав?ть забезпечують анон?мн?сть транзакц?й;Децентрал?зац?я. Криптовалюта ? незалежною валютою. ?? ем?с?я ? правила транзакц?й регулюються в?дкритим кодом програм, що встановлен? на комп’ютерах мереж?;Обмежен?сть. Як правило, ем?с?я криптовалюти обмежена деякими наперед встановленими математичними правилами, що виключа? ?нфляц?ю спричинену активн?стю ем?тента;Над?йн?сть. На даний момент зламати чи п?дробити транзакц?? вважа?ться неможливим.Недол?ками ?:В?дсутн?сть гарант?й. Користувач? персонально несуть в?дпов?дальн?сть за сво? гаманц?. Так як регулюючи ?нститути в?дсутн?, то ? арб?траж в раз? крад?жки ? неможливим;Волатильн?сть. Курс криптовалюти ? непередбачуваним, залежить виключно в?д поточного попиту, який, може залежати в?д дуже велико? к?лькост? зовн?шн?х чинник?в: пол?тичних, економ?чних, ?нформац?йних;Ризик заборони. До цього часу не ма? однозначно? довготривало? позиц?? багатьох держав до криптовалют. Деяк? кра?ни ввели обмеження щодо ?? використання;Небезпека втрати. Доступ до електронних грошей зд?йсню?ться за допомогою спец?ального ключа, у раз? його втрати ?Ключем? доступ до кошт?в буде втрачений назавжди.1.1.2 ?стор?я У 1983 роц? американський криптограф Дев?д Чаум задумав анон?мн? криптограф?чн? електронн? грош?, як? називалися ecash [3]. П?зн?ше, в 1995 роц?, в?н вт?лив задум у вигляд? Digicash – ранню форму криптограф?чних електронних платеж?в, яка вимагала програмного забезпечення користувача для вилучення банкнот ? призначення певних зашифрованих ключ?в, перш н?ж в?н м?г бути в?дправлений одержувачу [4]. Це дозволило цифров?й валют? бути невидимою для банка-ем?тента, уряду чи трет?й сторон?.У 1996 роц? NSA опубл?кувала статтю ?Як зробити монетний дв?р: криптограф?я анон?мних електронних грошових кошт?в? [5], яка опису? систему криптовалюти, вперше опубл?ковану в списку розсилки MIT, а пот?м у 1997 роц? в ?The American Law Review? (т. 46 , Випуск 4).У 1998 роц? Вей Дай опубл?кував опис "b-money" [6], анон?мно? розпод?лено? електронно? системи гот?вки. Незабаром п?сля цього Н?к Сабо створив "Bit Gold" [7]. Як ? б?ткойн та ?нш? криптовалюти, як? сл?дують за ним, Bit Gold була електронною валютною системою, яка вимагала в?д користувача завершення proof-of-work функц?? з р?шеннями, як? криптограф?чно складаються та публ?куються . Валютна система, що базу?ться на багаторазовому proof-of-work, була п?зн?ше створена Галь Фн?н?, яка стежила за роботою Дай ? Сабо.Перша децентрал?зована криптовалюта, б?ткойн, була створена в 2009 роц? псевдон?мом розробника Сатоши Накамото [8]. Вона використовувала SHA-256, криптограф?чну хеш-функц?ю, як свою proof-of-work схему. У кв?тн? 2011 року було створено Namecoin як спробу створення децентрал?зовано? DNS [9], що дозволить зробити ?нтернет-цензуру дуже складною. Незабаром п?сля жовтня 2011 року був анонсований Litecoin [10]. Це була перша усп?шна криптовалюта, яка використовувала Script як свою хеш-функц?ю зам?сть SHA-256. ?нша пом?тна криптовалюта, Peercoin була першою, що використовувала г?брид proof-of-work / proof-of-stake [11]. IOTA була першою криптовалютою, яка не була заснована на блокчейн?, а зам?сть цього використову? Tangle [12]. Побудований на спец?альному блоц?, Проект Divi дозволя? легко обм?нюватися м?ж валютами з електороного гаманця та нада? можлив?сть використовувати особисту ?дентиф?кац?йну ?нформац?ю для транзакц?й. Було створено багато ?нших криптовалют, що були неусп?шними, оск?льки вони не привели до техн?чних ?нновац?й. 6 серпня 2014 року Великобритан?я оголосила, що казначейству було доручено провести досл?дження криптовалют, яку роль вони зможуть грати в економ?ц? Великобритан?? та чи сл?д розглядати регулювання.Джордж Келл?, засновник компан?? Robocoin, 20 лютого 2014 року запустив перший банкомат Bitcoin у Сполучених Штатах. К?оск, встановлений в Ост?н?, штат Техас схожий на банк?вськ? банкомати, але ма? сканери, щоб прочитати ?дентиф?кац?ю, видану державою, таку як вод?йськ? права або паспорт для п?дтвердження ?дентичност? користувач?в. До вересня 2017 року було встановлено 1574 б?ткойн-банкомат?в по всьому св?ту з середньою платою 9,05%. У вересн? 2017 року в день було встановлено в середньому по 3 банкомату.В?домо, що сам терм?н криптовалюта (cryptocurrency) вперше був використаний у матер?ал? Forbes про Bitcoin в 2011-му роц?. В?н так приглянувся ? до читач?в, ? поклонникам ново? в?ртуально? валюти, що незабаром почав характеризувати всю цю н?шу.1.2 Анал?з актуальност? задач? прогнозування курсу криптовалютКриптовалюта – один з найнов?ших, найменш вивчених ? найпрост?ших способ?в ?нвестування ф?нанс?в, все б?льше людей, як? хочуть вкладати кошти в цю галузь для отримання доходу. Проводити транзакц?? у криптовалют? може будь-хто з доступом до комп’ютеру з ?нтернетом. Таку популярн?сть можна пояснити також популярн?стю обговорення ц??? тему в мереж? ?нтернет. Останн?м часом з’явилось дуже багато ресурс?в, що пропонують пасивний дох?д в?д криптовалюти без вашо? участ?. Не дивлячись на висок? ризики ?нвестування, з кожним днем б?льше людей готов? випробувати сво? навички, оск?льки потенц?йний виграш можна пор?вняти з виграшем у лотерею.Найв?дом?ша криптовалюта б?тко?ни в грудн? 2017 перевищила значення в $11 000 з сумарною кап?тал?зац??ю в б?льш н?ж $2 000 000 000. Ц?кавою особлив?стю ем?с?? б?тко?на ? те, що к?льк?сть монет обмежена з самого початку, тобто кожен новий згенерований б?тко?н зменшу? к?льк?сть монет, що залишилися. Так? правила дозволяють рости курсу б?тко?на. Через активне ?нвестування кошт?в в б?тко?н, почина? процв?тати весь ринок криптовалюти, включаючи альтернативн? криптовалюти – альтко?ни.У зв'язку з р?зким зростанням б?тко?ну протягом останнього часу, все б?льше людей готов? ризикувати сво?ми коштами заради потенц?йного зароб?тку. Криптовалютн? торги привертають все б?льше нових спекулянт?в – як нових людей у трейдингу, так ? тих хто ран?ше займався торг?влею акц?ями чи нац?ональними валютами.Значна л?кв?дн?сть цифрово? валюти приводить до створення все б?льшо? к?лькост? нових криптовалют. Зараз на ринку присутн? б?льше тисяч? токен?в р?зних криптовалют. Однак, б?льш?сть криптовалют не користуються попитом, оск?льки н?чим техн?чно не в?др?зняються в?д попередник?в ? мають непереконливу кап?тал?зац?ю. Курс нових криптовалют в б?льшост? залежить в?д маркетингу, що да? можлив?сть передбачити ?х курс за допомогою анал?зу зовн?шн?х чинник?в.Розумн? вкладення в криптовалюти здатн? принести велик? див?денди. Для того, щоб заробити на криптовалютному трейдингу необх?дно вм?ти правильно спрогнозувати майбутн?й рух ц?н.1.3 Анал?з ?снуючих п?дход?в до вир?шення задач? прогнозування курсу криптовалют1.3.1 WalletinvestorКомпан?я пропону? коротко або довгостроковий прогноз курсу криптовалют на сайт? . Методи, використан? для прогнозу не розголошуються та ? комерц?йними. Вигляд сайту продемонстровано на рисунках 1.1 та 1.2.Рисунок 1.1 - Вигляд сайту с прогнозами WalletinvestorРисунок 1.2 - Вигляд сайту Walletinvestor з прогнозами щодо Bitcoin1.3.2 BelinvestorКомпан?я пропону? т?льки короткостроковий прогноз криптовалют на сайт? . Методи, використан? для прогнозу також не розголошуються ? ? комерц?йними. Вигляд сайту продемонстровано на рисунках 1.3 та 1.4.Рисунок 1.3 - Вигляд сайту с прогнозами BelinvestorРисунок 1.4 - Вигляд сайту Belinvestor с прогнозами щодо Bitcoin1.3.3 NeuroShell.Це спец?ал?зований нейропакет, призначений спец?ально для прогнозування ф?нансових ринк?в. Така пол?тика розробник?в зумовила дружн?й для сприйняття ?нтерфейс ? можлив?сть працювати з нейронними мережами без навичок програмування. Перевагою NeuroShell Day Trader ? той факт, що в ньому реал?зований принцип оптим?зац?? з використанням генетичних алгоритм?в. Це дозволя? заощадити багато машинного часу, що ран?ше витрачався на п?дб?р найкращих параметр?в того чи ?ншого ?ндикатора, на анал?з того чи ?ншого входу нейронно? мереж?.NeuroShell Day Trader концентру?ться на побудов? торгово? системи. Сама ж торгова система може використовувати в сво?х правилах як ?ндикатори, так ? спрогнозован? значення, отриман? за допомогою нейронних мереж. Сам процес побудови нейронних мереж досить простий, однак жоден з ключових етап?в побудови нейронно? мереж? залиша?ться в т?н?. Основна арх?тектура, яка використову?ться в NeuroShell Day Trader – багатошаровий персептрон.1.3.4 TraderСистема дозволя? прогнозувати рух курс?в валют на валютн?й б?рж?. В якост? вих?дних використову?ться ?нформац?я за попередн?ми результатами торг?в (часовий ряд) - максимальна, м?н?мальна ц?на, ц?на закриття ? обсяг угод за день. В систем? використовуються наступн? алгоритми для анал?зу даних: ковзне середн? (moving average) 3 вид?в: л?н?йне, експоненц?альне, з вагами;MACD - г?стограми, так? популярн? ?ндикатори як RSI, OBV, Williams R%, CandleSticks, Point & Figure ? багато ?нших. Користувач може створювати власн? формули для анал?зу даних. До переваг також можна в?днести можлив?сть застосування ?ндикатора до вже побудованого ?ндикатору, що наприклад потр?бно при побудов? MACD-г?стограми, де ковзне середн? обчислю?ться для р?зниц? двох ковзних середн?х. 1.3.5 ELLIOTT WAVE ANALYSER PROFESSIONALПрограмний продукт призначений для анал?зу валютного ринку з використанням принцип?в хвиль Елл?отта, а також за допомогою стандартних алгоритм?в техн?чного анал?зу. У 1930 роц? Ральф Елл?отт виявив, що емоц?йний стан натовпу вплива? на курси валют, ? цей вплив опису?ться дек?лькома зразками, як? тепер в?дом? як хвил? Елл?отта.Програмний продукт дозволя? вид?ляти з тимчасового ряду незак?нчен? зразки, як? можна в?днести (певною м?рою, звичайно) до зразк?в хвиль Елл?отта. Оск?льки повед?нка стандартних хвиль Елл?отта вивчена, то можна зробити прогноз щодо подальшого розвитку цих незак?нчених зразк?в. Для кожного ?з зразк?в (зак?нчених ? незак?нчених) система обчислю? коеф?ц??нт Goodness, зм?нюваний в?д 0 до 100, який ? визнача? ступ?нь близьк?сть досл?джуваного зразка до теоретичного аналогу.Одним з важливих параметр?в анал?зу ? к?льк?сть м?ток - число в?др?зк?в ламано?, яка апроксиму? досл?джуваний зразок. Користувач може задати щ?льн?сть розпод?лу м?ток. Як правило, до к?нця досл?джуваного пром?жку часу сл?д зб?льшити щ?льн?сть розпод?лу м?ток.П?сля робиться анал?з кожно? з отриманих хвиль (тип, розм?р, завершен?сть) ? даються сигнали входу або виходу з ринку для коротких або довгих позиц?й.Дан? про курси можна об'?днувати в групи. Тод? п?сля анал?зу валюти, за якими були згенерован? сигнали входу ? / або виходу, вид?ляються кольором (червоний - вих?д, син?й - вх?д). Користувач може налаштовувати параметри, за якими визначаються критер?? виходу ? входу.У раз? роботи в режим? on-line, програма автоматично виробля? перерахунок хвиль, пер?од якого зада? користувач.Поряд з анал?зом за методом Елл?отта, користувач може сам написати будь-який алгоритм ?ндикатора на будь-як?й мов? програмування, ? обчислений ?ндикатор висв?чуються на тому ж граф?ку, що ? вих?дн? дан?. На один ? той же граф?к можна накласти багато ?ндикатор?в, що дозволя? одночасно бачити ?х показання.Користувач може задати д?апазон анал?зованих даних по датах, а п?сля анал?зу пор?вняти реальн? а передбачен? результати.В систем? ? докладна дов?дкова система з теоретичним описом принципу Елл?отта, а також розд?л Guided Tour, який проводить користувача через вс? етапи анал?зу даних по методу Елл?отта. На жаль демо-верс?я програми анал?зу? т?льки сво? власн? приклади.1.3.6 AINETДля прогнозування под?й використовуються нейронн? мереж?. Для анал?зу часових ряд?в дана програма мало придатна, але да? хорош? результати для багатьох завдань, де треба ?нтерполювати дан?. Поган? результати виходять при екстраполяц?? даних.Параметр анал?зу – penalty coefficient, який програма сама ж ? оптим?зу?. В якост? вих?дних даних виступа? прямокутна матриця з повн?стю присутн?ми даними ? матриця з тим же к?льк?стю стовпц?в, але в як?й ма? м?сце в?дсутн?сть деяких даних. Програма намага?ться передбачити значення цих в?дсутн?х даних.До недол?к?в програми ? те, що вона працю? за методом "чорно? скриньки", не даючи користувачев?, не знайомому з нейронними мережами, зрозум?ти алгоритм прогнозування.1.4 Фундаментальний анал?з та його використання при роз’язанн? задач? прогнозування курсу криптовалютФундаментальний анал?з – це метод оц?нки ризику ?нвестиц??, спроба вим?ряти ?? справжню ц?нн?сть, вивчаючи в?дпов?дн? економ?чн?, ф?нансов? та ?нш? як?сн? та к?льк?сн? фактори. Фундаментальн? анал?тики вивчають все те, що може вплинути на ризик ?нвестиц??, включаючи макроеконом?чн? чинники, так? як загальна економ?ка та галузева обстановка. К?нцевою метою фундаментального анал?зу ? вироблення к?льк?сного значення, що вказу? на недооц?нен? чи переоц?нен? вартост? ресурсу [13].Варт?сть в?ртуальних монет встановлю?ться ринковим шляхом. Чим б?льше попит на певну криптовалюту, тим вище ?? курс. Попит же в свою чергу залежить в?д тих переваг, як? пропону? монета. Якщо завтра BTC зроблять оф?ц?йною валютою в Кита?, то ?? варт?сть ?злетить до небес?. Попит форму?ться на тл? новин, нових розробок, анонс?в компан?й. Популярн?сть криптовалют, реклама та хорош? новини також ? ознакою швидкого зростання курсу б?тко?ну або будь-якого ?ншо? криптовалюти. Чим б?льше людей зна? про товар, тим б?льше людей захочуть вкласти в нього сво? грош? або грати на б?рж?.Кр?м того, на р?ст курсу б?тко?на вплива? розповсюдження само? цифрово? валюти. В останн?й час б?тко?н отримав масов? реклами у вс?х св?тових засобах масово? ?нформац??, що безумовно сприяло зростанню курсу.Бувають спекулятивн? стрибки в курс? - так зван? ?дампи? ? ?пампи?. ?х провокують велик? трейдери на б?ржах з метою зароб?тку. ?х не особливо ц?кавить, ск?льки кошту? монета. За рахунок велико? к?лькост? актив?в, вони здатн? створювати короткостроковий вплив на курс.1.4.1 Прикладне використання фундаментального анал?зу для задач? прогнозування курсу криптовалютОск?льки курс криптовалют залежить виключно в?д попиту людей, то одним з? способ?в прогнозування курсу ? к?льк?сна оц?нка цього попиту та подальший анал?з впливу попиту на ц?ну криптовалюти. Висновки про попит ? популярн?сть т??? чи ?ншо? криптовалюти можна зробити використовуючи дан? про те, як часто дана тема обговорю?ться у ?нтернет?, наприклад, один з таких показник?в – к?льк?сть пост?в з? згадуванням в?дпов?дно? криптовалюти у соц?альн?й мереж? Twitter.З переваг цього показнику можна вид?лити наступн?:? к?льк?сним;техн?чно доступний для отримання чи обчислення;просто використовувати у математичних моделях. Серед недол?к?в можна вид?лити наступн?:доступ платний;доступ обмежений по сумарн?й к?лькост? отримано? ?нформац?? та швидкост? отримання (к?льк?сть запит?в у хвилину).Виходячи з наведеного анал?зу ? сутт?вих недол?к?в аналог?в у дан?й робот? використову?ться саме такий п?дх?д. Доступ до даних в?дбува?ться через Twitter API. Twitter API – платний серв?с по отриманню даних с соц?ально? мереж? Twitter, що да? змогу отримувани, агрегувати та шукати ?нформац?ю серед тв?т?в користувач?в. Повна верс?я Twitter API, що була використана у робот? наведена у додатку Б.1.5 Формал?зац?я постановки задач? досл?дженняРозв’язувана задача зводиться до наступно? формально? математично? модел?:R*=R*d, Rd-df, Rd-df-1, …, Rd-df-dmr, Td-df, Td-df-1, …, Td-df-dmt,де R*-прогнозований курс б?тко?на,d-дата прогнозу в днях, R-реальний курс б?тко?на, T-к?льк?сть пост?в у Twitter з? згадуванням bitcoin за день,df- день прогнозу, dmr-к?льк?сть дн?в за як? подаються дан? реального курсу,dmt-к?льк?сть дн?в за як? подаються дан? з Twitter.Висновки до розд?луЗадача прогнозування курсу криптовалют ? достатньо новою, ма? ряд под?бностей до задач? прогнозування курсу валют, але ма? ? сутт?в? в?дм?нност?. На ринку присутн? р?шення дано? задач?, проте зазвичай вони представлен? у вигляд? комерц?йного серв?су ? не розкривають детал? реал?зац??. Вплив соц?уму на курс криптовалют ? достатньо сутт?вим, проте слабо проанал?зованим з математично? перспективи. На ринку криптовалют присутн? багато спекулятивних та “хайпових” тренд?в, що зумовлен? реакц??ю соц?уму на деяк? явища.РОЗД?Л 2 МАТЕМАТИЧН? ОСНОВИ ДЛЯ ЗАДАЧ? ПРОГНОЗУВАННЯ КУРСУ КРИПТОВАЛЮТ2.1 Задача регрес??У статистичному моделюванн? регрес?йний анал?з явля? собою наб?р статистичних процес?в для оц?нки сп?вв?дношень м?ж зм?нними. В?н включа? в себе багато метод?в для моделювання та анал?зу к?лькох зм?нних, коли фокус робиться на вза?мозв'язку м?ж залежною зм?нною та одн??ю чи б?льше незалежними зм?нними. Б?льш конкретно, регрес?йний анал?з допомага? зрозум?ти, як зм?ню?ться типове значення залежно? зм?нно? (або "зм?нно? критер?ю"), коли будь-яка з незалежних зм?нних зм?ню?ться, тод? як ?нш? незалежн? зм?нн? ф?ксуються.Найчаст?ше регрес?йний анал?з оц?ню? умовне оч?кування залежно? зм?нно? за незалежними зм?нними, тобто середн? значення залежно? зм?нно?, коли незалежн? зм?нн? ф?ксуються. Р?дше, основна увага прид?ля?ться квантилю або ?ншому параметру розташування умовного розпод?лу залежно? зм?нно? за незалежними зм?нними. У вс?х випадках повинна бути оц?нена функц?я незалежних зм?нних, що називаються функц??ю регрес??. У регрес?йному анал?з? також представля? ?нтерес для характеристики вар?ац?? залежно? зм?нно? навколо передбачення функц?? регрес?? з використанням розпод?лу ймов?рност?. Регрес?йний анал?з широко використову?ться для прогнозування та передбачення, де його використання сутт?во зб?га?ться з областю машинного навчання. Анал?з регрес?? також використову?ться для того, щоб зрозум?ти, як? з незалежних зм?нних пов'язан? ?з залежною зм?нною, а також досл?джувати форми цих в?дносин. У обмежених умовах регрес?йний анал?з може бути використаний для виявлення причинних зв’язк?в м?ж незалежними та залежними зм?нами. Однак це може призвести до ?люз?й або помилкових в?дносин, наприклад, сп?вв?дношення не п?дтверджу? причинност? [14].Розроблено багато метод?в проведення регрес?йного анал?зу. Знайом? методи, так? як л?н?йна регрес?я та звичайна регрес?я найменших квадрат?в, ? параметричними, оск?льки функц?я регрес?? визнача?ться в терм?нах к?нцевого числа нев?домих параметр?в, як? оц?нюються за даними. Непараметрична регрес?я в?дноситься до метод?в, що дозволяють функц?онувати регрес?йн? функц?? в заданому набор? функц?й, як? можуть бути неск?нченновим?рними.Д?я метод?в регрес?йного анал?зу на практиц? залежить в?д форми процесу створення даних ? в?д того, як вона в?дноситься до використовуваного п?дходу регрес??. Оск?льки справжня форма процесу створення даних, як правило, не в?дома, анал?з регрес?? часто певною м?рою залежить в?д прийняття припущень щодо цього процесу. Ц? припущення ?нод? можна перев?рити, якщо ? достатня к?льк?сть даних. Модел? регрес?? для прогнозування часто корисн? нав?ть тод?, коли припущення пом?рно порушуються. Проте у багатьох програмах, особливо з малими ефектами або питаннями причинност? на основ? даних спостережень, методи регрес?? можуть дати оманлив? результати.У вужчому сенс? регрес?я може конкретно посилатися на оц?нку безперервних (залежних) зм?нних, на в?дм?ну в?д дискретних зм?нних, що використовуються при класиф?кац??. Випадок безперервно? залежно? зм?нно? може бути б?льш конкретно названий метричною регрес??ю, щоб в?др?знити ?? в?д пов'язаних проблем.2.2 Нейронн? мереж?2.2.1 ОзначенняПраця над штучними нейронними мережами, як? зазвичай називають просто "нейронними мережами" була мотивована в?д самого початку, як стало зрозум?ло, що розрахову? людський мозок працю? зовс?м ?накше, н?ж звичайний цифровий комп'ютер. Мозок ? дуже складним, нел?н?йним ? паралельним комп'ютером (системою обробки ?нформац??). Це да? можлив?сть орган?зувати структурн? компоненти, в?дом? як нейрони, так, щоб виконати певн? обчислення (наприклад, розп?знавання образ?в, сприйняття та керування двигуном) в багато раз?в швидше, н?ж найшвидший цифровий комп'ютер, ?снуючий сьогодн?. Розглянемо, наприклад, людський з?р, який викону? задачу обробки ?нформац??. Це функц?я в?зуально? системи, потр?бна для забезпечення представлення оточення навколо нас ?, б?льш важливо, щоб надати ?нформац?ю, яку нам потр?бно для вза?мод?? з навколишн?м середовищем. Щоб бути конкретним, мозок зазвичай викону? завдання розп?знавання перцептора (наприклад, розп?знавання знайомого обличчя) приблизно в 100-200 мс, тод? як задач? набагато меншо? складност? виконують набагато довше на потужних комп'ютерах. Для вилучення вс??? ц??? ?нформац?? необх?дн? складн? нейронн? обчислення. Як тод? робить це людський мозок або мозок кажана? При народженн? мозок вже ма? значну структуру та здатн?сть створювати власн? правила повед?нки через те, що ми зазвичай назива?мо "досв?дом". Д?йсно, досв?д накопичений з часом ? велика частина розвитку людського мозку, що в?дбува?ться п?д час перших двох рок?в в?д народження, але розвиток продовжу? й далеко за меж? цього етапу.В загальному вигляд?, нейронна мережа – це машина, призначена для моделювання способу в якому мозок викону? певне завдання чи функц?ю, що представля? ?нтерес; зазвичай мережа реал?зована за допомогою електронних компонент?в або моделю?ться в програмному забезпеченн? на цифровому комп'ютер? [15]. Щоб досягти високо? продуктивност?, нейронн? мереж? використовують масове з'?днання простих обчислювальних осередк?в, що називаються "нейронами" або "оброблювальними одиницями". Таким чином, ми можемо дати наступне визначення: нейронна мережа - це масово паралельно розпод?лений процесор, що склада?ться з простих одиниць обробки, що ма? природну схильн?сть збер?гати експериментальн? знання та зробити ?х доступними для використання. В?н схожий на мозок у двох аспектах:- знання набува? мережа в?д навколишнього середовища через процес навчання;- сильн? сторони зв'язку, в?дом? як синаптичн? ваги, використовуються для збер?гання придбаного знання.Процедура, що використову?ться для виконання навчального процесу, назива?ться алгоритмом навчання, функц?я яко? поляга? в тому, щоб зм?нити синаптичн? ваги мереж? для досягнення бажано? проектно? мети.Модиф?кац?я синаптичних ваг забезпечу? традиц?йний метод проектування нейронних мереж. Однак також можливим для нейронно? мереж? ? модиф?кац?я власно? тополог??, що мотиву?ться тим, що нейрони в людському мозку можуть померти, а нов? синаптичн? зв'язки можуть зрости.Очевидно, що нейронна мережа отриму? свою обчислювальну потужн?сть через, по-перше, ?? масовано паралельно розпод?лену структуру ?, по-друге, ?? здатн?сть навчатися ? узагальнювати патерни. Узагальнення в?дноситься до вм?ння обчислити виходи мереж? для вход?в, що не зустр?чались п?д час навчання. 2.3 ARIMA ?з зовн?шн?ми регресорамиМодель ARIMA може розглядатися як особливий тип регрес?йно? модел? - в як?й залежна зм?нна була стац?онарна, а незалежн? зм?нн? - це вс? в?дставання залежно? зм?нно? та / або в?дставання помилок, тому в принцип? це просто - розширити модель ARIMA, щоб включити ?нформац?ю, що м?ститься за допомогою пров?дних ?ндикатор?в та ?нших зовн?шн?х зм?нних: ви просто дода?те один або дек?лька регресор?в до р?вняння прогнозування [16].Кр?м того, ви можете подумати про г?бридну модель ARIMA / регрес?? як модель регрес??, яка включа? в себе корекц?ю для автокорельованих помилок. Якщо ви встановили модель багаторазово? регрес?? та виявили, що ?? залишков? д?лянки ACF та PACF в?дображають ?дентиф?ковану авторегресивну або рухоме середн? "Signature" (наприклад, деяк? ?стотн? шаблони автокореляц?й та / або часткових автокореляц?й у перш? к?лька лаг?в та / або сезонне в?дставання), то ви можете розглянути питання про додавання терм?н?в ARIMA (в?дставання залежно? зм?нно? та / або помилок) до модел? регрес??, щоб виключити автокореляц?ю та додатково зменшити середню квадратну помилку. Для цього ви просто зм?ните модель регрес?? як модель ARIMA з регрессорами, ? ви вкажете в?дпов?дн? терм?ни AR та / або MA, щоб в?дпов?дати модел? автокореляц??, яку ви спостер?гали в ориг?нальних залишках [17].Найб?льш високотехнолог?чне програмне забезпечення для прогнозування пропону? одне або дек?лька вар?ант?в об'?днання функц?й ARIMA та дек?лькох моделей регрес??. У процедур? прогнозування в Statgraphics ви можете зробити це, вказавши "ARIMA" як тип модел?, а пот?м натиснувши кнопку "Regression", щоб додати регресор?в. (На жаль, у вас обмежено до 5 додаткових регрессор?в.) Коли ви дода?те регресор?ю до модел? ARIMA в Statgraphics, це буквально просто дода? регрезор до право? сторони р?вняння прогнозування ARIMA. Щоб скористатися простим прикладом, припустимо, ви вперше п?дходите до модел? ARIMA (1,0,1) без регресоров. Тод? р?вняння прогнозування, яке встановлено Statgraphics, ?:що може бути переписано якТепер, якщо до модел? прогнозування додати регресор X, то р?вняння, встановлене Statgraphics, буде:Таким чином, AR-частина модел? (а також диференц?йоване перетворення, якщо таке ?) застосову?ться до зм?нно? X точно так само, як це застосову?ться до перем?нно? Y до X, помножене на коеф?ц??нт регрес??. Це фактично означа?, що модель ARIMA (1,0,1) п?дходить для помилок регрес?? Y у X (тобто сер?? "Y м?нус бета X").2.4 Оц?нка якост? побудовано? модел?Для оц?нки модел? пропону?ться 3 критер??:MSE – середньоквадратична похибка;R^2 – коеф?ц??нт детерм?нац??;SR – Success rate, процент вгаданих тренд?в.Трет?й критер?й в?дпов?да? в?дношенню усп?шно вгаданих стрибк?в курсу до ус?х стрибк?в курсу. Нехай T (Tries) – к?льк?сть дн?в, для яких алгоритм прогнозував зм?ну курсу б?льш н?ж в eps раз?в, а ST (Successful tries)– та к?льк?сть дн?в ?з них, для яких реальний тренд курсу сп?впав з прогнозованим. Тод?:SR=STT*100%Даний критер?й набува? значень в?д 0% до 100%. Чим б?льше – тим краще.Також модель можна оц?нити як?сно за наданими граф?ками похибки та граф?ками з одночасним в?дображенням прогнозованих значень та реальних.Висновки до розд?луДля задач? регрес?? пропону?ться багато р?зних математичних моделей, кожна ма? сво? сильн? ? слабк? сторони. Основними моделями, що можуть застосовуватись до задач? прогнозування курсу криптовалют ? нейромереж? та ARIMA ?з зовн?шн?ми зм?нними.РОЗД?Л 3 АРХ?ТЕКТУРА ПРОГРАМНОГО ПРОДУКТУ3.1 Виб?р мови програмуванняPython – це високор?внева ?нтерпретована динам?чна мова програмування. Синтаксис в Python допомага? програм?стам писати менше коду у пор?внянн? з Java або C ++. Мова створена в 1991 роц? розробником Гв?до Ван Россумом. Python широко використову?ться в великих орган?зац?ях завдяки п?дтримц? численних парадигм програмування (включаючи ?мперативне, об'?ктно-ор??нтоване та функц?ональне програмування), автоматичному керуванняю пам'яттю та велик?й к?лькост? б?бл?отек.Python ма? найвищ? показники в останн? роки над ?ншими мовами програмування, такими як C, C ++ ? Java, ? широко використову?ться програм?стами. Мова Python ма? р?зноман?тне застосування в компан?ях з розробки програмного забезпечення, наприклад в ?грових пристроях, веб застосунках, при створенн? прототип?в, додатк?в для граф?чного дизайну, тощо.3.2 Модул? та б?бл?отекиДля машинного навчання (навчання класиф?катора) у мов? Python ? багато б?бл?отек. Було вир?шено обрати б?бл?отеку “scipy” через велику к?льк?сть реал?зованих класиф?катор?в у н?й, що в?дкри? великий прост?р для п?дбору кращого методу класиф?кац??. SciPy – це б?бл?отека для Python, що м?стить велику к?льк?сть наукових ?нструмент?в. SciPy включа? операц?? по робот? з оптим?зац??ю, ?нтегруванням, функц?? обробки сигнал?в, зображень, роботу з генетичними алгоритмами, диференц?альними р?вняннями, тощо. 3.3 Алгоритм роботиАлгоритм прогнозування отриму? на вх?д натупн? дан?:по-добову статистику: дата d, курс б?тко?на R, к?льк?сть пост?в у Twitter з? словом bitcoin T;пер?од на який потр?бно спрогнозувати курс - dfпер?од навчання мереж? без прогнозування (використову?ться значення 60 дн?в);к?льк?сть дн?в за як? статистика по курсу/к?лькост? пост?в буде подаватись на входи нейронно? мереж? dfr та dft.Вх?дн? дан? нормал?зуються, форматуються та подаються у правильному порядку та к?лькост? у регресор. Регресор навча?ться та прогнозу? значення у режим? емуляц?? реального часу, тобто по так?й схем?:Додаються дан? за день di, проводиться навчання регресора.Обчислю?ться прогноз за день di+df.Викону?ться п.1 для di=di+1.Пункт 2 пропуска?ться перших 60 дн?в для початкового навчання регресора.На виход? система нада? граф?к з одночасним в?дображенням прогнозу курсу б?тко?на та реальними значеннями, також ПП обчислю? значення критер??в оц?нки результату зазначених в п 2.4.3.4 Виб?р модел? регресораП?д час вибору алгоритму машинного навчання була вибрана нейронна мережа з наступних причин:нейронн? мереж? добре п?дходять для пошуку нел?н?йних залежностей;структуру нейронно? мереж? можна легко зм?нювати в?д просто? одношарово? з невеликою к?льк?стю нейрон?в, до складних тополог?й з велико? к?льк?стю прихованих шар?в та великою к?льк?стю нейрон?в;перцептрон без прихованих шар?в з л?н?йною функц??ю активац?ю ? л?н?йною моделлю, тобто нав?ть л?н?йна залежн?сть у даних може бути добре змодельована за допомогою нейронно? мереж?;виходячи з результат?в досл?джень та змагань, нейронн? мереж? дають точн?ш? результати н?ж ?нш? модел? у б?льшост? випадк?в;у ход? анал?зу робити системи були виявлен? залежност? у даних, що не ? л?н?йними ? погано апроксимуються л?н?йною моделлюнаявн?сть велико? к?лькост? ефективних ? легких у використанн? безкоштовних б?бл?отек по робот? з нейронними мережами.Висновки до розд?луВ третьому розд?л? розглянутий алгоритм роботи системи, обгрунтований виб?р мови програмування та б?бл?отек, що використовувались при розробц? системи. Також був проведений анал?з типових математичних моделей регресор?в, що використовуються для под?бних задач ? прийнято р?шення на користь використання нейронно? мереж?.РОЗД?Л 4 АНАЛ?З ПРАКТИЧНИХ РЕЗУЛЬТАТ?В4.1 Анал?з алгоритму роботи системиВ ход? запуску системи з р?зними параметрами було проанал?зовано вплив параметр?в та тополог?? нейронно? мереж? на як?сть результату.Таблиця 4.1 – пор?вняння р?зних тополог?й НМ№Тополог?я НМSRMSER^2Time, s110050%7569430.850.92100, 200, 10056%6567380.882.33100, 200, 500, 200, 10067%6806450.878.84100, 200, 500, 1000, 500, 200, 100100%6400720.943.0Таким чином оптимальним за сп?вв?дношенням як?сних показник?в ? часу роботи системи для подальшого анал?зу був обраний вар?ант №3. Для реальних систем ? сенс розглянути роботу системи на б?льш потужних компонентах та досл?дити складн?ш? тополог??.Також проведено анал?з результат?в в залежност? в?д параметр?в dfr та dft, що впливають на к?льк?сть ознак на вход? нейронно? мереж?.Таблиця 4.2 – пор?вняння роботи системи в залежност? в?д к?лькост? ознак№ dft dfrSRMSER^211083%6465530.8826088%6688000.87313067%6451850.88413175%6510370.88513675%6686900.8861313100%6835540.89Виходячи з результат?в було обрано вар?ант №6 з найб?льшою к?льк?стю даних.4.2 Анал?з якост? роботи системиДля тестування системи вибран? дан? про курс б?тко?на та к?льк?сть пост?в у Тв?ттер? з 30 травня 2013 по 30 грудня 2017. Результати наведен? у таблиц? 4.3.Таблиця 4.3 – результати роботи ПП№Вх?дн? параметриВих?дн? дан?df?TSRMSER^2110.23063%1015290.98270.251479%2818970.953140.23379%6579060.884300.35100%15193610.73Результат для набор?в даних 1, 2, 3, 4 в?дображений в?дпов?дно на рисунках 4.1, 4.2; 4.3, 4.4; 4.5, 4.5; 4.6, 4.7. На рисунках результат?в ос? ординат в?дпов?да? курс б?тко?на в доларах США, ос? абсцис – дати в?д 30 травня 2013 (0.0) до 30 грудня 2017 (1.0), червоним зображено реальний курс б?тко?на, син?м – курс, що прогнозу? система. На рисунках похибок ос? ординат в?дпов?дають в?дносн? похибки в процентах, ос? абсцис – дати в?д 30 травня 2013 (0.0) до 30 грудня 2017 (1.0).Рисунок 4.1 – Результати роботи систему на набор? даних 1Рисунок 4.2 – Похибка системи на набор? даних 1Рисунок 4.3 – Результати роботи систему на набор? даних 2Рисунок 4.4 – Похибка системи на набор? даних 2Рисунок 4.5 – Результати роботи систему на набор? даних 3Рисунок 4.6 – Похибка системи на набор? даних 3Рисунок 4.7 – Результати роботи систему на набор? даних 4Рисунок 4.8 – Похибка системи на набор? даних 4Висновки до розд?луВ четвертому розд?л? проанал?зована робота розроблено? системи для прогнозу курсу б?тко?на за допомогою соц?альних даних з мереж? Twitter. Було розглянуто так? основн? питання:наведено результати роботи алгоритму та проведено ?х анал?з;проведено анал?з роботи системи в залежност? в?д к?лькост? ознак на входах нейронно? мереж?;проведено анал?з роботи системи в залежност? в?д тополог?? нейронно? мереж?.Цей розд?л ? лог?чним завершенням початих у попередн?х розд?лах теоретичних викладок ? ?люстру? ?х практичну реал?зац?ю у вигляд? функц?й, що реал?зовують прогноз курсу криптовалют.РОЗД?Л 5 МЕНЕДЖМЕНТ СТАРТАП ПРОЕКТУ5.1 ?нформац?йна карта проекту?нформац?йна карта проекту представлена в таблиця 5.1.Таблиця 5.1 - ?нформац?йна карта проекту1. Назва проектуCryptoForecast2. Автори проектуДеундяк Олександр Володимирович3. Коротка анотац?яCryptoForecast досл?джу? сучасн? стратег??, так? як: статистичне моделювання, машинне навчання, анал?тика соц?альних мереж для максим?зац?? ефективност? повед?нки на криптовалютних ринках, ? нада? серв?си для ефективного керування вашими активами.4. Терм?н реал?зац?? проекту 8 м?сяц?вТривал?сть проекту (в м?сяцях)Продовження таблиц? 5.15. Необх?дн? ресурси?нтелектуальн?: менеджер з розвитку б?знесу, ?нженер з обробки великих даних, анал?тик з машинного навчання, програм?ст, веб-дизайнерМатер?альн?: необх?дно розгортання хмарно? ресурсно? арх?тектури проекту на одн?й з популярних платформ (Azure, Amazon) та ?? п?дтримка.Ф?нансов?: необх?дне ф?нансування учасник?в проекту до етапу промислово? експлуатац?? серв?су:Менеджер з розвитку б?знесу – 1000$/м?с.?нженер з обробки великих даних – 615$/м?с.Анал?тик з машинного навчання – 1500$/м?с.Програм?ст – 1500$/м?с.Веб-дизайнер – 550$/м?с.Для розгортання хмарно? арх?тектури проекту з використанням Microsoft Azure, необх?дн? наступн? ф?нансов? ресурси:Virtual Machines 1: NC6: 6 cores, 56 GB RAM, 340 GB disk $803,52/monthSQL Database Single Database, Premium tier, P1 level, 125 DTUs, 1024 GB storage per DB $554,08/monthMachine Learning Web API Classic: 1000 transactions, 0 hours $0,50/monthStream Analytics 1 unit(s), 744 Hours $81,84/monthEvent Hubs Basic tier: 1 million Ingress events, 1 Throughput unit(s) x 744 Hours$11,19/monthStorage Block Blob Storage type, LRS redundancy, Standard - Blob Storage Account tier$21,88/monthAzure Monthly Total $1 528,81Загалом – 7000$ в м?сяцьПерел?к ус?х необх?дних ресурс?в (ф?нансових, матер?альних, ?нтелектуальних та ?н.)Продовження таблиц? 5.16. Опис проблеми, яку вир?шу? проект Проект вир?шу? проблему отримання прибутку в?д неефективност?, що нараз? спостер?га?ться на криптовалютних ринках.7. Головн? ц?л? та завдання проектуПобудова готового серв?су для автоматизованого ефективного керування криптовалютними портфелями актив?в.8. Оч?куван? результатиДля само? компан?? результатом ? генерац?я власного прибутку шляхом:1.Грамотного оперування власними активами учасник?в, використовуючи свою модель анал?зу для оптим?зац?? власного портфелю актив?в.2.Створення модел? монетизац?? за п?дпискою – продаж п?дписки на користування моделлю для ?нших зац?кавлених ос?б, консультац?? з питань ?нвестування.Для криптовалютного ринку в довгостроков?й перспектив? результатом буде припинення хаосу на ньому в насл?док систематизац?? та автоматизац?? основних операц?й. ?нновац?йний п?дх?д з використанням сучасних метод?в машинного навчання для анал?зу ф?нансових ринк?в ? б?льш швидким ? точним, н?ж ?нту?тивний п?дх?д або фундаментальний анал?з, ? буде показувати значно кращ? результати, а тому в довгостроков?й перспектив? вит?снить ?нших гравц?в або змусить ?х переходити на такий п?дх?д також, що в ц?лому позитивно вплине на ринок, регулюючи його.5.2 Команда проекту CryptoForecastМенеджер з розвитку б?знесу, ?Дипломат?, ?Колектив?ст?, ?Людина-ресурс?. Завдання: комун?кац?я з ?нвесторами, замовниками ? командою, формування вимог та задач для команди, досл?дження ринку.Анал?тик з машинного навчання, ?Генератор ?дей?, ?Людина-продукт?. Завдання: створення арх?тектури майбутнього серв?су, розробка алгоритм?в машинного навчання та штучного ?нтелекту для прогнозування курс?в криптовалют та автоматичного прийняття р?шень в реальному час?. Програм?ст, ?Виконавець?, ?Людина-процеси?. Завдання: програмна реал?зац?я та автоматизац?я в хмарному серв?с? створених алгоритм?в для збору даних та для торг?вл? на б?рж?, операц?йна д?яльн?сть, п?дтримка роботи серв?су.5.3 Б?знес-модель проектуБ?знес модель проекту представлена на рисунку 5.1 та у таблиц? 5.2.Рисунок 5.1 – Б?знес-модель проектуТаблиця 5.2 – Б?знес-модель проектуПропозиц?я для ?нвестора?нвестиц?? $300 000Частка 75% в?д прибуткуБюджет – п?дтрима хмарно? арх?тектури р?шення, зарплата розробникамПоказники – точн?сть прогнозованих моделей на ринкуСтроки виконання: 1 рел?з – 3 м?сяц?, 2 рел?з – 6 м?сяц?в, 3 рел?з – 8 м?сяц?вПродовження таблиц? 5.2М?с?я ? бачення проектуПроект знаходиться на початков?й стад??, плану?ться зб?р даних з основних б?рж, створення в?зувально? анал?тики, автоматичного торгового бота Зр?з ринкуНа ринку криптовалют зараз спостер?га?ться значний р?ст. Р?ст Bitcoin с $600 -> $6000 за минулий р?кВикликиПроблема ефективного ?нвестування пасивного кап?талуЯк проект в?дпов?да? викликамПроект нада? ун?кальну ефективну стратег?ю для ?нвестування кошт?в в криптовалютн? ринки5.4 Анал?з ринкових можливостей запуску стартап-проектуАнал?з ринкових можливостей запуску стартап-проекту представлений у таблиц? 5.3 – 5.12.Таблиця 5.3 – Попередня характеристика потенц?йного ринку стартап-проекту№ п/пПоказники стану ринку (найменування)Характеристика1К?льк?сть головних гравц?в, одПриблизно 7, але ?х к?льк?сть швидко зроста?Продовження таблиц? 5.32Загальний обсяг продаж, грн/ум.одПо б?льшост? компан?й нема? публ?чних даних. Найб?льш масштабн? компан?? з в?дкритим токенсейлом з?брали приблизно $1 млн. Способи монетизац?? (п?дписка тощо) р?зн?3Динам?ка ринку (як?сна оц?нка)Стр?мко зроста? (р?ст кап?тал?зац?? криптовалют б?льш н?ж у 10 раз за останн?й р?к)4Наявн?сть обмежень для входу (вказати характер обмежень)Низьк? бар'?ри входу на ринок, на даний момент ринок криптовалют майже не регулюються, потр?бен певний стартовий кап?тал, та юридичне оформлення компан?? для залучення кл??нт?в.5Специф?чн? вимоги до стандартизац?? та сертиф?кац??На даний момент в?дсутн? (?СО). Загальноприйнятими ? певний whitepaper, roadmap, представлення команди. Ре?страц?я компан?? як юридично? особи стандартизу?ться законами Укра?ни.Продовження таблиц? 5.36Середня норма рентабельност? в галуз? (або по ринку), %Приблизно 50%, зважаючи на в?дсутн?сть публ?чних даних для б?льшост? гравц?вТаблиця 5.4 - Характеристика потенц?йних кл??нт?в стартап-проекту№ п/пПотреба, що форму? ринокЦ?льова аудитор?я (ц?льов? сегменти ринку)В?дм?нност? у повед?нц? р?зних потенц?йних ц?льових груп кл??нт?вВимоги споживач?в до товаруПроблема недол?ку авторитетно?, експертно? ?нформац?? серед ?? дуже велико? к?лькост?, - внасл?док цього недов?ра, в?дчуття важкого входу в ринок, недол?к часу, збитки, страх втратити актив.?нвестори-холдери, яким потр?бен зручний та над?йний спос?б для ?нвестування в криптовалюти.1 група кл??нт?в: доступ до даних, анал?тики, торгових сигнал?в. Р?шення про ?нвестування прийма? сам кл??нт2 група: потребу? бота з доступом до б?рж, що буде вести торг?влю 24/7 автоматичноАнал?тикаВ?зуал?зац?я?нфограф?каРобот-трейдер (з можлив?стю налаштування ?нтерфейсу, мови)Доступ до данних та анал?тики 24/7Таблиця 5.5 – Фактори загроз№ п/пФакторЗм?ст загрозиМожлива реакц?я компан??1Вих?д на ринок нових конкурент?вВ?дт?к кл??нт?вЗростання складност? прогнозування ситуац?? на ринкуПокращення стратег?й, маркетинг, в?дгуки.Продовження таблиц? 5.52Р?зка зм?на стану на криптовалютних ринкахВтрата грошейСво?часна зм?на типу стратег?й. В найг?ршому випадку – перех?д на ?нш? ринки (акц?? тощо)3Глобальна регуляц?я ринку (юридична)Непередбачуван? насл?дкиСво?часне реагування, зм?на стратег?? компан?? зг?дно з вимогамиТаблиця 5.6 – Фактори можливостей№ п/пФакторЗм?ст можливост?Можлива реакц?я компан??1Пог?ршення позиц?й конкурент?вПриток кл??нт?в, захоплення дол? ринкуВ?дпов?дна маркетингова кампан?я, можливе часткове поглинання конкурента2Зростання р?вня доход?в населенняР?зке зростання попитуВ?дпов?дна маркетингова кампан?я, можливо розширення ц?льово? аудитор?? продукту, його модиф?кац?я3Поява нових алгоритм?в або технолог?йМожлив?сть ?х, впровадження, покращення точност? моделейВ?дпов?дне досл?дження ? впровадження ?х в продуктТаблиця 5.7 – Ступеневий анал?з конкуренц?? на ринкуОсобливост? конкурентного середовищаВ чому проявля?ться дана характеристикаВплив на д?яльн?сть п?дпри?мства (можлив? д?? компан??, щоб бути конкурентоспроможною)1. Досконала конкуренц?яНизький пор?г входу, швидко зростаюча к?льк?сть гравц?вМожлив?сть застосування класичних п?дход?в. Конкуренц?я за рахунок якост? продукту, зручност? серв?су, лояльн?сть.2. За р?внем конкурентно? боротьби- глобальнийМожлив?сть торгувати з будь-якого куточку св?туПотенц?йн? кл??нти чи партнери майже в будь як?й кра?н?3. За галузевою ознакою- внутр?шньогалузеваКонкуренц?я в дан?й вузьк?й галуз?Можлив?сть шукати uncommon partnerships в ?нших галузях4. Конкуренц?я за видами товар?в:- товарно-родова- товарно-видова- м?ж бажаннямиПрисутн? р?зн? види в залежност? в?д специф?кац?? продуктуМожлив?сть конкурувати за рахунок р?зних фактор?в та особливостей продукту5. За характером конкурентних переваг- нец?новаЯк?сть та точн?сть моделей та торгових сигнал?вЗастосування сучасних метод?в штучного ?нтелекту6. За ?нтенсивн?стю- не марочнаНовий ринокПершочергову роль мають прогнози, а не брендТаблиця 5.8 – Анал?з конкуренц?? в галуз? за М. ПортеромСкладов? анал?зуПрям? конкуренти в галуз?Потенц?йн? конкурентиПостачальникиКл??нтиТовари-зам?нникиHaaSBotNeuroBotGunBotБар’?р?в для входу майже нема?Постачальники – торгов? б?рж? (Bittrex, Poloniex etc)Дов?ра до анал?тики, простота користуванняЗам?нники – ?нш? вар?анти ?нвестуванняВисновки:К?льк?сть конкурент?в швидко зроста?, але конкурують вони як?стю продукту?снують реальн? можливост? виходу на ринок та потенц?йн? конкуренти, однак вони не ? бар’?ром. Вих?д на ринок плану?ться наступного м?сяцяЗа рахунок регулювання доступу API б?рж, можуть бути проблеми з збором даних чи торг?влею, але на найближч?й час, б?рж? зац?кавленн? в привабленн? кл??нт?в, зб?льшуючи л?кв?дн?стьКл??нти хочуть мати над?йн? та зручн? способи ?нвестуванняВ подальшому плану?ться масштабування на фондов? ринки та на ?нш? вар?анти ?нвестуванняТаблиця 5.9 – Об?рунтування фактор?в конкурентоспроможност?№ п/пФактор конкурентоспроможност?Об?рунтування (наведення чинник?в, що роблять фактор для пор?вняння конкурентних проект?в значущим)1Над?йн?сть ? точн?сть прогнозних моделей та торгових сигнал?вЗменшення ризик?в ?нвестор?в, зб?льшення доходност?2Зручн?сть користування платформоюМ?н?м?зац?я витрат часу ?нвестора, наочн?сть та автоматизац?я сигнал?в, зручн?сть використання3Можлив?сть гнучкого функц?онального налаштуванняМожлив?сть формування р?зних портфелей актив?в, вибору р?зних тип?в стратег?й. Диверсиф?кац?я ризик?вТаблиця 5.10 – Пор?вняльний анал?з сильних та слабких стор?н ?CryptoForecast?№ п/пФактор конкурентоспроможност?Бали 1-20Рейтинг товар?в-конкурент?в у пор?внянн? з NeuroBot–3–2–10+1+2+31Над?йн?сть ? точн?сть прогнозних моделей та торгових сигнал?в10?2Зручн?сть користування платформою25?3Можлив?сть гнучкого функц?онального налаштування20?Таблиця 5.11 – SWOT - анал?з стартап-проектуСильн? сторони: Використання сучасних анал?тичних п?дход?в з використанням штучного ?нтелекту. Зручн?сть, легк?сть в користування. Широкий виб?р формування портфел?в та стратег?й.Слабк? сторони: Брак часу, можлив?сть не встигнути за ринком чи конкурентами.Можливост?: Пог?ршення позиц?й конкурент?в, зростання р?вня доход?в населення, поява нових алгоритм?в або технолог?й (див. таблицю ?Ринков? можливост??)Загрози: Вих?д на ринок нових конкурент?в, р?зка зм?на стану на криптовалютних ринках, глобальна регуляц?я ринку (юридична) (див. таблицю ?Ринков? загрози?)Таблиця 5.12 – Альтернативи ринкового впровадження стартап-проекту№ п/пАльтернатива (ор??нтовний комплекс заход?в) ринково? повед?нкиЙмов?рн?сть отримання ресурс?вСтроки реал?зац??1Pivot у напрямку ?нших ринк?в – фондових, валютних тощоВисока~ 6 м?сяц?в5.5 Розроблення ринково? стратег?? проектуРинкова стратег?я проекту представлена у таблицях 5.13 – 5.16.Таблиця 5.13 – Виб?р ц?льових груп потенц?йних споживач?в№ п/пОпис проф?лю ц?льово? групи потенц?йних кл??нт?вГотовн?сть споживач?в сприйняти продуктОр??нтовний попит в межах ц?льово? групи (сегменту)?нтенсивн?сть конкуренц?? в сегмент?Простота входу у сегмент1Не в ринку25%Нижче середньогоВисокаПотр?бна активна маркетингова д?яльн?сть для ознайомлення з суттю ринку2Новачки в ринку75%ВисокаВисокаПотр?бна маркетингова активн?сть для переконання у перевагах продукту3Трейдери50%СередняВисокаПроста4?нвестори-холдери65%Вище середьогоСередня? певн? проблеми з пошуком ?нвестор?вЯк? ц?льов? групи обрано: 2,3,4Таблиця 5.14 – Визначення базово? стратег?? розвитку№ п/пОбрана альтернатива розвитку проектуСтратег?я охоплення ринкуКлючов? конкурентоспроможн? позиц?? в?дпов?дно до обрано? альтернативиБазова стратег?я розвитку*1Розробка торг?вельного бота з ун?кальними алгоритмами на основ? машинного навчання штучного ?нтелектуRedditTelegramКонференц??ЗМ?Сучасн? математичн? алгоритмиЗручн?сть в користуванн?Масштабован?стьСтратег?я дифференц?ац??Таблиця 5.15 – Визначення базово? стратег?? конкурентно? повед?нки№ п/пЧи ? проект ?першопрох?дцем? на ринку?Чи буде компан?я шукати нових споживач?в, або забирати ?снуючих у конкурент?в?Чи буде компан?я коп?ювати основн? характеристики товару конкурента, ? як??Стратег?я конкурентно? повед?нки*1Н?? нових, ? забирати ?снуючихЗабирати ?напряму? - н?, але ?снують компан??, що розроблюють алгоритми схожими методамиНаступальна стратег?я л?дераТаблиця 5.16 – Визначення стратег?? позиц?онування№ п/пВимоги до товару ц?льово? аудитор??Базова стратег?я розвиткуКлючов? конкурентоспроможн? позиц?? власного стартап-проектуВиб?р асоц?ац?й, як? мають сформувати комплексну позиц?ю власного проекту (три ключових)1Точн?сть та над?йн?стьПозиц?ювання за показниками якост?Використання сучасних метод?в машинного навчання та штучного ?нтелектуУсп?шн?сть використання штучного ?нтелекту дляторг?вл? на фондових б?ржах п?дтверджу? безл?ч досл?джень2Зручн?сть та наочн?стьПозиц?ювання за показниками якост?Зручний ?нтерфейс, наочна анал?тика, в?зуал?зац?я, ?нфограф?ка, автоматизований ботРобимо доступним ? зручним у використанн? трейдерами штучного ?нтелектудля торг?вл? на б?ржах без необх?дност? поглиблення в вивчення математичних основданих технолог?й5.6 Розроблення маркетингово? програми стартап-проектуМаркетингова програми стартап-проекту представлена у таблицях 5.17 – 5.21.Таблиця 5.17 – Визначення ключових переваг концепц?? потенц?йного товару№ п/пПотребаВигода, яку пропону? товарКлючов? переваги перед конкурентами (?снуюч? або так?, що потр?бно створити1Точн?сть та над?йн?сть торгових сигнал?вВикористання сучасних метод?в штучного ?нтелектуВикористання сучасних метод?в штучного ?нтелекту на в?дм?ну в?д звичайних техн?чних ?ндикатор?в2Зручн?сть та наочн?стьАвтоматичний торговий ботНе потребу? втручання в код та додаткового налаштуванняТаблиця 5.18 – Опис трьох р?вн?в модел? товаруР?вн? товаруСутн?сть та складов??. Товар за задумомПотреба ефективного ?нвестування пасивного кап?талу без необх?дност? заглиблення в предметну область??. Товар у реальному виконанн?Властивост?/характеристикиМ/НмВр/Тх /Тл/Е/Ор1. Точн? ? над?йн? торгов? сигнали2. Автоматизований бот 24/7Як?сть: бектест на ?сторичних данн?х, Profit Factor = 3Пакування – програмний продуктМарка: CryptoForecast???. Товар ?з п?дкр?пленнямДо продажуП?сля продажуЗа рахунок чого потенц?йний товар буде захищено в?д коп?ювання: користувач не матиме доступу до вих?дних даних чи коду програми, а лише до результат?в ?? роботи. ?сну? прив’язка до б?ржового акаунту.Таблиця 5.19 – Визначення меж встановлення ц?ни№ п/пР?вень ц?н на товари-зам?нникиР?вень ц?н на товари-аналогиР?вень доход?в ц?льово? групи споживач?вВерхня та нижня меж? встановлення ц?ни на товар/послугу11000-1500$/м?с100-500$/м?с$2000+/м?с100-500$/м?сТаблиця 5.20 – Формування системи збуту№ п/пСпециф?ка закуп?вельно? повед?нки ц?льових кл??нт?вФункц?? збуту, як? ма? виконувати постачальник товаруГлибина каналу збутуОптимальна система збуту1Необх?дн?сть отримання якомога швидкого ? простого результатуШвидк?сть та зручн?сть-Мережа ?нтернетТаблиця 5.21 – Концепц?я маркетингових комун?кац?й№ п/пСпециф?ка повед?нки ц?льових кл??нт?вКанали комун?кац?й, якими користуються ц?льов? кл??нтиКлючов? позиц??, обран? для позиц?онуванняЗавдання рекламного пов?домленняКонцепц?я рекламного звернення1Необх?дн?сть отримання якомога швидкого ? простого результатуFacebookRedditTelegram?нформац?йн? порталиТочн?сть та над?йн?сть торгових сигнал?вЗручн?сть та наочн?стьПривернути увагу, змусити замислитисьДопомога ?роз?братись? в криптовалютному ринкуВисновки до розд?луУ даному розд?л? був проведений анал?з потенц?алу дано? роботи до використання у стартап?. Можна зробити висновок, що дана робота може бути використана для створення стартапу, зац?кавити ?нвестор?в та приносити прибуток.ВИСНОВКИШвидкий розвиток ринку крпиптовалют, ?х популярн?сть та доступн?сть приводить до значно? волатильност? ?х ц?н. В дан?й робот? розв’язувалась задача побудови системи прогнозування курсу криптовалют з використанням фундаментального анал?зу. В результат? роботи отриман? наступн? результати:Проанал?зована сутн?сть ринку криптовалют, його коротка ?стор?я та сучасн? показники. Було встановлено, що ринок криптовалют ма? надзвичайно велику кап?тал?зац?ю, ц?ни на криптовалюти ? надзвичайно волатильним у пор?внянн? з валютним ринком чи б?ржами ц?нних папер?в. Як насл?док того, що ринок криптовалют дуже молодий, в?н ? мало вивченим ? ма? сво? особливост?, тому методи анал?зу ? прогнозування що застосовуються до валютного ринку не працюють так ефективно ? потребують модиф?кац?й.Анал?з ?снуючих на ринку р?шень показав, що б?льш?сть систем ? комерц?йними ? не розкривають секрети свого п?дходу, а також викликають сумн?в у сво?й працездатност?. З академ?чно? перспективи питання ? не розкритим ? к?льк?сть публ?кац?й на дану тему ? невеликою.Проведено анал?з типових математичних моделей, що використовуються при розв’язанн? задач? прогнозу курсу, проведено пор?вняння цих метод?в в контекст? розв’язку поставлено? задач? та виявлено, що кращ? результати да? нейронна мережа з достатньо складною тополог??ю ? великою к?льк?стю прихованих шар?в та нейрон?в у них.Проведено анал?з впливу к?лькост? обговорень криптовалюти у соц?альн?й мереж? Twitter на ?? курс, та запропонований п?дх?д до побудови системи прогнозування курсу криптовалют з використанням цих даних.Розроблено програмний продукт, що да? змогу прогнозувати курс криптовалют з точн?стю 20-50% в залежност? в?д пер?оду прогнозу, а також прогнозувати тренд курсу з точн?стю до 100%.На основ? проведеного анал?зу були запропонован? шляхи до удосконалення побудовано? системи для покращення ?? точност? та зручност? практичного використання.ПЕРЕЛ?К ПОСИЛАНЬCasey M.J. The Age of Cryptocurrency: How Bitcoin and the Blockchain Are Challenging the Global Economic Order [Текст] / M.J. Casey – London: St. Martin's Press, 2015. – 368 p. Antonopoulos A.M. Mastering Bitcoin: Unlocking Digital Crypto-Currencies [Текст] / A.M. Antonopoulos – London: O’Reilly Media, 2017. – 416 p.Ecash [Електронний ресурс]. – Режим доступу HYPERLINK "" Virtual Currencies That Bit the Dust [Електронний ресурс]. – Режим доступу to make a mint: the cryptography of anonymous electronic cash [Електронний ресурс]. – Режим доступу [Електронний ресурс]. – Режим доступу HYPERLINK "" gold [Електронний ресурс]. – Режим доступу : A Peer-to-Peer Electronic Cash System [Електронний ресурс]. –Режим доступу HYPERLINK "" [Електронний ресурс]. – Режим доступу [Електронний ресурс]. – Режим доступу [Електронний ресурс]. –Режим доступу [Електронний ресурс]. – Режим доступу M. Fundamental analysis for dummies [Текст] / M.Krantz –Hoboken: Wiley Publishing Inc., 2009. – 387 p.Armstrong J.S. Illusions in Regression Analysis [Текст] / J.S. Armstrong – Pennsylvania: Penn Press, 2011. – 147 p.Haykin S.S. Neural networks [Текст] / S.S. Hayking – Hamilton: Pearson Education, 2009. – 938 p.Adhikari R. An Introductory Study on Time Series Modeling and Forecasting [Текст] / Adhikari R. – Riga: LAP Lambert Academic Publishing, 2013. – 76 p.Б?дюк П. ?. Анал?з часових ряд?в (навчальний пос?бник) / Б?дюк П. ?., Романенко В. Д., Тимощук О. Л. – К.: Пол?техн?ка, 2010. – 317 с.RMSProp. [Електроннии? ресурс] / Tieleman T. and Hinton G // COURSERA: Neural Networks for Machine Learning. – 2012. – Режим доступу: L. Deep learning: Methods and applications / Deng L. and Yu D. // Foundations and Trends in Signal Processing, 7(3–4) – 2014. – pp. 197–387.Zeiler M. D. Visualizing and understanding convolutional networks / Zeiler M.D. and Fergus R. // Proceedings of the European Conference on Computer Vision. – 2014. – pp. 818–833.Szegedy C. Going deeper with convolutions / Szegedy C. and Liu W. // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. – 2015. – pp. 1–9.Ian Goodfellow. Deep Learning / Ian Goodfellow, Yoshua Bengio and Aaron Courville. – Boston: The MIT Press, 2016. – 800 p.Zhu Xiaojin. Supervised learning literature survey / Zhu Xiaojin. – Department of Computer Science and Engg, University of Wiskonsin-Maddison, 2005. – 1530 p.NumPy [Електронний ресурс]. – Режим доступу: Вьюгин В.В. Математические основы теории машинного обучения и прогнозирования / В.В. Вьюгин. – М.: МЦНМО, 2013. – 387 с.Розроблення стартап-проекту [Електроннии? ресурс] : Методичн? рекомендац??? до виконання розд?лу маг?стерських дисертац?и? для студент?в ?нженерних спец?альностеи? / За заг. ред. О.А. Гавриша. – Ки??в : НТУУ ?КП??, 2016. – 28 с.ДОДАТОК А Л?СТИНГ ПРОГРАМИTwitterCleaner.pyimport pandas as pdimport jsonfrom pprint import pprintimport datetimedata = json.load(open('data2.txt'))df = pd.DataFrame()df["date"] = []df["time_period"] = []df["count"] = []df["price"] = []bitcoin_data = pd.read_csv('bitcoin1.csv')for i in range(0, len(data)): results = data[i]["results"] for j in range(0, len(results)): time_period = int(results[j]["timePeriod"]) year = time_period / 100000000 time_period %= 100000000 month = time_period / 1000000 time_period %= 1000000 day = time_period / 10000 d = datetime.datetime(year=year, month=month, day=day) timestamp_from_2012 = int((d - datetime.datetime(year=2013, month=1, day=1)).total_seconds()) / 3600 / 24 timestamp = int((d - datetime.datetime(year=1970, month=1, day=1)).total_seconds()) timestamp_days = timestamp / 3600 / 24 bitcoin_data_tmp = bitcoin_data[bitcoin_data["Timestamp"] == timestamp] if bitcoin_data_tmp.size < 1: continue price = float(bitcoin_data_tmp["Weighted_Price"].iloc[0]) df = df.append({"date": d, "time_period": timestamp_from_2012, "count": int(results[j]["count"]), "price": price}, ignore_index=True)df["time_period"] = df["time_period"].astype(int)df["count"] = df["count"].astype(int)df["price"] = df["price"].astype(float)df = df[(df["count"] != 0)]pprint(df)df.to_csv("data2.csv", index=False)ml.pyfrom sklearn import neural_networkfrom sklearn import linear_modelimport pandas as pdimport matplotlib.pyplot as pltimport numpyfrom functools import reduceimport sklearn.metrics as metr# Data preparationdata = pd.read_csv('../data/data2.csv')t_max = 1824.0t_min = 149.0data["time_period"] = 1.0 - (t_max - data["time_period"].astype('float')) / (t_max - t_min)p_max = 20000p_min = 0data["price"] = (data["price"] - p_min) / (p_max - p_min)data["count"] = data["count"].astype('float')c_max = data["count"].max()c_min = data["count"].min()data["count"] = (data["count"] - c_min) / (c_max - c_min)regr = neural_network.MLPRegressor(hidden_layer_sizes=(100, 200, 500, 200, 100))p_lag_min = 0p_lag_max = 13lag_prices = []c_lag_min = 0c_lag_max = 13lag_counts = []for i in range(p_lag_min, p_lag_max + 1): name = "price" + repr(i) lag_prices.append(name) data[name] = data["price"].shift(-i)for i in range(c_lag_min, c_lag_max + 1): name = "count" + repr(i) lag_counts.append(name) data[name] = data["count"].shift(-i)x_columns = ["time_period"] + lag_counts + lag_priceslag_max = max([p_lag_max, c_lag_max])data = data[:-lag_max]# Forecastforecast_day = 14Xfr = data[forecast_day:]Xfr = Xfr.iloc[::-1]X = Xfr.as_matrix(x_columns)yfr = data["price"].shift(forecast_day)[forecast_day:]yfr = yfr.iloc[::-1]y = yfr.valuesypn = []for i in range(0, len(y) - forecast_day): regr = regr.partial_fit([X[i]], [y[i]]) yp = regr.predict([X[i + forecast_day]])[0] ypn.append(yp)# Analyse resultsstart_day = 60y = y[start_day:]ypn = ypn[start_day:]l = (lambda x: x * (p_max - p_min) + p_min)daten = map((lambda x: x), X[start_day:, 0])ypn = map(l, ypn)y = map(l, y)ydltnr = []suc = 0tries = 0eps = 0.3for i in range(0, len(ypn)): y0 = y[i + forecast_day] y1 = ypn[i] dl0 = y0 - y[i] dl1 = y1 - y[i] if dl1/y[i] > eps: tries += 1 if dl1*dl0 > 0: suc += 1 dlt = y1 - y0 ydltnr.append(dlt / y1 * 100)print "Tries/Success rate: " + repr(tries) + "/" + repr(100.0*suc/tries)print "MSE: " + repr(metr.mean_squared_error(y[forecast_day:], ypn))print "RMSE: " + repr(metr.mean_squared_error(y[forecast_day:], ypn) ** 0.5)print "MAE: " + repr(metr.mean_absolute_error(y[forecast_day:], ypn))print "R^2: " + repr(metr.r2_score(y[forecast_day:], ypn))plt.plot(daten[forecast_day:], ypn, color='blue')plt.plot(daten, y, color='red')plt.show()plt.plot(daten[forecast_day:], ydltnr)plt.show()ДОДАТОК Б Twitter APIGET oauth/authenticateAllows a Consumer application to use an OAuth request_token to request user authorization. This method is a replacement of Section 6.2 of the OAuth 1.0 authentication flow for applications using the callback authentication flow. The method will use the currently logged in user as the account for access authorization unless the force_login parameter is set to true.This method differs from GET oauth / authorize in that if the user has already granted the application permission, the redirect will occur without the user having to re-approve the application. To realize this behavior, you must enable the Use Sign in with Twitter setting on your application record.Resource URL InformationResponse formatsJSONRequires authentication?YesRate limited?YesParametersNameRequiredDescriptionDefault ValueExampleforce_loginoptionalForces the user to enter their credentials to ensure the correct users account is authorized.?truescreen_nameoptionalPrefills the username input box of the OAuth login screen with the given value.??Counts endpoint /search/:label/counts Endpoint pattern: /search/fullarchive/:label/counts.jsonThis endpoint returns counts (data volumes) data for the specified query. If a time period is not specified the time parameters will default to the last 30 days. Data volumes are returned as a timestamped array on either daily, hourly (default), or by the minute.Counts are only an estimate. It shouldn’t be expected that the count your receive will be the exact number of activities returned. However, you can and should expect that counts will always return a higher value than the number of activities returned via the data endpoints.Note: This functionality can also be accomplished using a GET request, instead of a POST, by encoding the parameters described below into the URL.Counts request parameters?ParametersDescriptionRequiredSample ValuequeryThe equivalent of one PowerTrack rule, with up to 1,024 characters (256 with Sandbox dev environments).This parameter should include ALL portions of the PowerTrack rule, including all operators, and portions of the rule should not be separated into other parameters of the query.Items to Note:Supported Operators are listed?HERE.Yes(snow OR cold OR blizzard) weatherfromDateThe oldest UTC timestamp from which the Tweets will be provided. Timestamp is in minute granularity and is inclusive (i.e. 12:00 includes the 00 minute).Specified:?Using only the fromDate with no toDate parameter, the API will deliver counts (data volumes) data for the query going back in time from now until the fromDate. If the fromDate is older than 31 days from now( ), you will receive a 'next' token to page through your request.Not Specified:?If a fromDate is not specified, the API will deliver counts (data volumes) for 30 days prior to now( ) or the toDate (if specified).If neither the fromDate or toDate parameter is used, the API will deliver counts (data volumes) for the most recent 30 days, starting at the time of the request, going backwards.No201207220000toDateThe latest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in minute granularity and is not inclusive (i.e. 11:59 does not include the 59th minute of the hour).Specified:?Using only the toDate with no fromDate parameter will deliver the most recent counts (data volumes) for 30 days prior to the toDate.Not Specified:?If a toDate is not specified, the API will deliver counts (data volumes) for the query going back in time to the fromDate. If the fromDate is more than 31 days from now( ), you will receive a 'next' token to page through your request.If neither the fromDate or toDate parameter is used, the API will deliver counts (data volumes) for the most recent 30 days, starting at the time of the request, going backwards.No201208220000bucketThe unit of time for which count data will be provided. Count data can be returned for every day, hour or minute in the requested timeframe. By default, hourly counts will be provided. Options: "day", "hour", "minute"NominutenextThis parameter is used to get the next "page" of results as described?HERE. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.NoNTcxODIyMDMyODMwMjU1MTA0Additional detailsAvailable timeframe30-day: last 31 days || Full-archive: March 21, 2006 - PresentQuery formatThe equivalent of one PowerTrack rule, with up to 1,024 characters (256 with Sandbox dev environments).?Items to Note:Not all PowerTrack operators are supported. Supported Operators are listed?HERE.Rate limitRequest rate limits at both minute and second granularity. The per minute rate limit is 60 requests per minute (30 with Sandox environment). Requests are also limited to 10 per second. Requests are aggregaged across both the data and counts endpoints. Monthly request limits are also applied. Sandbox environments are limited to 250 requests per month, and paid access can range between 500 and 100,000 requests.Count precisionThe counts delivered through this endpoint reflect the number of Tweets that occurred and do not reflect any later compliance events (deletions, scrub geos). Some Tweets counted may not be available via data endpoint due to user compliance actions.ДОДАТОК В ?ЛЮСТРАТИВН? МАТЕР?АЛИ ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download