Magazín KPI
Časopis Katedry počítačov a informatiky FEI TUKE
kpi

Obchodovacia platforma s virtuálnymi menami

Cieľom článku je problematika predpovedania ceny virtuálnych mien prostredníctvom spojenia fundamentálnej a technickej analýzy. Proces predpovedania ceny prebieha pomocou strojového učenia na dátach získaných predspracovaním textu a spracovaním sviečkových formácii na sviečkové vzory. Po získaní predspracovaných dát, sú tieto dáta použité na trénovanie neurónovej siete s viactriednou klasifikáciou. Na základe trénovania je získaný predikčný model, ktorý je ďalej použitý na účely predpovedania budúceho vývoja prostredníctvom webovej služby. Získané informácie sú používateľovi poskytnuté prostredníctvom obchodovacej platformy, ktorá pozostáva z webového rozhrania s informačným charakterom.

Úvod

Súčasným trendom sú v technologickej oblasti ale aj medzi širokou verejnosťou virtuálne meny. Ľudí menej technicky zdatných zaujala možnosť obchodovania so spomínanými virtuálnymi menami a možnosť zárobku na tomto volatilnom trhu. Táto práca je zameraná práve na túto skupinu ľudí, potencionálnych používateľov, pretože jej cieľom je predikovať budúci vývoj ceny zvolenej virtuálnej meny.

Organizácia článku je nasledovná. Po stručnom opise základných definícií nasleduje opis predspracovania textu, získaného zo sociálnych sietí a z technických analýz grafov, spolu s modelom, ktorý slúži na predikciu ceny. Následne je uvedený popis vybraných experimentov spolu s vyhodnotením výsledkov.

Definovanie základných pojmov

Virtuálna mena

Virtuálna mena je definovaná ako virtuálne alebo digitálne platidlo, ktoré je používané z bezpečnostných účelov. Vznik virtuálnych mien je datovaný od vzniku prvej virtuálnej meny pod názvom Bitcoin v roku 2009, kedy bol vytvorený prvý blok v reťazci blokov, ktorý sa nazýva „genesis block“. K prvému bloku sa pridávali ďalšie a vďaka tomuto reťazcu blokov, je zabezpečená hlavná bezpečnostná vlastnosť, ktorou je decentralizácia virtuálnych mien. V súčasnosti poznáme cez 2000 virtuálnych mien a ich počet neustále pribúda. Prvou virtuálnou menou bol Bitcoin, považuje sa za základnú menu. Ostatné meny sa nazývajú alternatívne virtuálne meny tzv. altcoiny [1].

Algoritmus predspracovania textu

Predspracovanie textu predstavuje spracovanie surových, raw dát na požadovanú podobu. Tvorí dôležitú časť pri vyhodnocovaní textu ako základu pre signály na obchodovanie. Algoritmus použitý pri vývoji platformy na obchodovanie je tokenizácia. Tokenizácia je krok, ktorý rozdeľuje dlhšie znakové reťazce, čiže text, do malých kúskov alebo tokenov. Väčšie časti textu môžu byť rozdelené na tokeny do viet, ktoré ďalej možno rozdeliť na tokeny na slová. Ak je teda text vhodné rozčlenený, vykonáva sa ďalšie spracovanie. Tokenizácia sa označuje aj ako segmentácia textu alebo lexikálna analýza. Segmentácia sa však využíva na väčšie časti textu, zatiaľ čo výsledkom tokenizácie sú slová. Takéto predspracovanie textu je výhodne v tom, že vieme rozdeliť dáta na logické odseky, ktoré navzájom súvisia a následne vybrať kľúčové slová potrebné na ďalšie procesy. Nevýhodou je náročnosť rozdelenia textu na vety, ktoré spolu súvisia, keďže každá môže mať iný počiatočný tvar [2].

Obr. 1: Tokenizácia vety.
Obr. 1: Tokenizácia vety.

Sviečkový graf

