Software module of the market risk assessment
Choice relationship database system, a cloud platform and a software platform for implementing and deploying the relational database system, resource and service agents; software module market risk. User interface for outputting the received information.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | английский |
Дата добавления | 12.08.2018 |
Размер файла | 3,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Annotation
The master thesis describes the process of developing software module of the market risk assessment. This work contains an introduction, five chapters, conclusion, bibliography and appendixes. The first chapter providersan overview of existing systems for calculating risk metrics. The second chapter providers an overview and comparison table of financial data sources. The third chapter is devoted to identify data requirements, use cases, risk metrics calculations and database scheme. The fourth chapter providers overview technologies stack. The last chapter provider simplementation.
Introduction
Financial institutions have been struggling with problems of financial risk management for a long time, but until recently, specialists from various business divisions have been dealing with these problems. For example, banks - with lending or liquidity management, investment companies - with portfolio management,clearingcompanies - with the service of the exchange, etc. In the insurance, these issues were traditionally dealt with by actuaries. For the remaining financial institutions, risk management has emerged in an independent direction relatively recently, in the early 1990s. Risk management today is carried out at the level of the whole company; it covers all aspects of financial activity and acts as a strategic tool for optimizing the use of capital taking into account risk, not only in financial institutions, but also in large non-financial corporations with intensive cash flows. The quality of risk management is considered one of the most important components of corporate governance and has a direct impact on the market value of the company. One of the convincing evidence of the success of the risk management industry was the increase in the number of software products on risk management and the growth of their sales [1-4].
Most popular current systems for calculating market risks provide an opportunity to integrate with existing systems, have an API for uploading data to their own innerwarehouse, create their own calculators, add scenarios to simulate some situation in the financial markets, have the ability to export the received data; however these systems have a number of weaknesses. First, the user should be able to work with the special language on which the calculation will be written. Secondly, to fill the data for calculations, it will be necessary to integrate with the company's internal and external systems, from which market data will reach such as the closing price on the broker's board, cash flows,foreign exchange rate quotes, discount percent curves, workday calendar of exchanges and so on. Thirdly, the time spent on the creation of a system for demanding users, making changes to the developer, integration of the system with internal and external resources may exceed the time during which it was planned to obtain the result and this system will lose necessary. Finally, the most systems demand a lot of costs.
The main components of such a system are a warehouse of market data that is filled from various systems and calculations that calculate risk metrics based on the market data.
The object of the master thesisis the architecture of the warehouse of market data and calculations of metrics risk indicators.The subject of the study is the implementation of an aggregated store of market data and calculations of risk metrics.
The objective of this work is the implementation of a market data warehouse and the implementation of a module for market risk calculations.
To achieve this objective, the following aims were planned:
Analyze existing systems for calculating market risks;
Analyze the sources of market data;
Identify the requirements to the data, the use cases for the optimal work, select the risk metrics that are neededto calculate, design the database structure;
Select a relationship database system, a cloud platform and a software platform for implementing and deploying the relational database system, resource and service agents; software module market risk
Implement the prototype.
The tasks are solved by using the technologies of object-oriented design and programming, the specification of agent systems, storage and manipulation of data and service-oriented approach for creating distributed applications.
As a result, a database of market indicators obtained from various market sources, services provides data loading, services provide transforming downloaded data into the database, services provide calculating market indicators, as well as a user interface for outputting the received information.
Current systems analyze
At the current moment there are a lot of different systems which allows calculating financial data, for comparing such systems some characteristics are highlighted:
Language for writing calculations;
Acquisitioncost;
External integration;
Internal integration;
Data sources;
Project time for launching in production;
Developing own calculations;
Keepingdownloaddataintointermediatestorage;
Keepinggivenresults;
Opportunity to repeat calculations;
Write scenarios for modeling;
Web-application;
Desktop application;
Mobile application;
Operating System;
Export format report;
Architecture specifications.
“Prognoz Platform”
“Prognoz Platform” is BI-platform for creating and developing desktop, web and mobile application which combined modern database technology, visualization, reporting, modeling and predicting business-processes[5].
“Prognoz Platform” uses own developed programming language “Fore” which was based on Visual Basic and C#. “Prognoz Platform” can be integrated with external and internal systems, such as CBONS, Yandex maps, Google maps, Twitter, LinkedIn, Facebookand so on. “Prognoz Platform” has own ETL-processing, which can download data from relationship database systems, which provide OLE and ODBC providers, Hadoop and simple data sources such as CSV, TXT, DBF. “Prognoz Platform” keeps data in his own storage. Users can generate own calculations by using “Fore” languageand create scenarios which change input data for modeling. “Prognoz Platform” has desktop, web and mobile application versions.Server part of “Prognoz Platform” can be run on Windows or Linux operating systems. Reports can be in different formats such as XLS, XLSX, PPTX, RTF, PDF, HTML, MHT, and EMF.
“Wolters Kluwer”
“Wolters Kluwer” is BI-platform, the platform can provider essential information, software solutions and services to tax specialists, financial, risk management and regulatory professionals[6].
“Wolters Kluwer” uses Java language for developing different calculations. “Wolters Kluwer” can be integrated with external and internal systems. “Wolters Kluwer” can download simple data sources such as CSV, TXT, and DBF. “Wolters Kluwer” keeps data in his own storage. Users can create own calculations by using Java languageand create scenarios which change input data for modeling. “Wolters Kluwer” has desktop, web and mobile application versions.Server part can be run on Windows or Linux operating systems. Reports can be in XLS and XLSX formats.
SAS
SAS is BI-platform, the platform can provider advances analytics, multivariate analyses, business intelligence, data management and predictive analytics [7].
SAS uses own SAS language for developing different calculations. SAS can be integrated with external and internal systems. SAS has own ETL-processing, which can download data from relationship database systems, which provide ODBC provider and simple data sources such as CSV, TXT, DBF. Users can create own calculations by using SASand create scenarios which change input data for modeling. SAS has desktop, web and mobile application versions.Server part can be run on Windows or UNIX operating systems. Reports can be in different formats such as XLS, XLSX.
Comparison result
The summary of comparing current systems is shown in table 1.1.
Table 1.1.BI platforms
Characterizes |
Prognoz Platform |
Wolters Kluwer |
SAS |
|
The language for calculating |
Fore |
Java |
SAS language |
|
Acquisition cost |
Expensive |
Expensive |
Expensive |
|
Integration with different external systems |
Yes |
Yes |
Yes |
|
Integration with different internal systems |
Yes |
Yes |
Yes |
|
Data sources |
MS Analysis Service, SAP NetWeaver BW, OLE DB for OLAP, MS SQL Server , Oracle, IBM DB2, Teradata, PostgreSQL, SQLite, ODBC or OLE compatible Data Base Systems, XML, DBF, CSV, TXT, VPF, MS Excel, MS Access, Paradox, Hadoop |
XML, DBF, CSV, TXT, MS Excel |
ODBC compatible Data Base Systems, SQLite,XML, CSV, TXT,MS Excel |
|
Project time for launching in production |
Middle time: 1 year - 2 year |
Middle time: 1 year - 2 year |
Middle time: 1 year - 2 year |
|
Developing own calculating |
Yes |
Yes |
Yes |
|
Storing data in intermediate data base |
Yes |
Yes |
Yes |
|
Storing given results own data base |
Yes |
Yes |
No |
|
Opportunity to repeat calculating |
Yes |
Yes |
Yes |
|
Writing scenarios for modeling |
Yes |
Yes |
Yes |
|
Web-application |
Yes, but some functions cut |
Yes |
Yes |
|
Desktop application |
Yes |
Yes |
Yes |
|
Mobile application |
Yes |
Yes |
Yes |
|
Operating system |
Windows, Linux |
Windows, Linux |
Windows, Unix, z/OS |
|
Format for exporting reports |
XLS, XLSX, PPTX, RTF, PDF, HTML, MHT, EMF |
XLS, XLSX |
XLS, XLSX |
|
Architecture specifications. |
Hidden |
Hidden |
Hidden |
Conclusions on the first chapter
In the process of analyzing current systems, it is revealed that the considered systems are very expensive and demand a lot of time to run them in production. Each of these systems has own specific architecture, which is hidden to developers, consequently, we cannot setting this systems without company's specialists and it demands additional money for supporting.
Financial market sources
Market data information for calculating can be downloaded from different data sources, for comparing data sources some characteristics arehighlighted:
Provide financial instrument data;
Provide currencies;
Provide percent curves;
Provide cash flows;
Paying for data;
Desktop application;
Web-version application;
Application program interface to download data;
Data quality.
Moscow Exchange
Moscow Exchange is the largest exchange group in the Russian Federation, which provides trading market in equities, bonds, derivatives, foreign exchange money, precious metals and so on. Moscow Exchange was established on 19 December 2011 by merging the two largest Moscow-based exchanges, the Moscow Interbank Currency Exchange and the Russian Trading System, later the name “Moscow Exchange MICEX-RTS” [8].
After closing trading date, Moscow Exchange provides some data free without payment, all data saved in csv file. Moscow exchange providesinformation about financial instruments such as equities, bonds, funds, certificates, depository receipts, foreign exchange rates of different countries, percent curves. Moscow Exchange provider cash flows about financial instruments, such as calls, puts, coupons, accumulated coupon incomes and redemptions, but this part information only for money. Moscow Exchange has a web-version. Moscow Exchange provides fee-paying API for download data. The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any validations;
Bloomberg L.P.
Bloomberg L.P. is privately held financial software, data, and Media Company headquartered in Midtown Manhattan, New York City. It was founded by Michael Bloomberg in 1981. Bloomberg L.P. provides financial software tools such as an analytics and equity trading platform, data services, news to financial companies and organizations through the Bloomberg Terminal, its core revenue-generating product.Bloomberg provide financial instruments data, currencies from different sources, percent curves for different country currencies, and cash flows for different financial instruments. All information from Bloomberg is fee-paying and they have special API to provide this information. Bloomberg has specific equipment for providing data; it has not web-version.The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any validations [9].
CBONDS
CBONDS is a financial data vendor and news agency operating in the Russia Federation, Ukraine and Kazakhstan [10]. Its main business lines include developing and maintenance of financial information websites. CBONS provide actual information about bonds, currencies, percent curves, cash flows such as coupon rates, put and call offers and redemptions. The data from this is fee-paying. CBONS has API for giving information.CBONS has Web-version application and doesn't have desktop version.The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any confirmations.
Finam
Finam Holdings is a financial services company headquartered in Moscow, Russia. It is the parent company of Finam Investment Company. In April 2017 it was the third largest brokerage firm in Russia, and ranks second among providers of individual investment accounts in the country.Finam's subsidiaries operate on all major stocks, bonds, options and futures exchanges, and offer trading on Forex and CFDs. Additionally, Finam runs a number of mutual funds and offers trust management services for assets, pension fund accruals and reserves [11].
Finam provide different information about different financial instruments, such as equities, bonds, funds, certificates, depository receipts and so on. Finam provides information about foreign exchange rates of different countries, percent curves. All data from Finam are fee-paying, you need to pay for subscribes to get data. Finam has only web-version and doesn't have a desktop client. Finam have fee-paying API for getting data.The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any validations;
Central Bank of Russian
Central Bank of Russian provides a lot of different market information free [12].It doesn't provide information about financial instruments.Ithas free special services which let to download data and they also published all information on their site. Central Bank of Russian provides different market information such as foreign exchange rates; “RUONIA” rates and discount percent curve for Russian currency and so on.The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any validations.
Comparison result
The summary of comparing data sources is shown in table 2.1.
Market sources
Characterizes |
Moscow Exchange |
Bloomberg L.P. |
CBONS |
Finam |
CBR |
|
Provide financial instrument data |
+ |
+ |
+ |
+ |
- |
|
Provide currencies |
+ |
+ |
+ |
+ |
+ |
|
Provide discount percent curve |
+ |
+ |
+ |
- |
+ |
|
Provide cash flows |
+ |
+ |
+ |
+ |
- |
|
Paying for data |
Partly |
Fee-paying |
Fee-paying |
Partly |
Free |
|
Desktop application |
- |
+ |
- |
- |
- |
|
Web-version application |
+ |
- |
+ |
+ |
+ |
|
Application program interface to download data |
+ |
+ |
+ |
+ |
+ |
|
Data quality |
Middle |
Middle |
Middle |
Middle |
Middle |
Conclusions on the second chapter
In the process ofdata sources analyze, it is revealed that the most of considered data sources have fee-payment API. They provide different market information, such as financial instrument data, foreign exchange rates, discount percent curves, offers and redemption cash flows, which needs to be aggregated to calculate risk metrics. The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any validations;
Design
Requirements to data
In the course of the research of the market area, the requirements to the data of the storage were revealed. The storage should contain information about financial instruments (Figure 3.1.), quotes(Figure 3.2.), temporal data (historical data)(Figure 3.3.), calendars of work days, percent curves, cash flows, data sources.
Financial instrument has unique ident, title, type of financial instrument, different temporal data, such data of placing, maturity date, ratings of different agency, currency, ISIN and so on, quotes, cash flows. All of these data can be downloading from different sources; because of some data can be available only specific sources and we need to choose which of them is more relevant in each of cases.
To keep temporal data (historical data) we can use timeline [13-16], for example, for first time we download rating from some agency, it can be “AAA”, we make milestone that from this date this financial instrument has “AAA” rating, in some months we know that this instrument has other rating “AA+”, so we need to keep this data and don't replace old value. We make new milestone and confirm that from this time rating for this financial instrument is “AA”.
Figure 3.1.Scalar data
Quotes can be kept like massive; because of they can be changed every day.
Figure 3.2.Quotes
Cash flow is a massive of dates, where some data can know only after some date.
Figure 3.3.Cashflow
Keeping working days in calendar is not brilliant idea, because of working days per year is more than holidays, so calendar need to contain only holidays. Every year government confirms working calendar.
Discount percent curve contains from different term and values and use to decide the present value of future cash flows (Figure3.4.).
Figure3.4.Russian percent curve
Use cases
All needed use cases for working application presented in table 3.1. Diagram of use cases [17] in UML model are presented in Appendix A,B,C.
Table 3.1.Use cases
Title |
Actor |
Description |
|
Download rates |
Resource agent |
Resource agentruns a script for downloading financial instruments and their attributes and rates from Moscow Exchange and addsrecord in queue. |
|
Download offers |
Resource agent |
Resource agentruns a script for downloading offers of financial instruments from Finam and adds record in queue. |
|
Download currencies |
Resource agent |
Resource agentruns a script for downloading currencies from Central bank of Russian and adds record in queue. |
|
Download RUONIA |
Resource agent |
Resource agentruns a script for downloading RUONIA curve from Central bank of Russian and adds record in queue. |
|
Download Discount Rate |
Resource agent |
Resource agentruns a script for downloading discount rate from Central bank of Russian and adds record in queue. |
|
Make backup archive |
Resource agent |
Resource agentruns a script for making backup from PostgreSQL database in dump format. |
|
Make backup scheme |
Resource agent |
Resource agentruns a script for making scheme backups from PostgreSQL database SQL format |
|
Make backup SQL archive |
Resource agent |
Resource agent runs a script for making backup from PostgreSQL database in SQL format. |
|
Check queue |
Service agent |
Executor checks the queue, if the queue is not empty, executor runs needed calculation, else executor does nothing. |
|
Convert rates |
Service agent |
Service agentruns a calculation for keeping data into PostgreSQL database. |
|
Convert offers |
Service agent |
Service agentruns a calculation for keeping data into PostgreSQL database. |
|
Convert currencies |
Service agent |
Service agentruns a calculation for keeping data into PostgreSQL database. |
|
Convert RUONIA |
Service agent |
Service agentruns a calculation for keeping data into PostgreSQL database. |
|
Convert discount rate |
Service agent |
Service agentruns a calculation for keeping data into PostgreSQL database. |
|
Calculate yield |
Service agent |
Service agent runs a calculation for estimating yield for financial instruments. |
|
Calculate volat |
Service agent |
Service agent runs a calculation for estimating volatility for financial instruments. |
|
Calculate var |
Service agent |
Service agent runs a calculation for estimating var for financial instruments. |
|
Get financial instrument scalars |
User |
User sets data source and actual data to get all relevant financial attributes. |
|
Get financial instrument quotes |
User |
User sets data source, “date_from” and “date_to” to get all relevant financial quotes. |
|
Get financial instrument cash flows |
User |
User sets data source and actual data to get all relevant financial cash flows. |
|
Get currency information |
User |
User chooses currency and gets all quotes of this financial instrument. |
|
Get discount rate information |
User |
Users chooses actual data and discount curve. |
|
Add calculation in queue |
User |
User chooses calculation, sets parameters and sends this task into executor's queue. |
|
Run Executor |
User |
Executor checks queue immediately. |
|
Get financial attributes |
User |
User gets all available financial attributes. |
|
Get dictionary of attributes |
User |
User gets all available values for specific financial attribute. |
|
Find financial instrument |
User |
User inserts part of ISIN and gets all ISIN which contains this part. |
Calculations
Yield
Yield is a comparative indicator of the effectiveness of investments in certain assets. Yield can frequently be estimated as the ratio of the absolute value of income to a certain base of the asset, which usually represents the amount of initial investment that must be made to obtain this income [17, 18].
Each of the financial instrument has own special way to calculate yield.
To calculate yield to maturity/offer for bond (Figure 3.5.):
(3.1)
(3.2)
(3.3)
Figure 3.5.Calculate bond's yield
To calculate yield for equity, global depositary receipt, fund and certificate (Figure 3.6):
(3.4)
Figure 3.6.Calculate yield
Volatility
Volatility is a statistical financial indicator that characterizes the volatility of the price [17, 18].Volatility of the financial instrument has general formula to calculate (Figure 3.7):
Set minimal amount of values;
Set window for calculating;
Take last minimal amount of values;
Find minimal and maximum value in each window;
Calculate volatility in each window by using next formula:
(3.5)
Choose the maximum volatility.
Figure 3.7.Calculate volatility
Value at Risk
ValueatRiskisavaluationexpressedinthebasecurrencythatdoesnotexceedtheexpectedlossesforagivenperiodoftimewithagivenprobability.This indicator is not used for markets that are in a state of crises. The confidence interval and the time horizon are key indicators, without which it is impossible to calculate, nor the interpretation of the value at risk [20-22].
The time horizon for calculating value at risk is often chosen based on the retention time of this instrument in the portfolio or its liquidity, i.e. based on the minimum real time period during which this instrument can be sold on the market without significant damage, since it is within this period that traders are not able to do anything to reduce losses. For instance, a weekly value at risk, a monthly value at risk are estimates of possible losses for the week and month, respectively.
The level of the trust is chosen depending on the risk preferences expressed in the regulatory documents of the supervisory authorities or in corporate practice, reflecting the assessments of managers. For instance, the Basel Committee on the Banking Supervision recommends a level of 99%, to which supervisors are guided; in practice the most popular level is 95%.In the project to calculate Value at Risk of equity, global depositary receipt, fund and certificate (Figure 3.8):
Set time horizon;
Set quantile;
Get closes from Moscow Exchange;
Get currencies from Central Bank of Russian;
Calculate yield for each day in time horizon;
Take values from horizon;
Chose value with quantile.
Figure 3.8.Calculate Value at Risk for simple instruments
In the project to calculate Value at Risk of bondis used next solution (Figure 3.9):
Set time horizon;
Set quantile;
Get closes from Moscow Exchange;
Get foreign exchange rates from Central Bank of Russian;
Get offers from Finam;
Convert closes by using foreign exchange rates;
Calculate yield for each day in time horizon;
Get nominal price from Moscow Exchange;
Take values from horizon;
Choose value with quantile.
Figure 3.9.Calculate Value at Risk for bond
Database schema
Based on the given requirements from chapter 3.1.1 to kept data, database scheme was designed (Figure 3.10). Main information about financial instruments are kept into “fin_instrument”, scalar attributes are kept into “fisd_date”, “fisd_num”, “fisd_str”, “fisd_item”, “dict_item”; quotes are kept into “fisd_dq”, title of financial attributes are kept into “fin_field”, financial market sources are kept into “data_source”, discount percent curves are kept into “curves” and “curve_list”, cash flows are kept into “cashflow” and “cashflow_types”, calendars are kept into “calendar” and “holidays”.
Figure 3.8.Database scheme
Conclusions on the third chapter
In the process of designing, it is revealed that the data needs to be saved with some history; becauseof they can be changed after updating from data source. Actors and uses cases of actors are defined. Calculations of risk metrics are defined. Database for keeping market data is designed;
Technology stack
Database systems
For keeping market data were analyzed different existing relationship databases. The following characteristics were distinguished for comparing databases
Primary database model;
Secondary database models;
Developer;
License;
Implementation language;
Server operating system;
Data scheme;
Typing;
XML support;
APIs and other access methods;
Supported programming languages;
Server-side scripts;
Partitioning methods;
Secondary indexes;
PostgreSQL
PostgreSQL is an object-relational database management system which was based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.Primary database model of PostgreSQL is relational database management system. Secondary database models are document and key-value store. PostgreSQL is open source product, implemented on C. It can be run on Linux or Windows operating systems. It supports data scheme, typing, xml and secondary indexes.PostgreSQL has different API for access such as Native C Library, stream API for large objects, ADO.NET, JDBC, ODBC providers, PostgreSQL can be used by different programming languages [23].
Oracle
Oracle Database is a multi-model database management system produced and marketed by Oracle Corporation.Primary database model of Oracle is relational database management system. Secondary database models are document store, graph database management system, key-value store, resource description framework store. Oracle implemented on C and C++. Oracle can be run on Linux or Windows operating systems. Oracle is commercial product, Oracle support data scheme, typing, xml support and secondary indexes.Oracle has different API for access such as ODP.NET, Oracle Call Interface, JDBC, ODBC providers, Oracle can be used by different programming languages [24].
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the key function of storing and retrieving data as requested by other software solutions --which may run either on the same computer or on another computer across a network [25].
Primary database model of Microsoft SQL Server is relational database management system. Secondary database models are document store, Graph database management system and key-value store.Microsoft SQL Server implemented on C# and C++. Microsoft SQL Server can be run on Linux or Windows operating systems. Microsoft SQL Server is commercial product, Microsoft SQL Server support data scheme, typing, xml support and secondary indexes.Microsoft SQL Server has different API for access such as OLE DB, Tabular Data Stream, ADO.NET, JDBC, and ODBC providers, Microsoft SQL Server can be used by different programming languages.
Comparison result
The summary of comparing database systems is shown in table 4.1.
Table4.1. Database systems
Characterizes |
Microsoft SQL Server |
Oracle |
PostgreSQL |
|
Primary database model |
Relational database management system |
Relational database management system |
Relational database management system |
|
Secondary database models |
Document store, Graph database management system, key-value store |
Document store, graph database management system, key-value store, resource description framework store |
Document store, key-value store |
|
Developer |
Microsoft |
Oracle |
PostgreSQL Global Developer Group |
|
License |
Commercial |
Commercial |
Open source |
|
Implementation language |
C++, C# |
C, C++ |
C |
|
Server operating system |
Linux, Windows |
AIX, HP-UX, Linux, OS X, Solaris, Windows |
FreeBSD, HP-UX, Linux, NetBSD, OpenBSD, OS X, Solaris, Unix, Windows |
|
Data scheme |
Yes |
Yes |
Yes |
|
Typing |
Yes |
Yes |
Yes |
|
XML support |
Yes |
Yes |
Yes |
|
APIs and other access methods |
OLE DB, Tabular Data Stream, ADO.NET, JDBC, ODBC |
ODP.NET, Oracle Call Interface, JDBC, ODBC |
Native C Library, stream API for large objects, ADO.NET, JDBC, ODBC |
|
Supported programming languages |
C#, C++, Delphi, GO, Java, JavaScript, PHP, Python, R, Ruby, Visual Basic |
C, C#, C++, Clojure, Cobol, Delphi, Eiffel, Erlang, Fortran, Groovy, Haskell, Java, JavaScript, Lisp, Objective C, OCaml, Perl, PHP, Python, R, Ruby, Scala, Tcl, Visual Basic |
.Net, C, C++, Delphi, Java, Perl, PHP, Python, Tcl |
|
Server-side scripts |
Transact SQL and .NET languages |
PL/SQL |
User defined functions |
|
Partitioning methods |
Tables can be distributed across several files; |
Horizontal partitioning |
Declarative partitioning |
|
Secondary indexes |
Yes |
Yes |
Yes |
Cloud platforms
For the deployment of the virtual machine, existing cloud platforms were considered. The following characteristics were distinguished for platform comparison:
The computing power of virtual machines:
ROM (GB);
RAM (GB);
CPU (amount);
Operating systems;
Data warehouse:
BLOB storage;
Tablestorage;
Relationship databases;
IDE:
Developer's portal;
Eclipse Tools;
Visual Studio Tools;
Java SDK;
MobileSDK;
PHP SDK;
Python SDK;
Ruby SDK;
.NET SDK;
Monitoring;
Pricing;
Trial use.
Platform“Amazon EC2”
The “Amazon EC2” platform is cloud platform that provides scalable computing resources in the cloud. A simple interface of the “Amazon EC2” service allows you to access the computing resources and adjust them with minimal effort. The platform provides users with absolute control over the resources that they can run on the platform. By reducing to a few minutes the process of setting up and launching new server instances, the “Amazon EC2” service allows you to rapidly scale the computing resources to accommodate changing requests. “Amazon EC2” changes the economic component of the computation process, providing an opportunity to pay only for the resources used [26].
Platform“Google App Engine”
The Google App Engine platform is a hosting service for websites and web applications on Google servers. Applications deployed on the basis of Google App Engine must be written in the program languages: Python, Java, Go, or PHP. The Python runtime includes the full implementation of the Python language itself, most of the functions of the standard language library, a limited version of Django, etc. [27].
Platform“Microsoft Azure”
The Microsoft Azure platform is designed to handle a wide variety of workloads, from small development and testing projects to the launch of global products. At the heart of the Microsoft Azure platform is the launch of a virtual machine for each instance of the application. The developer determines the required amount of data storage and the required processing power (the number of virtual machines), after which the platform provides the appropriate resources [28].
Comparison result
Thesummary of comparing cloud platform is shown in table 4.2.
Table4.2.Cloud platforms
Characterizes |
Amazon EC2 |
Google App Engine |
Microsoft Azure |
|
The computing power of virtual machines |
||||
ROM (ГБ) |
4 to 48 000. |
No limitation |
4 to 64 000. |
|
RAM (ГБ) |
1-244. |
3,75-208. |
0,768 - 448. |
|
CPU (amount) |
1-40. |
1-32. |
1-32. |
|
Operating systems |
Linux(CentOS, Debian, SUSE and so on), Windows Server. |
Linux(CentOS, Debian, SUSE and so on) Windows Server. |
Linux (CoreOS, CentOS, SUSE, ORACLE), Windows Server. |
|
Date warehouse |
||||
Relationship database |
Max size is 64 Tb. |
Max size 500 Gb. |
Max size 500Gb. |
|
BLOB. |
Cannot exceed 5 Tb. There are no restrictions on the total amount of data and the number of objects. |
The maximum object size is 2 GB, but each API call can only process a maximum of 1 Mb. |
Block BLOB does not exceed 200 GB. Page BLOB does not exceed 1 TB. Oneaccountcancontainupto 500 Tb. |
|
Table storage |
Tables are organized into “domains”, the size of which cannot exceed 10 Gb. There are no restrictions on the number of "domains". |
To save one entity, up to 1 Gb of memory is allocated, the number of read and write operations are unlimited. |
The record can have up to 255 fields and cannot exceed 1 MB in size. The size of objects in one account cannot exceed 500 Tb. |
|
IDE |
||||
Developer'sportal |
+ |
+ |
+ |
|
EclipseTools |
+ |
+ |
+ |
|
VisualStudioTools |
+ |
+, but onlyPython. |
+ |
|
Java SDK |
+ |
+ |
+ |
|
Mobile SDK |
IOS, Android, Fire OS. |
IOS, Android. |
IOS, Android, Windows Phone. |
|
PHP SDK |
+ |
+ |
+ |
|
Python SDK |
+ |
+ |
+ |
|
Ruby SDK |
+ |
- |
+ |
|
.NET SDK |
+ |
- |
+ |
|
Monitoring |
AmazonCloudWatch. |
Diagnostic API. |
DiagnosticAPI. |
|
Pricing |
The fee is to be paid upon use. |
The fee is to be paid upon use |
The fee is to be paid upon use |
|
Trial use |
12 months, 750 hours / month on a virtual machine, BLOB storage for 5 GB, 20,000 requests for the receipt and 2000 on-the-right. The NoSQL database is 25 GB in size and 200 million requests per month. |
$ 300 is given for any Google app engine services for 60 days. |
12,500 rubles are given for any Azure services within 30 days. Under the program "BizSpark" you can get $ 750 for 5 developers for 3 years. Andalsoyoucan getsoftwarefromMicrosoft. |
Programming platforms
For the implementation, existing software platforms were considered. Thefollowingcharacteristicsforplatformcomparison:
Theruntimeenvironment;
Availableobject-relationalmapping;
Implementing the release of memory;
Internal components;
Clientcomponents;
XML support;
Message service for intercrosses communication;
Userinterface;
Unittesting;
Asynchronouscalls.
Platform“.NET Framework”
The “.NET Framework” software platform [29] includes a common language runtime and class libraries. The runtime environment is the agent that manages the code at runtime and provides the underlying services. The class library is a complex object-oriented collection that allows reuse of types.Programs written in the“.NETFramework” environment are compiled in two stages. At the first stage, the source code is compiled during the construction of the project and instead of the executable file with the machine code; an assembly is obtained that contains the commands of the intermediate language. The second stage of compilation occurs immediately before the actual execution. At this point, the common language environment translates the intermediate code into the low-level native machine code executed by the processor.
Platform “Java”
The platform “Java” [30] allows you to develop and run programs written in the Java programming language. This software platform is not specific to any particular processor operating system. However, the compiler with a set of libraries and execution engine are implemented for different hardware and various operating systems so that programs written in the Java language can work the same everywhere.
Comparison result
The results of the comparison are summarized in Table 4.3. Thanks to the obtained comparisons, it was decided to use the “.NETFramework”platform; because of this platform has more advantages.
Table4.3.Software platforms
Characteristic |
“.NETFramework” |
“Java” |
|
The runtime environment |
CLR |
JVM |
|
Available object-relationalmapping |
Entity Framework, NHibernate |
Hibernate |
|
Implementing the release of memory |
Automatic |
Automatic |
|
Internalcomponents |
NET, COM |
EJBs |
|
Clientcomponents |
NET классы |
Java (JavaBeans) |
|
XML support |
SystemXML |
JAXP |
|
Message service for intercrosses communication |
MSMQ |
JMS |
|
Userinterface |
Windows Forms, WPF |
AWT/Swing |
|
Unittesting |
Microsoft Unit Testing Framework, NUnit |
JUnit |
|
Asynchronouscalls |
COM+QC |
EJB Message Beans |
Conclusions on the fourth chapter
In the process of analyzing database systems, it is revealed that the main database systems have similar functionalities, but PostgreSQL is open source software which can be used without paying.In the process ofanalyzing existing cloud platforms, it was revealed that at the moment the cloud platform “Microsoft Azure” gives developers more opportunities for developing cloud solutions, free software from Microsoft. In the process of comparing existing software platforms, the “.NET Framework” was chosen. This platform provides a large number of advantages to develop.
Deployment
Architecture
Architecture of the given solution is presented in FIPA [31, 32] (Foundation for Intelligent Physical Agents) format in thefigure 5.1.
Figure 5.1.Agent scheme
The aim of “Resource agent” is to run scripts in time schedule, which download data into raw storage and send messages about done job into “System for exchanging messages”; Resource agent” is scalable in width.If users want to get data from new source, we need to add new script, which will download data from a new data source.
The aim of “Service agent” is to run service, which gets job from “System for exchanging messages” and makes next tasks: run a calculation or converting data from raw storage to “Market database”.
The aim of “Market database” is to keep data, which is downloaded from different sources and calculated by “Service agent”, the scheme of database is presented in chapter 3.4.
The aim of “System for exchanging messages” is to provide communication among “Resource agent”, “Service agent” and “GUI”.
The aim of “Raw storage” is to keep data, which is downloaded in raw format; because of it can be reloaded, if “Market database” is shut down.
The aim of “GUI” is to provide opportunities to users to manage “Job queue”, run “Service agent” immediately and visualize data from “Market database”.
The detailed diagramof the given solution is presented on the figure 5.2.
Figure 5.2.Detailed agent scheme
The given architecture contains next elements:
“Resource agent” can run next scripts:
“Download rates”, this scrip downloads financial instruments from Moscow Exchange, saves them in raw csv format and makes a record about that the task is ended in the job queue, the given script is presented in Appendix B;
“Download currencies”, this script downloads foreign exchange rates from Central Bank of Russian, saves them in raw csv format and makes a record about the task is ended in the job queue, the given script is presented in Appendix C;
“Download RUONIA”, this script downloads data from Central Bank of Russian, saves them in raw csv format and make a record about the task is ended in the job queue;
“Download Discount rate”, this script downloads data from Central Bank of Russian, save them in raw csv format and make a record about the task is end in the job queue;
“Download offers”, this script downloads data from Finam, save them in raw csv format and make a record about the task in end the job queue;
Make backups from market database, such as SQL-script for scheme, dump and SQL-script with all of data;
“Service agent” run a procedure “Check queue” every an hour, but if it find a task in queue, it can run next scripts:
“Convert rates”, this script converts rates from raw csv format to core model and save them in market database;
“Convert currencies”, this script converts currencies from raw csv format to core model and save them in market database;
“Convert RUONIA”, this script converts RUONIA from raw csv format to core model and save them in market database;
“Convert Discount rate”, this script converts discount rate from raw csv format to core model and save them in market database;
“Convert offers”, this script converts offers from raw csv file to core model and save them in market database;
“Check queue”, this script checks “Job queue”, find a script and run given it;
“Calculate volat”, this script downloads needed data from “Market database” into core model, make calculation and keep data into market database;
“Calculate yield”, this script downloads needed data from market database into core model, make calculation and keep data into market database;
“Calculate var”, this script downloads needed data from market database into core model, make calculation and keep data into market database and excel file;
GUI, it is user of this system, he/she can run next tasks:
“Add calculation in queue”, User chose a calculation, set parameters to this calculation and send this record to job queue;
“Run Service Agent”, User run service agent immediately to check queue;
“Get financial instrument quotes”, User gets quotes of the given financial instrument;
“Get financial instrument scalars”, User gets scalars of the given financial instrument;
“Get financial instrument cashflow”, User get quotes of the given financial cash flow;
“Get discount rate information”, User get rates of the given discount curve;
“Get financial attributes”, User get attribute of the given financial instrument;
“Get dictionary of attributes”, User gets available values of the attribute;
“Find financial instrument”, User gets all financial instrument, which are correct to user's query;
Object-oriented model
Based on the identification requirements to date from chapter 3.1.some classes were developed: scalar, time series (quotes) and cash flows. To store indicators that change over time (have historical meanings) and are reused to repeat calculations, the following classes were implemented (Figure 5.3.).
Figure 5.3.Scalar classes
Entities for keeping quotes were presented in the figure 5.4.
Figure 5.4.Time series
Entities for keeping cash flows were presented in the figure 5.5.
Figure5.5.Cash flows
Graphical user interface
The graphical user interface of the application is released with using windows forms. Main elements of the main forms are 6 tab page: “financial instrument”, “currency”, “percent curve”, “calculations”, “attributes” and “attribute dictionary”
The main form of the graphical user interface presented in the figure 5.6.
Figure 5.6.Main page
User can find needed financial instruments, if he/she insert the part of ISIN of the financial instrument and click on button to search; it is presented in thefigure 5.7.
Figure 5.7.Find financial instrument
If he/she double clicks on title of the instrument, he/she can see next tab page: “scalar attributes”, “time series” and “cash flow”. If he/she changes actual date or data source, then he/she can see other attributes which are available for chosen data source and actual date, it is presented in the figure 5.8 and 5.9.
Figure5.8.Scalars from Finam
Figure 5.9.Scalars from Moscow Exchange
User can see quotes from different data source and choose period, for which data needs showing, it is presented in thefigure 5.10, if user choose a column, he/she can see graphic, it is presented in the figure 5.11.
Figure 5.10.Quotes from Moscow Exchange
Figure 5.11.Quotes from Moscow Exchange
User can see cash flows of the different data source and actual data for this cash flows, as you can see some cash flows can be unknown on the current moment, because of the will be known in the future, it is presented in the figure 5.12.
Figure 5.12.Coupons and Redemptions
User can get quotes of currency, it is presented in the figure 5.13, he/she can chose any currency from the list and get graphic of exchange rate, it is presented in the figure 5.14.
Figure5.13.Currencies
Figure 5.14.Quotes of Euro currency
User can get a percent curve, it is presented in the figure 5.15, he/she can choose actual date and click on percent curve and get graphic, and it is presented in the figure 5.16. If he/she clicks only specific part of the percent curve, he/she can see all values of this part (figure 5.17).
Figure5.15.Discount percent curve
Figure 5.16.Russian discount percent curve
Figure 5.17.Russian discount percent curve with a quarter of a year
User can add calculation in the job queue. User can run service agent immediately by clicking on run, and it is presented in the figure 5.18 and 5.19.
Figure5.18.Choose calculation
Figure 5.19.Run executor
User can see all available financial attributes in the application; it is presented in the figure 5.20.
Figure 5.20.Attributes9
User can see available values for some financial attributes in the figure 5.21.
Figure 5.21.Dictionary of attributes
Conclusion
The result of the work is a database of market data, a resource agent, and a service agent and user application. The developed storage allows storing the received values from various resources. The resource agent allows receiving data from different market sources. The service agent allows converting and storing the received values into a store of market data, and the service agent also calculates market risk indicators, such as volatility and value at risk.
In the process of analyzing current systems, it is revealed that the considered systems are very expensive and demand a lot of time to run them in production. Each of these systems has own specific architecture, which is hidden to developers, consequently, we cannot setting this systems without company's specialists and it demands additional money for supporting.
In the process of data sources analyze, it is revealed that the most of considered data sources have fee-payment API. They provide different market information, such as financial instrument data, foreign exchange rates, discount percent curves, offers and redemption cash flows, which needs to be aggregated to calculate risk metrics. The quality of the given data sometimes is not wonderful, because of some data is inputted by hand or received from other systems without any validations;
In the process of designing, it is revealed that the data needs to be kept with some history; because of they can be changed after update from data source. Actors and uses cases of actors were defined. Calculations of risk metrics are defined. Database for keeping market data is designed;
In the process of analyzing database systems, it is revealed that the main database systems have similar functionalities but PostgreSQL is open source software which can be used without paying.In the process of analyzing existing cloud platforms, it was revealed th...
Подобные документы
Web Forum - class of applications for communication site visitors. Planning of such database that to contain all information about an user is the name, last name, address, number of reports and their content, information about an user and his friends.
отчет по практике [1,4 M], добавлен 19.03.2014Overview history of company and structure of organization. Characterization of complex tasks and necessity of automation. Database specifications and system security. The calculation of economic efficiency of the project. Safety measures during work.
дипломная работа [1009,6 K], добавлен 09.03.2015A database is a store where information is kept in an organized way. Data structures consist of pointers, strings, arrays, stacks, static and dynamic data structures. A list is a set of data items stored in some order. Methods of construction of a trees.
топик [19,0 K], добавлен 29.06.2009Анализ деятельности ОАО "Авиадвигатель". Интегрированная логистическая поддержка промышленных изделий как совокупность видов инженерной деятельности, реализуемых посредством информационных технологий. Обзор системы Siemens PLM Software Teamcenter 2007.
курсовая работа [4,5 M], добавлен 13.01.2013История программных продуктов "Borland Software Corporation". Языки программирования Turbo-Pascal, Delphi, CaliberRM, Turbo C++ и основные их принципы работы. Развитие их совместимости с Windows. Создание корпоративных систем на основе Веб-технологий.
реферат [20,9 K], добавлен 02.04.2010Функции системы управления базами данных. Описание технологии Change Notification. Определение объекта слежения по зависимостям. Архитектурная модель программного комплекса. Практическое применение Database Change Notification. Создание обработчика.
контрольная работа [492,5 K], добавлен 21.04.2014Международный стандарт ISO/IEC 12207:1995 ”Information Technology – Software Life Cycle Processes” (ГОСТ Р ИСО/МЭК 12207-99) определяющий структуру ЖЦ, содержащую процессы, которые должны быть выполнены во время создания программного обеспечения.
презентация [519,6 K], добавлен 19.09.2016Review of development of cloud computing. Service models of cloud computing. Deployment models of cloud computing. Technology of virtualization. Algorithm of "Cloudy". Safety and labor protection. Justification of the cost-effectiveness of the project.
дипломная работа [2,3 M], добавлен 13.05.2015Создание баз данных с использованием Database Desktop. Проведение автоматизации рабочего места кассира. Описание входной и выходной информации. Выбор среды реализации, состава и параметров технических средств. Проектирование интерфейса программы.
курсовая работа [1021,5 K], добавлен 22.01.2015Program game "Tic-tac-toe" with multiplayer system on visual basic. Text of source code for program functions. View of main interface. There are functions for entering a Players name and Game Name, keep local copy of player, graiting message in chat.
лабораторная работа [592,2 K], добавлен 05.07.2009Модули, входящие в пакет программного обеспечения. Project Menagement, Methodology Management, Portfolio Analysis, Timesheets, myPrimavera, Software Development Kit, ProjectLink. Иерархическая структура Primavera и ее взаимосвязь с программой MS Project.
контрольная работа [9,5 K], добавлен 18.11.2009Назначение ElectriCS 3D - автоматизированная раскладка кабелей при проектировании, реконструкции и эксплуатации зданий. Расчет и построение зон защит молниеотводов и горизонтальных сечений. Формируемые проектные документы. Достоинства и эффективность.
реферат [195,5 K], добавлен 04.04.2013История Network File System. Общие опции экспорта иерархий каталогов. Описание протокола NFS при монтировании удаленного каталога. Монтирование файловой системы Network Files System командой mount. Конфигурации, обмен данными между клиентом и сервером.
курсовая работа [1,3 M], добавлен 16.06.2014Особенности технологии и главные преимущества системы имитационного моделирования Arena компании Rockwell Software, ее архитектура и структура, практическое использование для прогнозирования эффекта новых идей, правил и стратегий до их внедрения.
курсовая работа [802,4 K], добавлен 08.06.2012American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. Business Strategy Apple Inc. Markets and Distribution. Research and Development. Emerging products – AppleTV, iPad, Ping.
курсовая работа [679,3 K], добавлен 03.01.2012Opera как веб-браузер и программный пакет для работы в Интернете, выпускаемый компанией Opera Software. История браузера Opera. Возможности программы, управление и интерфейс, версии для других устройств. Положение на рынке, критические замечания.
реферат [18,9 K], добавлен 20.11.2011Процесс и результаты заимствования терминов из английского языка в русский в сфере компьютерной деятельности. Рассмотрение основных типов заимствований; термины hardware, software, команды и web-термины. Дискурсивный анализ обоснованности заимствований.
дипломная работа [101,9 K], добавлен 09.10.2013История развития средств обработки видео с использованием компьютеров. Ознакомление с методиками нелинейного и линейного видеомонтажа. Эволюция программы Sony Vegas Creative Software; характеристика системных требований и интерфейса каждой из ее версий.
контрольная работа [832,2 K], добавлен 17.09.2013Історія виникнення та сфери використання тримірної графіки. Дослідження процесу візуалізації тримірного зображення. Створення програмного забезпечення, здатного перетворювати стандартні графічні зображення до графічних зображень внутрішніх форматів Мауа.
дипломная работа [3,6 M], добавлен 23.09.2013The famous hacker Kevin mitnik. Tsutomu Shimomura is hacked by Kevin Mitnick. Sklyarov - a developer of software for reading electronic books. Wozniak famous for being the co-founder of Apple. Levin was accused of having committed one of the biggest bank
презентация [904,2 K], добавлен 22.05.2012