Risk Management System
for the Forex Market
The system is essential for Forex market analysts, which are spread around the world and need to be able to evaluate information at the world financial markets without delays for reduction of risks related to making of investment decisions.
Byndyusoft was set a task to create a monitoring and risk management service for the Forex market
from scratch. For this purpose it was required to collect and process live information streams from
internal information (dealing) systems of the company, allocated all over the world, analyze data and
display results in such way, that the analyst could track all changes (grid description) on a
In the process of designing
of the system architecture, special attention was given to the ability of analytical service to withstand
high loads (about 100 000 changes per second), provide protection from unauthorized access and demonstrate high
level of
Arrangement of works
The customer was not ready to clearly state the task description as of the start of works, therefore the team decided to execute the development of service without preparation by taking the following steps:
- Execute the design of the system on the basis of modular architecture to achieve independence, substitutability and changeability of different parts of the system
- Fulfill requirements to service (assignment of tasks for development) in small parts,
receiving regular comments and notices based on the results of delivery of weekly, and
afterwards — of
micro-releases - Perform the delivery of new, operable versions (releases) every month
The goal of the team and the customer was to examine the possible solutions and by means of multiple iterations obtain a product, resolving the problems of the customer. It is nearly impossible for analysts to come up with such a project at one blow.
Quality and reliability of the systems were ensured by autotests. Two types of tests were written:
modular tests and integration tests. Modular and integration tests covered almost 100% of
Modular tests were run in the event of any modifications in the code to assure that the logic remains in good working order. Integration tests were run on a daily basis through the CI server — TeamCity to check all the business scenarios from the viewpoint of user interface.
As a result of full automatic checking, new versions started to be delivered every week, and later on — every day. Big releases were produced once a month.
Technical solution
Analytics system obtained and processed data, which were coming through message queues from other internal services of the customer company. This allowed to increase reliability of the system, to implement parallel processing of data for reduction of processing time and to increase response rate of the client.
- Changes of lot at electronic stock market make it into RabbitMQ queue, then only changes are transferred. This allows to reduce traffic and improve performance.
- For transfer of data Publish — Subscribe template is used, which makes it possible to scale data processing and connect several analytics systems.
- Different statistical and financial indicators are calculated in the analytics service in a form,
convenient for analysts. Afterwards the data are saved in DB and they update current data slice.
Current data slice is stored in
Random-access memory, which allows to minimize response time from the Silverlight client. - Silverlight client has a customized and adjustable interface, which enables the analysts to adjust data representation in accordance with market indicators of current interest.
After several prototypes the system was completed and handed over to the customer. Currently it is integrated into the customer’s infrastructure and is in operation as one of internal services of the company.
- Byndyusoft was able to meet the deadlines and made it possible to finish integration into the customer’s infrastructure in time.
- Thanks to the utmost technological competence Byndyusoft was able to design the system, which meets the client’s requirements relating to response rate, reliability and scalability.
- After several prototypes the system was completed and handed over to the customer. Currently it is integrated into the customer’s infrastructure and is in operation as one of internal services of the company.