Sviečkový graf prvý krát sformulovali japonský obchodníci pred 300 rokmi, keď si všimli cenové vzory a začali ich využívať na predpovedanie cenových pohybov na trhu s ryžou. Zatiaľ čo sviečkové vzory boli v Japonsku používané stovky rokov, predstavujú pomerne nový spôsob obchodovania na západe. Sviečkový vzor pozostáva z sviečok, ktoré sú rôznej veľkosti a na dvojrozmernom grafe sú v postupnosti iba podľa osi X. Ich pozícia voči osi Y závisí od ceny daného obchodovaného subjektu, kde os X predstavuje čas. Sviečka má 3 dôležité časti, ktorými sú vrchný knôt, spodný knôt a obdĺžniková časť, nazývaná aj telo sviečky. Telo sviečky predstavuje zmenu ceny medzi otváracou cenou (open) a zatváracou cenou (close) pre zvolený časový úsek. Ak sa trh pohne smerom nadol sviečka nadobudne červenú farbu, ak smerom nahor, sviečka je zelená. Tenké čiary na vrchnej a na spodnej časti sviečky, nazývané aj knôty, predstavujú najvyššiu (high) a najnižšiu cenu (low) dosiahnutú pre zvolený časový úsek. Najpresnejšie je možné vyjadriť opísané vlastnosti na nasledujúcom obrázku s všeobecne zaužívaným anglickým popisom (Obr.2) [3].

Obr. 2: Býčia sviečka (vľavo), Medvedia sviečka (vpravo)
Obr. 2: Býčia sviečka (vľavo), Medvedia sviečka (vpravo)

Vzory vo sviečkových grafoch

Vo sviečkových grafoch nachádzame viaceré opakované vzory, ktoré sa rokmi stali paradigmou. Tieto vzory boli vytvorené na základe pozorovania pohybov ceny na burze, kde obchodujú skúsení profesionálni obchodníci. To však neplatí o obchodníkoch s virtuálnymi menami. Tvoria ich aj ľudia, ktorý sa vyznajú to obchodovania v malej miere, resp. nechávajú si radiť od skúsenejších. Tým pádom uvedené vzory nie sú platné do takej miery ako pri obchodovaní na burze, ale stále sú platné do dostatočnej miery, aby sa ich oplatilo využiť.

Kladivo je vzor, ktorý má tvar písmena V ako je možné pozorovať na Obr.12, kde v strede sa nachádza sviečka s dlhým knôtom smerom nadol. Tento vzor predstavuje fakt, že dno je také silné, že ani pri náraze kladiva ho nebolo možné prekonať. Musí sa objaviť po významnom poklese alebo na trhu s nadmerným predajom. Kladivo je indikátorom zvratu klesavého trendu, ak sa však objaví po páde až o dva tri dni, nie je zvyčajne dôležité. Ďalšou situáciou pri výskyte kladiva je, že hoci sa cena odrazí smerom nahor, môže znova testovať podporu.

Obchodníci sa môžu rozhodnúť, či nakupovať ihneď po objavení kladiva, alebo počkať, či sa trh znova nevráti ku kladivu. V týchto momentoch je najvýhodnejšie vstupovať do nákupnej pozície.

Býčie zaplavenie je ďalším typom sviečkového vzoru, ktoré je jedno z najdôležitejších signálov a prináša najpresnejšie výsledky. Skladá sa z dvoch protiľahlých farebných sviečok a je vytvorený zvyčajne po poklese. Cena sa vtedy otvára nižšie ako v predchádzajúci časový interval a zatvára sa vyššie. Takže zelená sviečka úplne pohltí červenú sviečku z predchádzajúceho časového intervalu.

Rovnako ako býčie zaplavenie je jedným z najdôležitejších sviečkových vzorov. Tento vzor signalizuje, že došlo k dramatickej zmene sentimentu investorov. Vyjadruje vysokú pravdepodobnosť, že nákup končí a nastupuje vstupovanie do predajných pozícií. Tento vzor je zložený z dvoch protiľahlých sviečok a vytvára sa vo vzostupnom trende. Cena sa vtedy otvára vyššie ako v predchádzajúci časový interval a zatvára sa nižšie. Takže červená sviečka úplne pohltí zelenú sviečku z predchádzajúceho časového intervalu[4].

Predikčný mechanizmus

Predikčný mechanizmus je vytvorený v prostredí štúdia na strojové učenie Azure. Prvým krokom je nahratie predspracovaných dát, v prípade tejto diplomovej práce sú dáta získavané z cloudovej databázy. Druhým krokom je vytvorenie trénovacieho modelu a nastavenie jeho parametrov spolu s nastavením modulu neurónovej siete s viactriednou klasifikáciou. Po úspešnom spustení trénovacieho modelu je z neho vytvorený predikčný model. Tento predikčný model je publikovaný ako webová služba prostredníctvom ktorej je možné získavať predikcie na základe tohto modelu.

