Specifikace projektu FauStock
Specifikace projektu _________________________________________________________ 1 1)
Vymezení dokumentu _______________________________________________________ 2
2)
Motivace k projektu ________________________________________________________ 2
3)
Současný stav ______________________________________________________________ 2
4)
Cíle projektu _______________________________________________________________ 4
5)
Rizika projektu _____________________________________________________________ 4
6)
Požadavky ________________________________________________________________ 5
7)
Upřesnění funkčních požadavků _______________________________________________ 6
8)
Použité Technologie_________________________________________________________ 6
9)
Technické řešení ___________________________________________________________ 7
10)
Use-Case _______________________________________________________________ 9
11)
Scénáře _______________________________________________________________ 10
12)
Databázový model _______________________________________________________ 13
13)
Class Diagram __________________________________________________________ 13
14)
Slovníček pojmů ________________________________________________________ 14
15)
Dodatky _______________________________________________________________ 15
Peníze až na prvním místě.
1) Vymezení dokumentu Tento dokument vymezuje základní informace k projektu fauStock jeho rozsah a působnost. Obsahuje důvody k realizaci projektu a shrnutí současného stavu v dané oblasti. Vymezuje cíle projektu, předpokládaný cílový stav, uvádí rizika a reflektuje jejich minimalizaci
2) Motivace k projektu Zadavatel projektu obchoduje na burze. Pro svá rozhodnutí k nákupu a prodeji akcii využívá informace dostupné z jednotlivých burz. Za svou obchodní praxi sestavil řadu postupů pro predikci vývoje hodnoty akcii v budoucím čase. Informace poskytované jednotlivými burzami se nacházejí na různých mediích a mají rozdílný formát. Jednotlivé úkony spojené s rozhodováním a predikcí zpracovává ručně. Přitom jednotlivé informace by mohly být soustředěny do jednoho datového centra a řada úkonů vykonávána v souvislosti s obchodováním může být zpracovávána automaticky. Můžeme se zodpovědně domnívat, že v případě využití programu, disponujícími těmito vlastnostmi dojde ke zkvalitnění a zefektivnění obchodování na burze. Sestavení tohoto programu je předpokládaným cílem našeho týmu. Zadavatel doposud žil v neznalosti a nedůvěře v nové technologie. Příchod globalizace a vzestup moderní společnosti založené na informacích ho přiměly k myšlence „zda lze za pomocí informačních technologii dosáhnout většího zisku?“ Cílem našeho projektu je nejenom naplnit očekávání zadavatele ale, a to především odpovědět na jeho otázku „ano“. Rozhodovací proces je velmi náročný v praxi velmi často pracujeme nejen s jediným grafem, ale mnohem častěji se skupinou grafů. Snažíme se vyšetřovat jejich vzájemnou závislost. K tomu musíme mít odpovídající matematický model, který dokáže takové závislosti vyhledávat a z těchto závislostí predikovat růst nebo pokles cen.
3) Současný stav Obchodování na burze patří z pohledu klienta k relativně málo technicky náročným úkonům. Existuje několik společností, které se zabývají obchodováním s akciemi tzv. burzy a společnosti které poskytují informace. Na internetu lze nalézt celou řadu webových i desktopových aplikací, které podporují proces rozhodování. Důležitým faktorem procesu rozhodování je jedinečnost metody a případná cena za jeji poskytnutí. Nevýhodou současných programů spočívá ve zpoplatnění služby anebo v jejím velkém rozšíření. Metoda, která je obecně známá, má omezený účinek. V české republice mají v oblasti organizování trhu s cennými papíry dominantní postavení dva subjekty. Jedná se o Burzu cenných papírů Praha a RM Systém.
Mezi významné české poskytovatele informací patří Akcie.cz, ipoint.cz a finančnínoviny.cz. Do jisté míry většina klasických informačních medii typu hospodářské noviny, mladá fronta dnes apod. Burza cenných papírů Praha Jedná se o nejvetšího organizátora na trhu s cennými papíry v ČR, kde mají právo ochodovat pouze licencovaní obchodníci. Pokud si tedy chceme pořídit akcie, musíme se obrátit na člena burzy. Pokud se členem burzy uzavřete smlouvu a stanete se jeho zákazníkem, bude za vás tento člen – obchodník – vkládat do obchodního systému burzy vaše pokyny. S akcimeni se zde pak obchoduje buďto v rámci systému pro podporu trhu akcií a dluhopisů (SPAD), a to za předpokladu, že bude vaše investice směřovat do akcií, které mají na burze hodnotu přes mil. korun. Nebo v rámci automatických obchodů v případě, že pro první seznámení se s obchodováním na burze hodláte uvolnit investice pouze v rozsahu několika tisíc či desítek tisíc korun. Systém pak nabízí zobrazování výsledků emise na trzích, jejich rozpoložení ve vybraném časovém horizontu,statistiky báze indexu PX a grafický kurzovní lístek. RM-Systém Burza cenných papírů, pro obchod s akciemi českých i zahraničních společností. Burza nabízí jedinečnou možnost on-line vypořádání v čase T+0, kdy jsou cenné papíry připisovány na majetkový účet již v době realizace obchodu.Je zaměře na střední a drobné investory, kterým nabízí možnost pohybu s akciemi, které se dokonce nevyskytují ani na Pražské burze. Obchod zde probíha pomocí aplikace e-Broker(viz. níže). Akcie Dodavatelem dat je Burza cenných papírů Praha a RM-Systém. Akcie.cz slouží jako informační portál pro klienty bez nutnosti registracese pro obchod s cennými papíry. Podává především celkový přehled rozdílů mezi Pražskou burzou a děním v RM-Systému. Aplikace umožňuje zpětné dohledávání historie stavu akcie na trzích a jejich hodnotu v určitém časovém okamžiku e-Broker Funkce aplikace e-Broker:
On-line přístup na burzu Zpravodajství o dění na trhu Technická analýza - jedná se především o grafy, související především pro spekulativním a krátkodobém obchodování s akciemi. Mezi nabízenými grafy jsou např. grafy typu: o CANDLESTICS(Využívá s především pro zobrazení kurzu za desítky obchodních dní) o MOVING AVERAGE(Několikadenní průměrná cena s indikací nákupu/prodeje) o BOLLINGER BANDS(Pásmo ohraničující klouzavý průměr akcie) o MOVING AVERAGE CONVERGENCE DIVERGENCE(Počítá se odčítáním dlouhodobého 26denního klouzavého průměru od krátkodobého 12denního)
MONEY FLOW INDEX(Indikátor momentu, měří sílu proudění peněz do/z akcie) o RATE OF CHANGE(Procentní změna ceny za zvolené období) o VOLUME OSCILATOR(Rozdíl mezi dvěma MA objemu dané akcie) o STOCHASTIC OSCILLATOR(Udává, kde se nachází poslední uzavírací kurz vzhledem k cenovému rozpětí) o RELATIVE STRENGTH INDEX(Index relativní síly, počítá se pomocí průměrných kladných a záporných změn v ceně za určité zvolené období) Fundamentální analýza - tržní kapitalizace, účetní hodnota na akcii, cena/účetní hodnota, tržby, cena/tržby, zisk na akcii, P/E, zisková marže, rentabilita vlastního jmění, rentabilita aktiv, dividendový výnos Inteligentní pokyny - jedná se o automatické pokyny pro určité situace, které mohou probíhat na trhu aniž byste jej museli skutečně sledovat. Chování parametrů, zadané uživatelem, ovlivňuje dění účastníků na trhu. o
4) Cíle projektu Všeobecné zadání projektu Cílem projektu je sestavit program pro efektivní obchodování s akciemi na burze. Aplikace poskytne uživateli souhrnné informace získané od jednotlivých burz v normalizované podobě. Umožní výsledky obchodování zobrazovat pomocí grafů a dalších názorných prostředků. Aplikace nabídne uživateli doporučení, zda danou akcii podržet, koupit nebo prodat. Prostředky pro toto rozhodnutí budou analýza průběh grafu a matematického modelu vyhledává závislosti v jeho průběhu. Cílový stav projektu Úkolem vývojového týmu je v první fázi analýza, návrh projektu dle zadaného cíle. V druhé fázi implementace aplikace - modulů pro sběr dat a analýzu dat. Matematický model pro predikci vývoje cen dodá zadavatel projektu.
5) Rizika projektu Obecné vymezení rizik Projekt je svým charakterem a rozsahem relativně vysoce náchylný na změny v zadaní zadavatele, případně na nedodání potřebných informací jako jsou matematické modely a algoritmy pro predikci. Relativně nízké riziko způsobuje lidské selhání, případně softwarová a hardware rizika.
Seznam jednotlivých rizik Kategorie Rizika Zákazník požadavky
změní
procesní
Pravděp Dopad . 80 %
1
Řešení
Řešitel
Dohoda se zákazníkem a úprava specifikace
Tým
průběžné předvádění Odklon od požadavků
procesní
10%
2
Průběžné předvádění
Vedoucí Tester
Fluktuace členů týmu projektový tým
10 %
3
Záložní pracovníci
Vedoucí
Nízký odhad velikosti
velikost produktu
35 %
3
Více lidí nebo její lepší rozdělení
Testér, Vedoucí
Nedorozumění anebo projektový špatná komunikace tým mezi členy týmu
10 %
2
Záložní pracovníci
Vedoucí Testér
Změny, úpravy, rizikové softwarová a komponent hardwarová podpora y
10 %
3
Rychlé a správné a Programátor včasné reakce na požadavky
Nedostatečné školení práce ve vývojovém prostředí
3%
3
Záložní pracovníci s většími zkušenostmi
vývojové prostředí
Pravidelné schůze
Vedoucí Testér
Minimalizace rizik Z uvedených rizik vyplývá, že největší hrozbou pro projekt je nepřesně definované zadání, případně jeho změny v průběhu analýzy a návrhu. Z tohoto důvodu je potřeba být trvale v kontaktu se zadavatelem, konzultovat jednotlivé pokroky a změny v projektu. Důležitým faktorem pro minimalizaci tohoto rizika je rovněž důsledné vedení záznamů projektových schůzek a dokumentace zásahů do projektu.
6) Požadavky -
Funkční požadavky 1. Získání výsledku obchodování z jednotlivých burz a jejich archivace
-
Možnost zadaní zdrojů dat Možnost zadání stáří dat pro archivaci 2. Zobrazení aktuálního stavu na burze Výběr burzy 3. Zobrazení výsledku obchodování formou grafu Určení období pro zobrazovaná data Výběr množiny zobrazovaných akcii Porovnávání s jinými grafy 4. Možnost komentovat jednotlivé body grafu výsledku obchodování 5. Predikce 6. Uživatel si muže definovat profil a nastavení zobrazování výsledků Nefunkční požadavky 1. Serverová část bude dostupná v 95 % 2. Serverová část bude obsluhovat jednoho klienta
7) Upřesnění funkčních požadavků 1. Výsledek obchodování je cenový údaj a množství dané akcie za časový interval zadaný v nastavení. Archivované akcie jsou zadávané v nastavení. Akcie jsou určené ISINem a názvem burzy. 2. Aktuální stav na burze je cenový údaj a množství dané akcie v aktuálním čase. 3. Zobrazování grafů i) Zobrazí dva na sobě závislé grafy. V prvním grafu bude zobrazena závislost ceny na čase a v druhém grafu bude zobrazeno množství na čase. ii) Porovnávání 4. 5. Predikce
8) Použité Technologie Zdůvodnění volby technologii Volba vývojových technologii vycházela především z požadavku vývojového týmu. Všichni členové mají zkušenosti s modelovacím jazykem UML. UML modelujeme v EnterpriseArchitectu, který nabízí významnou podporu analýzy a návrhu. Pro dokumentační činnost používáme MS Office. Pro fázi implementace jsme zvolili vývojové prostředí Visual Studio, důvodem je jeho vysoká kvalita. Systém pro provoz systému vycházel z požadavků klienta, který pracuje v systému MS Windows a nemá důvod přecházet na jiný systém. Proto jsme zvolili i platformu dotNET.
Prostředky pro analýzu a návrh - UML v 2.0 - MS Office - Enterprisearchitect - PowerDesigner Prostředky pro implementaci - Visual studio 2008 SP1 - Jazyk C# Prostředky pro provoz aplikace - Serverová část Windows server 2008 .NET Framework 3.5 SP1 SQL Server - Klientská část .NET Framework S.5 SP1
9) Technické řešení Aplikace se skládá ze dvou nezávislých modulů. Modulu pro sběr dat a modulu pro analýzu dat. Modul pro sběr dat získává z veřejně dostupných zdrojů výsledky obchodování jednotlivých akcii na daných burzách. Výsledky v pevně daných intervalech archivuje. Modul pro analýzu dat vyhodnocuje grafy jednotlivých akcii a na základě matematického modelu vyhledává závislosti v jeho průběhu. Výstupem modulu je předpokládaná cena akcie v daném budoucím časovém horizontu. Tento výstup se použije jako doporučení pro uživatele zda danou akcii podržet, koupit nebo prodat.
deployment Deployment Mo...
«device» ClientPC
«execution environ... WinForm Aplikace
«device» Window sServ erPC
TCP/IP
«execution environ... Serv erov á aplikace
TCP/IP
«device» Zdroj dat «execution environ... SQL Serv er
10)
Use-Case
UC:Uživatel
UC:Čas uc Actors Serverová aplikace
Získání v ýsledků obchodov ání
Čas Archiv ace v ýsledků obchodov ání
11)
Scénáře
Aktér Uživatel Uživatel systému Aktér Čas Skript v serverové aplikaci, který v daných intervalech spouští úlohy
UC1.
Přihlášení uživatele
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
UC2.
Odhlášení uživatele
Vstupní podmínka: Scénář: Alternativní průběh: Výstupní podmínka:
UC3.
Uživatel spustí aplikaci 1) Uživatel zadá přihlašovací jméno a heslo 2) Uživatel volbu potvrdí 3) Systém ověří, zda uživatel zadal parametry a. Systém zobrazí hlášení o nezadání hesla b. Systém vyzve ke znovu zadání údajů 4) Systém ověří identitu uživatele a. Systém zobrazí hlášení o zadání neplatných údajů b. Systém vyzve ke znovu zadání údajů 5) Uživatel je přihlášen do systému 3a. Uživatel nezadal některý z údajů 4a. Uživatel zadal neplatné údaje Uživatel je přihlášen do systému
Uživatel je přihlášen v systému 1) Uživatel zadá volbu odhlášení ze systému 2) Uživatel je odhlášen Žádný Uživatel je odhlášen ze systému
Nastavení zdroje dat
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
Uživatel je přihlášen v systému 1) Uživatel zadá volbu zdroje dat 2) Uživatel zadá cestu ke zdroji dat a volbu potvrdí a. Systém zobrazí hlášení o neplatné cestě b. Vyzve ke znovu zadání zdroje dat 3) Uživatel vybere z nabídky akcií akcie, které se budou stahovat a volbu potvrdí 4) Systém odešle změněnu do serverové aplikace 2a. Uživatel zadá neplatný zdroj dat Dojde k aktualizaci nastavení
UC4.
Zobrazení aktuálního stavu
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
UC5.
Filtr akcií
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
UC6.
Alternativní průběh: Výstupní podmínka:
Uživatel je přihlášen v systému 1) Uživatel zadá volbu Zobrazení výsledků obchodování a. Určení období b. Výběr zobrazovaných akcií c. Porovnávání grafů d. Predikce e. Přidání komentáře grafu f. Smazání komentáře grafu g. Editace komentáře grafu 2) Systém zobrazí výsledky obchodování formou grafu Žádný Systém zobrazí výsledky obchodování
Určení období
Vstupní podmínka: Scénář: Alternativní průběh: Výstupní podmínka:
UC8.
Je UC4 a uživatel zadal volbu filtr akcií 1) Systém zobrazí seznam akcií 2) Uživatele vybere ze seznamu akcie a potvrdí 3) Systém zaktualizuje zobrazované akcie Žádný Dojde k aktualizaci zobrazovaných akcií
Zobrazení výsledku obchodování
Vstupní podmínka: Scénář:
UC7.
Uživatel je přihlášen v systému 1) Uživatel zadá volbu Zobrazení aktuálního stavu a. UC5. Filtr akcií 2) Systém načte ze serverové aplikace aktuální stav na burze 3) Systém zobrazí aktuální stav na burze formou tabulky 1a. Uživatel zvolí filtr akcií Systém zobrazí aktuální stav na burze
Je UC6 a uživatel zadal volbu Určení období 1) Uživatel zadá období a potvrdí 2) Systém zaktualizuje zobrazované výsledky obchodování Žádný Dojde k aktualizaci zobrazovaných výsledků obchodování
Výběr zobrazovaných akcií
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
Je UC6 a uživatel zadal volbu Výběr zobrazovaných akcií 1) Systém zobrazí seznam akcií 2) Uživatele vybere ze seznamu akcie a potvrdí 3) Systém zaktualizuje zobrazované výsledky obchodování Žádný Dojde k aktualizaci zobrazovaných výsledků obchodování
UC9.
Porovnávání grafů
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
UC10.
Predikce
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
UC11.
Alternativní průběh: Výstupní podmínka:
Zdroj dat je dostupný Pravidelně každých 5 sec. 1) Systém získá aktuální výsledky obchodování ze zdroje dat 2) Systém uloží stažené výsledky obchodování do databáze Žádný Dojde k získání výsledků obchodování
Archivace výsledků obchodování
Vstupní podmínka: Spuštění scénáře: Scénář: Alternativní průběh: Výstupní podmínka:
UC13.
Je UC6 a uživatel zadal volbu Predikce 1) Systém zobrazí seznam akcií 2) Uživatele vybere ze seznamu akcie a potvrdí 3) Systém zobrazí výsledek predikce Žádný Systém zobrazí výsledek predikce
Získání výsledků obchodování
Vstupní podmínka: Spuštění scénáře: Scénář:
UC12.
Je UC6 a uživatel zadal volbu porovnání grafů 1) Systém zobrazí seznam grafů 2) Uživatele vybere ze seznamu grafů a potvrdí 3) Systém zobrazí výsledek porovnání grafů Žádný Systém zobrazí výsledek porovnávání grafů
Žádná Pravidelně každých 3 měsíce 1) Systém uloží výsledky obchodování sekundární databáze Žádný Dojde k archivaci výsledků obchodování
Přidání akcie
Vstupní podmínka: Scénář:
Alternativní průběh: Výstupní podmínka:
Uživatel musí být přihlášen 1) Uživatel vybere přidání akcie a potvrdí 2) Zadá ISIN akcie a vybere burzu ze seznamu a potvrdí a. Systém zobrazí hlášení o neplatné akcii b. Vyzve ke znovu zadání údajů o akcii 3) Systém přidá akcie do databáze 2a. Uživatel zadal neplatné údaje o akcii Dojde k přidání akcie
12)
Databázový model
class Data Mo...
globSettings
TradeHistory
«column» *PK Name: nvarchar(50) Value: varchar(50)
InstrumentKinds «column» *PK Id: int * InstrumentTitle: varchar(50)
«column» *FK Issue_ID: int *PK DateTime: datetime * Price: money TradeVolume: varchar(50) TradeValue: varchar(50)
(InstrumentKind_ID = Id)
(Issue_ID = Id)
0..*
1
Issues
(Market_ID = Id)
0..* «column» 1 *PK Id: int * ISIN *FK InstrumentKind_ID: int *FK Market_ID: int 0..* 1 Issuer
0..*
(Issue_ID = Id)
1
TradeCurrent
Markets 0..* «column» *FK Issue_ID: int *PK Time: datetime * Price: money TradeVolume: varchar(50) TradeValue: varchar(50)
1 «column» *PK Id: int * MarketTitle: varchar(50)
(id = Id)
(id = Id)
0..*
1
Comment
Currency
«column» *pfK id: int *PK DateTime: datetime Text: varchar(50)
«column» *pfK id: int CurrencyName: varchar(50)
13)
Class Diagram
class Class Mo...
«enumeration» Currency
Issue + + + + + +
id: int CurrrencyName: Currency InstrumentTitle: IntrumentalKind ISIN: string MarketTitle: Market Comment: List
+ + + + + +
AddIssue(string, Market) : void RemoveIssue(int) : void AddComment(DateTime, string, int) : void EditComment(DateTime, string, int) : void RemoveComment(int) : void GetTimeSeries(DateTime, DateTime, int) : List
«enumeration» Market
«enumeration» IntrumentalKind
1 0..* Trade + + + +
Time: DateTime Price: decimal TradeVolume: decimal TradeValue: decimal
Prediction + +
CompareTimeSeries() : void Prediction(int) : void
14)
Slovníček pojmů
Pojem Akcie Výsledky obchodování Graf Zdroj dat Databáze Sekundární databáze ISIN
Definice Jednotlivé emise cenných papírů Cena akcie v daném období Grafická reprezentace výsledku obchodování Server obchodníka s cennými papíry Úložiště výsledků obchodování Záložní úložiště výsledků obchodování
15)
Dodatky
Rozdělení kompetencí Jméno Margarita Andrei Tom Jirka Egor
Kompetence Komunikace se zadavatelem Získávání vstupních dat Analýza a návrh Dokumentace a webové stránky, Tester Implementace