Predrag ihailović dipl.ing....Osnovni berzanski finansijski instrumenti i pokazatelji Koje to...
Transcript of Predrag ihailović dipl.ing....Osnovni berzanski finansijski instrumenti i pokazatelji Koje to...
Predrag Mihailović dipl.ing.
Softverski Inženjer sa profesionalnim stažom u IT industriji od preko 20 godina. U IT karijeri najviše iskustva ima u sferi aplikacija za
podršku berzanskom trgovanju, kao i u razvoju aplikacija i implementaciji poslovnih informacionih sistema. U kompaniji TeleTrader d.o.o.
Beograd je od 2000. godine. Trenutno zaposlen na poziciji: Senior Java i Android developer.
O kompaniji “Teletrader Software”
„TeleTrader Software“ je data i software provider kompanija specijalizovana za berzanske informacije i finansijske analize. Nudi širok
spektar softverskih alata za obradu, vizuelizaciju i analizu berzanskog poslovanja i drugih finansijskih podataka. Proizvodi kompanije TeleTrader
uključuju desktop, web i mobilne aplikacije.
Od svog osnivanja 1995.god. kompanija kupuje, skladišti i prodaje berzanske podatke sa vodećih svetskih berzi. Podaci se distribuiraju u
različitim formama: kako u svom osnovnom grubom oblika numeričke informacije, tako i u različitim sofisticiranim oblicima obrađenih
informacija.
Osim berzanskih podataka, „TeleTrader Software“ sakuplja, obrađuje, analizira i distribuira i fundamentalne podatke za preko 5.000
najvećih svetskih kompanija.
„TeleTrader Software“ kompanija ima i poslovne vesti sopstvene produkcije – TeleTrader News Room.
I DEO Berza, berzanski i drugi finansijski podaci
Berza
Osnovna definicija berze je da je to „mesto gde se susreće ponuda i potražnja“. U tačno određeno vreme, za tačno određenom robom.
Druga definicija mogla bi biti da su berze organizirana i striktno regulisana finansijska tržišta na kojima se trguje vrednosnim papirima,
robom, uslugama ili valutama. Trgovanje na berzama zasnovano je na principu ponude i potražnje.
Istorijski, počeci berze datiraju iz 16 veka, naravno, u trgovačkim krugovima.
Savremena berza podrazumeva visoko tipizirane i standardizovane predmete trgovanja. Takođe, pravila trgovanja takođe su
standardizovana, nadgledana od strane regulacionih tela, podložna stalnoj korekciji. Kao najviše regulaciono telo za svaku berzu postavljena je
država, pre svega zbog izuzetne važnosti berze za ukupnu ekonomiju u državi. Pravila trgovanje su obavezujuća za sve učesnike u trgovini.
Osnovna podela berzi je na one na kojima se trguje robom i na one na kojima se trguje hartijama od vrednosti (HoV)
Berzanski i drugi finasijski podaci
Šta prikazuje finansijska aplikacija ?
Generalno, finansijski podaci koje tržište traži mogu se podeliti na
- Berzanske podatke
- Fundamentalne podatke
- Vesti
Berzanski podaci
Svaki događaj na berzi, elektronski se beleži i obrađuje a zatim i distribuira zainteresovanim kupcima.
Koji su to događaji ?
- Potražnja za kupovinom odrđenog instrumenta – ASK (cena i količina)
- Ponuda za prodajom – BID (cena i količina)
- Ostvarena transakcija (kad se ASK i BID poklope) – LAST (cena i količina)
Emitovani podatak o događaju na berzi zove se Tick. Svaka berza, već u zavisnosti od svog informacionog sistema šalje tick-ove tj. osnovne
„atomske“ podatke koji sadrže identifikaciju finansijskog instrumenta, vrstu, datum, vreme, cenu i količinu. I eventualno neke dopunske podatke.
TeleTrader kupuje podatke sa berzi, redistribuira svojim kupcima, ali i skladišti, obrađuje, i kasnije distribuira kroz različite prezentacione
forme (tabele, grafici i slično)
Brzina je presudna.
Aktivni učesnici u berzanskom trgovanju kupuju berzanke podatke, i shodno svojoj poslovnoj politici reaguju. Preko 80% svih berzanskih
transakcija odvija se automatski – putem računara. Stoga je brzina kojom se dobija bezanski podatak od presudne važnosti. Vreme najkvalitetnijih
podataka meri se desetinama milisekundi. Kašnjenje od nekoliko stotina milisekundi već smatra se prevelikim. Podaci „stari“ 15 minuta se
uglavnom mogu besplatno videti na interetu.
Fundamentalni podaci
To su podaci koje je svaka kompanija – akcionarsko društvo, dužna da periodično objavljuje. Za razliku od berzanskih podaka, koji su na
neki način veoma slični, tj. uniformni, fundamentalni podaci su veoma raznoliki. U najčešćem slučaju sadže knjigovodstvene podatke o bilansu
stanja i bilansu uspeha. I mnoge druge različite izvedene podatke –racija: Na primer: P/E ratio, P/B ratio, dividend yield i slično.
Način objavljivanja fundamentalnih podataka je krajnje raznolik: od objavljivanja na sajtu kompanije, preko objavljivanja u dnevnim
glasilima ili na bilo koji drugi način. Stoga, sakupljanje, uniformisanje i skladištenje ovih podataka je mnogo složenije. Prezentacione forme, su
nasuprot tome, jednostavnije.
Fundamentalne podatke koriste finansijski analitičari u investicionim bankama / fondovima i daju svoje preporuke o kupovini ili prodaji
pojedinih finansijskih instrumenata.
Poslovne i finansijske vesti
Treća strana „trougla“ finansijskih informacija. Prava vest u pravo vreme – osnova uspešnog finansijskog poslovanja.
Osnovni berzanski finansijski instrumenti i pokazatelji
Koje to podatke mora da pruži finansijska aplikacija ?
Berzanska roba – Commodities
Na neki način, robna trgovina predstavlja bazu svih drugih oblika trgovanja, i istorijski prapočeci berzi vezuju se za robnu trgovinu.
Najpoznatije robne berze: Londonska berza obojenih metala, Čikaška poljoprivredna berza („Merc“)
Najtraženiji podaci: cene energenata, zlata, obojenih metala, žita, soje, pirinča, pamuka, žive stoke...
Osim trgovanja robom, rašireno je i trgovanje finansijskim derivatima – fjučesima.
Akcije – Stocks
Akcija je zapravo udeo vlasništva u akcionarskim kompanijama. Vlasništvo nad akcijama donosi pravo na sticanje dividende.
Trgovina akcijama je drugi najzatupljeniji oblik trgovine na berzama.
Najpoznatije berze akcija NYSE, NASDAQ, London Stock Exc hange
Indeksi – Indices
Ustvari i nisu finansijski instrumenti kojima se trguje, ali su najvažniji finansijski pokazatelji. Stoga su, vrednosti indeksa nezaobilazni u svim
finanskijskim aplikacijama
Najpoznatiji berzanski indeksi: Dow Jones, NASDAQ, FTSE, DAX, CAC, ATX, BELEX
Valute – Currencies ili FOREX (Foreign Exchange Market)
Trgovanje valutama je decentralizovano. Ne postoji berza za trgovanje valutama, već se trgovina odvija na različitim platformama za trgovanje,
najčešće u vlasništvu većih finansijskih institucija. Platforme za trgovanje su neformalo povezane.
Kamatne stope – Interest rates
Predstavljaju podatke o referentnim kamatnim stopa, postignutim na osnovu ponude i potražnje novca na međubankarskim tržištima. Definišu se
za više vremenskih perioda.
Najpoznatije kamatne stope su Libor sa sa Londonskog međubankarskog tržišta (London Interbank Offered Rate). Libor se posebno definiše za
svaku važniju valutu
Za nas je posebno intersantan i Euribor (Euro Interbank Offered Rate)
Obveznice – Bonds
Uglavnom se trguju na sekundarnim tržištima, ali i na berzama. Od većeg značaja su podaci o kretanju cena državnih obeznica. Goverment
bonds.
Fondovi – Fonds (Mutual Funds, ETFs)
ETFs – Exchange Traded Funds – trguje se na berzama
Mutual funds – ne trguje se na berzama, ali su podaci o kretanju cena važni finansijski podaci
Finansijski derivati i drugi finansijski instrumenti
Opcije, kontrakti, varanti, fjučesri
Osnovni načini prikaza berzanskih finansijskih podataka
U kom obliku očekuje podatke prosečan korisnik finansijske aplikacije ?
Tabela – Price Page
Prikazuje trenutne podatke. Cenu, ponudu, potražnju, volumen, promenu cene, procentualnu promenu cene. Može sadržati i neke
analitičke i izvedene podatke
Grafikon - Chart
Prikazuje istorijske podatke, promenu cene u vremenu. Osnova za tehničku analizu.
Mobilna aplikacija Teletrader Stock Markets
Ideja za razvojem aplikacija za mobilne platforme nastaje 2009. godine, paralelno sa pojavom prvih iPhone uređaja. Nakon objavljivanja
Android operativnog sistema Ver.2.0 i prvog Samsung Galaxy mobilnog telefona, počinje i razvoj na Android platformi.
Izazovi u ovoj sferi programiranja su veliki, bez kompromisa u tačnosti i brzini, ali uz ograničenje relativno slabe internet konekcije,
posebno kod prenosa paketnih podataka, i naravno u izuzetno skučenom formatu ekrana mobilnog telefona. Neophodno je korisnicima predočiti
kompletne informacije sa berzanskih tržišta širom sveta, nalik onima sa desktop aplikacija ili sa web platforme.
Razvoj je tekao paralelno: server-side podrška za mobilne uređaje, i client-side aplikacije za iOS i Androd platformu.
Dugogodišnji korisnici usluga kompanije Teletrader pozdravili su i brzo prihvatili aplikaciju na mobilnim uređajima. Poslovna informacija
je sada dostupna uvek i svuda.
Google Play: Teletrader Stock Markets
Šema protoka podataka kroz TeleTrader infrastrukturu
II DEO Android i razvoj aplikacija na Android OS
Android OS Operativni sistem, baziran na Linuxu. Razvio ga ja Google, inicijalni release je bio u Septembru 2008. Android je Open source, pod Apache
licencom. Nudi se najširem krugu proizvođača hardvera.
Kako se kreću verzije operativnog sistema ? Počelo je sa 1, potrajala godinu dana i veoma brzo prešlo na 2 (Galaxy S, Galaxy ACE …). Dvojka je
bila od 2009 do 2011. Isto 2011 je napravljena trijka za tabove. Nije mnogo živela, i veoma brzi izbačena 4. Četvorka 4.0, 4.1, 4.2, 4.4 su bile u
opticaju od 2011 do 2014. I danas predstavljaju neki standard. Najnovija najavljena verzija je 7.0..
Interesantno je da se verzijama od 1.5 daje ime po slatkišima, po abecedi. Sada je na redu slovo N. Kažu da će se zvati Nutela.
Android 1.5 Cupcake
Android 1.6 Donut
Android 2.0 Ekler
Android 2.2–2.2.3 Froyo
Android 2.3–2.3.2 Gingerbread
Android 3.0 Honeycomb
Android 4.0–4.0.2 Ice Cream Sandwich
Android 4.1 Jelly Bean
Android 4.4 KitKat
Android 5.0–5.0.2 Lollipop
Android 6.0 – 6.01 Marshmallow
Android 7 N
Uz svaku veću verziju ide i API verzija, po redoslednim brojevima. Sada je na API 23. Uz najnoviju verziju, N, najavljen jeveliki zaokret u
developmentu.
Razvoj aplikacija na Android platformi (Android development)
U principu, to je Java. Naravno, ima svoj set klasa, podskup standardne Jave, kao i čitave nove pakete koje su samo za Android.
Novo i karakteristično za Android (kad je Java u pitanju) je:
Unapređeno upravljanje resursima (slike, stringovi). Tako, postoje posebni resource folderi koji se definišu za pojedine jezikei države
(internacionalizacija), za pojedine veličine ekrana i rezolucije, kao i za to da li je ekran u portrate ili landscape modu. U razvoju se dakle sve ovo
predvidi, a onda se u run-time koristi ovaj ili onaj resource.
Izgradnja user interfejsa, korisničke kontrole i slično. Build kontrola i UI layout je izbačen iz programskih redova i ubačeno u XML resurse.
Mada, nije potpuno, jer teoretski može da se napiše:
Button mButton = new Button(„Start“);
ali u praksi je jako, jako komplikovano odraditi valjani layout kontrola, a setovanje pojedinih atributa čak i nije moguće. U novijim verzijama
razvojnih alata omogućeno je i drag ’n’ drop korisničkih kontrola i setovanje svih atributa kroz razvojni korisnički interfejs. Mada, mora malo da se
čačne i kroz text editor.
U samom korenu Android razvoja podržani su mnogi „šareniši“, tipa: boje, animacije, stilovi i slično.
Naravno, kao i kod drugih alata, sve je lepo i lako dok se god ide „niz dlaku“, tj. onako kako su dizajneri developmenta zamislili. Kad zatreba
nešto što nije predviđeno, onda je to trnovit put.
Karakteristika Androida je i saradnja sa hardverom. U Svakom telefonu ima pregršt senzora, GPS, tu je i kamera a, naravno i sam telefon kao
takav: pozivi i SMS. Svi ti resursi se mogu koristiti, i postoje posebne programske biblioteke. Sve je ovo u startu zamišljeno mnogo bolje od one
Jave koja je bila na mobilnim telefonima 2002. god Java 2 Micro Edition, or J2ME kojoj u startu nije bilo dozvoljeno da koristi išta od hardverskih
resursa, pa se tako ugasila sama od sebe. Zarad kakve-takve korisničke kontrole nad resursima telefona, pre svake instalacije bilo koje Android
aplikacije navedeno je koje će resurse da koristi. I korisnik mora eksplicitno da potvrdi da prihvata.
Ima nekih novih stvari u Threadovima, pristup treda UI kontrolama je zabranjen, pa se zato koriste neki Background Asinc Taskovi čega ranije
nije bilo u Javi.
Drugi aspekti developmenta su manje-više standardi iz Jave. Tu pre svega mislim na event listenere, mrežno programiranje, http konekcije i
slično. Klase, intefesji, package, nasleđivanje … klasika.
Koji se alati koriste u razvoju ?
Pre svega treba instalirati Javu, a zatim i poseban Android SDK (Software Development Kit). Uz Android SDK ide i SDK manager, koji brine
o instaliranim SDK verzijama, alatima, i radi update kad je potrebno.
Kao i ostala Java, najpopularnije razvojno okruženje bilo je Eclipse. Ipak, kako je vreme prolazilo, Android se razvijao – a Eclipse je
zaostajao. Redovno su se javljali problemi, posebno kod korišćenja biblioteka, bibliotečnih projekata i slično.
Stoga, Google je izbacio potpuno novi alat „Android Studio“, baziran na Inteli J razvojnom okruženju. Android studio je specijalno
dizajniran, naravno za Android, i 99% problema koji su večito opterećivali Eclipse su nestali. Naravno, javilii su se novi. Ali, sve u svemu, svetska
Android development zajednica je prešla na Android Studio
Bilderi: ant se nikad nije koristio za android. Bilo je neslavnih pokušaja da se koristi Maven, ali i to je propalo, pa se na Eclipse u 99%
slučaja koristio interni builder. Kod Android Studija, koristi se novokreirani Gradle.
Bitne osobenosti finansijske mobilne aplikacije i aspekti razvoja
Sveobuhvatnost informacija
Ukoliko nema neku od tri grupe finansijskih podataka – aplikacije se automatski smatra „specijalizovanom“, za ove ili one namene. To u
startu značajno umanjuje broj korisnika, a time i prisutnost na tržištu.
Načini prikaza podataka
Korisnici finansijskih aplikacija žele informaciju, na način na koji su navikli (ili naučili) da je dobiju. Eksperimentisanje sa načinima
prezentacije nije baš poželjna. Tako, aplikacija svakako mora da ima standardne prezentacione forme (Price Page, Chart), i eventualno, uz njih,
možda i neke nove načine prezentacije.
Navigacija kroz aplikaciju
Generalno, fianansijska mobilna aplikacija može se smatrati „ozbiljnom“. Stoga, ni eksperimentisanje sa navigacijom kroz aplikaciju nije
poželjno.
Budući da se Teletrader Stock Markets razvijala paralelno i za iOS i za Android, uloženo je dosta napora da se za svaku platformu zadrži
standardan, uobičajen način navigacije.
Ograničena internet konekcija
Za razliku od web aplikacija (gde je najveći protok podataka „ispod haube“) ili desktop aplikacije, kod mobilnih aplikacija postoji značajna
problematika brzine i protoka u internet konekciji. I to iz dva glavna razloga: protok podataka je korisniku često ograničen, ili značajno košta, a
takođe i brzina je značajno ograničena, posebno ako se radi o paketnom prenosu podataka. Naravno, uvek treba uzeti u obzir da će korisnik
poželeti neku informaciju i kad nema internet konekcije.
Tako, u razvoju se poklanjala puna pažnja da podaci koji stužu budu prećišćeni. Osim logike u samom kodu ugrađeno je dva nivoa
keširanja podataka: u memoriji uređaja i kroz HttpResponseCache.
Neki podaci su podazumevano dostupni samo kod Wi-Fi konekcije.
U sam bild aplikacije uvršten je maksimalni broj resursa (slika) da se ne bi kasnije zahtavela preko mreže.
Ograničena veličina ekrana
Generalno, ovo nije problematika samo finansijskih aplikacija, već uopšteno, problematika koju treba rešavati u svim domenima mobilnih
aplikacija. Možda je malo izraženija u fianansijskim aplikacijama jer je zaista mnogo podataka koji se istovremeno mogu prikazati.
Bilo kako bilo, pristup je sledeći: napraviti nekoliko načina prikaza i kroz razne menije omogućiti korisniku da bira. Ograničiti ne samo
vrstu prikaza, već i ukupan broj podataka, i opet, napraviti opcije da kroz razna podešavanja korisnik može da izabere ono šta je njemu bitno.
Dakle, skrolabilne liste, pejdžiranje, setinzi i slične razvojne tehnike.
Poseban akcenat u razvoju je bio na protrait – landscape način prikaza. Landscape mod, ako je dozvoljen, sadrži sasvim drugačiji način
prikaza, a ne prosto „raširene“ podatke iz portrait moda.
Podrška za ekrane različitih veličina i rezolucija
Generalno, ovde, već u samom operativnom sistemu i razvojnom okruženju postoji podrška koja omogućava da se problematika reši bez
mnogo uloženog dodatnog programerskog napora. Ipak, problematika nije trivijalna. Poseban problem predstavljaju slike koje dolaze posebno,
na primer za vesti.
Ipak, najviše rada je uloženo za podrku rada na tabletima. Tablet uređaji već po samoj svojoj veličini zahtevaju drugačiji pristup
prezentaciji podataka, a i moralo se voditi računa o orijentaciji: portrait – landscape.
Teletrader StockMarkets aplikacija ima dve vrste prikaza: za telefone i za 13 inčne tablete.
Višejezičnost
Podržana je u Android razvoju, tako da nikakav poseban programerski trud nije potreban, Ali, sa druge stane nije ni trivijalno podržati i
još važnije, održavati ažurnim sve prevode na 13 jezika !
Personalizacija aplikacije i podataka
Osim uopštenog podešavanje same aplikacije, koja podrazumeva setinge (jezik, veličina slova i slično), aplikacija u finansijama mora da
podrži i personalizaciju podataka. Jer, nisu svim korisnicima podjednako zanimljivi svi podaci o finansijskim instrumentima.
Uobičajeni načini da se ovo postigne je kreiranje korisničkog naloga, i čuvanje korisničkih podataka na serveru.
U aplikaciju su ugrađena i dve posbne pod-aplikacije: Watchliste i Portfolio. Pra služi za kreiranje sopstvenih lista za pregled interesantnih
instrumenata, a druga je takozvani virtuelni portfolio, u koji korisnik može da preslika sopstveni portfolio hartija od vrednosti i da tako prati
stanje sopstvenih sredstava.
Pošto su Google Finance i Yahoo Finance najpopularniji na svetskom nivou, u aplikaciji je omogućen import portfolija sa tih platformi.
Posebnu važnost ima pristup korisnicima sa kupljenim paketima podataka, gde se treba omogućiti dobavljanje real-time podataka, njihov
prikaz, i istovremeno onemogućiti takav prikaz ukoliko korisnik već koristi te podatke na nekom drugom uređaju ili platformi.
Neke programerske tehnike, karakteristične za Android
Data fetching
Standardan način dobavljanja podataka preko HTTP konekcije u Android aplikacijama.
List View, List adapter
Standardan način prikaza podataka u ekranskim listama, karakteristično za Android aplikacije.
Pitanja, diskusija