Modul neurónovej siete pre viactriednu klasifikáciu

Modul je súčasťou trénovacieho aj predikčného modelu v prostredí Azure Machine learning studio. Jeho všeobecné použitie zahŕňa komplexné úlohy počítačového videnia, rozpoznávanie vzorov, rozpoznávanie číslic alebo písmen a klasifikácia dokumentov. Klasifikácia prostredníctvom neurónových sietí je metódou sledovaného učenia a preto vyžaduje označený súbor údajov, čiže pomenované stĺpce. V kombinácií s trénovacím modelom alebo s „Tune model hyperparameters“ modulom je možné získať natrénovaný model.

Konfigurácia parametrov neurónovej siete pozostáva z viacerých krokov. Prvým je nastavenie trénovacieho módu, kde si používateľ môže zvoliť jeden pramater alebo predstavuje pole parametrov. Jeden parameter sa používa v prípade, ak používateľ už dopredu vie ako chce konfigurovať model. V prípade, že mu nie je jasné, ktorý parameter je najefektívnejší pre získanie čo najlepšieho výsledku, použije pole parametrov. To znamená, že pole parametrov bude prehľadávané s cieľom získať optimálny parameter. Druhým krokom je nastavenie špecifikácie skrytých vrstiev , čo znamená, vybratie typu architektúry siete.

Trénovací model

Pre trénovací model je dôležité dodať kvalitne predspracované dáta. Dáta dodávané pre tento trénovací model pochádzajú zo spracovania grafu, kde boli hľadané sviečkové vzory (kap. 4.4.). Dáta sú uložené v tabuľke so štyrmi stĺpcami, takže v modely v module „Select Columns“, čiže výber stĺpcov boli vybraté všetky stĺpce tabuľky. Následne editácia metadát ošetruje hlavičku, typ dát a vyberá sa posledný stĺpec, čiže ten na ktorom bude vykonané učenie, aký stav má nastať po akých troch riadkov. Ďalej sa rozdeľujú dáta v module „Split Data“, kde sa vyberá rozdeľovací mód, náhodne rozdelenie a nakoniec aj pomer rozdelenia dát na testovaciu a trénovaciu množinu. V ďalšom kroku je vybraná neurónová sieť s viactriednou klasifikáciou, z dôvodu, že dáta sú viacerých kategórii. Dôležité je aj nastavenie jej parametrov, čiže počet iterácií, rýchlosť učenia, počet skrytých uzlov, počiatočná váha učenia a typ normalizéra. Pridaním modulu „Tune Model Hyperparameters“ sa determinuje optimum hyperparametrov pre daný model strojového učenia. Tento modul buduje a testuje viaceré modely , použitím rozličných kombinácií nastavení a porovnáva metriky všetkých modelov na získanie kombinácie nastavení. Výsledkom je „Score Model“ a „Evaluate model“, kde je získaný súbor úspešnosti modelu a množina údajov s výsledkami generovanými z modelu.

Obr. 3 Trénovací model.
Obr. 3 Trénovací model.

Predikčný model

Hlavným cieľom predikčného modelu je použiť trénovací model na získanie nových údajov a konverzovať na funkcionálnu Azure webovú službu. Konverzia prebieha prostredníctvom nasledujúcich krokov:

  1. Konvertovanie sady modulov použitých k trénovaniu do jediného modulu a jeho uloženie ako natrénovaného modelu.
  2. Eliminácia všetkých modulov, ktoré nie sú relevantné pre očakávané výsledky.
  3. Pridanie vstupných a výstupných portov, ktoré webová služba bude používať.
    Obr. 4. Predikčný model.
    Obr. 4. Predikčný model.

Realizované experimenty

Cieľom tohto experimentu bolo overiť funkčnosť systému. Tento experiment bol uskutočnený počas obdobia stúpania ceny pri menovom páre BTC-XMR na dvojhodinovom grafe.

Tabuľka 1.Experiment č.1.

**** Predikcia
sviečky
Pravdepodobnosť Skutočný
stav
Úspešnosť
31/3/2019 8:00 červená 69% červená -
31/3/2019 10:00 červená 52% zelená -
31/3/2019 12:00 zelená 75% zelená -
31/3/2019 14:00 zelená 63% zelená - doji -
31/3/2019 16:00 zelená 64% zelená -
31/3/2019 22:00 červená 62% zelená -
31/3/2019 00:00 červená 74% červená -

Reálny graf vývoja ceny z burzy Poloniex je znázornený na nasledujúcom obrázku.

Obr. 5. Sviečkový graf z burzy Poloniex.
Obr. 5. Sviečkový graf z burzy Poloniex.

Obchodovacia platforma presne určila 5/7 predikcií, čo predstavuje takmer 70% celkovú úspešnosť. V tomto prípade zavážila analýza sociálnych sietí, ktorá vyhodnotila nárast ceny.

Obr. 6 Grafické znázornenie experimentu č.1.
Obr. 6 Grafické znázornenie experimentu č.1.

Dokopy bolo uskutočnených 28 predikcií, z čoho 20 predikcií bolo úspešných a 8 neúspešných. V experimentoch bolo dokázané, akú dôležitú rolu zohráva fundamentálna analýza pri pohybe ceny virtuálnej meny. Zároveň bolo dokázané, že v spojení technickej a fundamentálnej analýzy je možné získať požadované výsledky.

Obr. 7: Uskutočnené experimenty
Obr. 7: Uskutočnené experimenty

Záver

V tomto článku je teoreticky popísaný spôsob získavania fundamentálnej a technickej analýzy, a jej praktická časť. Vo výsledku sú dáta pre každú virtuálnu menu s viac ako 17 tisíc riadkami, použité na strojové učenie. Pomocou neurónovej siete s viac-triednou klasifikáciou boli získané predikcie na časový interval 2 hodiny spolu s pravdepodobnosťou tohto výsledku. Obchodovacia platforma je nasadená na cloude a umožňuje používateľom registráciu, prihlásenie a následne získanie predikcie. Prínosom práce je spojenie fundamentálnej a technickej analýzy na predpovedanie vývoja trhu pre virtuálne meny. V budúcnosti je vhodné venovať pozornosť vylepšeniu systému z hľadiska rýchlosti a efektívnejšie spracovávať a ukladať dáta do cloudovej databázy. Zároveň by bolo vhodné zamerať sa na dlhodobejšie predpovede avšak s intervalom menším ako jeden deň, z dôvodu, že ak po 3 zelených sviečkach nastane červená, môže ísť iba o malé zaváhanie pri raste ceny smerom nahor. Predikcia potom sa zdá ako nepresná, ale z celkového hľadiska predpovedá presnejšie celkový vývoj ako konkrétnu sviečku na nasledujúce 2 hodiny.

Ďalšou možnosťou práce je reformovať ju na predikovanie cien akciových trhov, kde sa predpokladá zvýšenie pravdepodobnosti nastátia korektnej predpovede. V tomto prípade by bolo nutné zmeniť zdroje získavania dát, na uznávané zdroje monitorujúce dianie akciových trhov. Rovnako aj zvýšenie počtu vyhľadávaných sviečkových vzorov by mohlo viesť k zvýšeniu presnosti modelu. Ďalšími vylepšeniami práce by mohlo byť aplikovanie technických indikátorov, čo je osvedčené hlavne pri obchodovaní na akciových trhoch..

Poďakovanie

Táto publikácia vznikla vďaka podpore v rámci operačného programu Výskum a vývoj pre projekt “Rozvoj centra informačných a komunikačných technológií pre znalostné systémy” (kód ITMS: 26220120030), spolufinancovaný zo zdrojov Európskeho fondu regionálneho rozvoja.

Literatúra

  1. Zibin Zheng, Shaoan Xie, Hongning Dai, Xiangping Chen, Huaimin Wang, „An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends“ School of Data and Computer Science, Sun Yat-sen University Guangzhou, China, 2017.
  2. Christopher D. Manning Prabhakar Raghavan Hinrich Schütze, „An Introduction to Information Retrieval“, Cambridge University Press, Cambridge, England, 2009, Dostupné na internete: <https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf>.
  3. Steve Nison, „Beyond Candlesticks“, New York, 1999.
  4. Raghu Palat, „Fundamental Analysis for Investors: 4th Edition“, New Delhi, India, 2016.
Linkovať