Currency trading is an industry that triggers the great interest of income seekers. Traders worldwide turn to software companies with requests to build a trading platform that could effectively and quickly analyze data on currency pairs. Inoxoft has accepted such a request from a world-scale trading group. In this article on how to build a trading platform we’ll talk about the challenges we faced, how our team worked and provide some insights how to develop an effective trading solution.
The need for automated trading systems is growing
Advances in software development together with scientific, mathematical discoveries and innovations during the last 10 years have increased man’s knowledge in all spheres of the modern world and trading is not the exception.
Imagine a bulk of traders with tones of manual work in Excel sheets to define the ideal strategy to sell or buy currency at the exact time of the day. 25 currency pairs are to be evaluated, then strategy comes to force, an ideal deal is identified within seconds and done with a broker – that’s how traders achieve a pretty good income. The growing need to automate every piece of daily work of a trader is still of high importance – from finding data on currency exchange pairs to the discovery and application of the most suitable trading strategies and deal management. Thus, the competitive spirit to operate trading processes faster via the tools of technology has led to an active trading platform development.
What is a trading platform?
Online trading platforms are web and mobile applications that empower investors and traders with tools for monitoring quotes, charts, diagrams for virtual trading in real-time. It displays a “buy or sell” ratio, calculates bid-ask spread, allows managing deals with brokers, executing transactions, etc. Evidently, trading platforms can not be done in a matter of hours. Different trading platforms demand different time scope for being developed: from several months to a year for those who need advanced tools and want to conduct complex calculations, having an all-in-one software with in-build strategies and algorithms.
What was Inoxoft experience?
In our case, it all started with the aim of London deal-makers to automate data withdrawing and processing. Indispensable need to track the information coming from 3 world stock exchanges caused monumental work to be done. Our clients had exact needs, and we were ready to find a solution to fulfill them.
First of all, the project is unique in a way it differs from other written solutions with the only function to click and see algorithms collecting the data. Our clients decided to go out of the box and use the 10-year’s experience in trading currency, then implement it into the software and leap from trading with 5 brokers to, let’s say, 50, 100 or even more simultaneously.
Implementation of software with enrooted algorithms and parallel task execution for smooth trader-broker communication was an alluring challenge but resulted in an elaborate app. The automated trading system conducts a simultaneous analysis of large numerical data, establishes constant communication links between a trader and a licensed broker. Reduced time of order generating is among numerous advantages of the solution.
What were the challenges?
To help you understand the complexity of the algorithm, let’s make the analogy with a real-life example. The human body needs to engage around 200 muscles to produce a single step. The nerve impulse takes its road from the brain to the spinal cord, then reaches nerves, cells and muscles to make a step. The domino effect of interconnected processes, isn’t it? The same is with currency trading. There are different accounts, range of currency pairs, multi-sets of conditions which finally result in a “trade” or “not trade”. Highlighting some of the challenges, we managed to:
- To grasp in the shortest terms the mechanics of the brokerage system and dig deeper in history of currency trading. What evolved for centuries had to become clear for engineers in 2 month period.
- To impeccably follow the complex logic of calculations while implementing them into the app. Despite millions of formulas, there is an endless number of dependencies between different components that generate and define the strategy.
Initial analysis of how we should organize the work lasted up to 3 months. We learnt in what way calculations had to be done. It was fundamental from the point of algorithms and mathematics.
Accepting and resolving technical challenges
Inoxoft engineers dealt with CPU-bound tasks to execute multiprocessing and launch parallel calculations — everything for maximum speed in counting currency waves. Exploration how to withdraw currency pair correlations, discovery how to integrate with the broker and achieve excellence in support services entailed specific technical work.
Development of desktop Windows-based app that had to empower its scripts to withdraw data, integration of 3rd party services within the system… These tasks were far from trivial, rather challenging and experience-providing ones.
Client-team communication that values the most
The management of the financial project should be marked with the dedication of the team to start the work with actual data as soon as possible. It was the night from Sunday to Monday when the currency stock began its work and when the whole team worked intensively. Separation component in the work of the team with one person ahead, responsible for general architecture, led to success.
Every time we wrote to the client, they were available and open to contact with us. Such an active position and involvement of our client, their visits to our office became a strong driving force for us.
Platform features depend on the approach and strategy that traders stick to
Development of more complex or more easy-to-use trading platforms depends on the experience of traders and their needs. Daily traders earn on market inefficiencies during certain hours. That’s why they should track price actions in short time periods. Trading on binary options, you’ll need charts with exchange rates quotations with a possibility to choose a suitable time frame. Each strategy and approach to trading demands different operational tools, schemes of how and what data should be examined and displayed.
Basic requirements for trading software
Awarding winning-solution is the one that fully covers software requirements. The key non-functional requirements for trading software are:
- scalability (an ability of the system to cope with increasing number of requests and workload);
- great performance and multiprocessing;
- safety and security (how it responds to sudden breaks or attacks, and protects from unauthorized access);
- interoperability (how the system communicates with other systems);
- reliability (how it resolves failures and runs despite problems).
Algorithmic trading solutions demand high-level quality work and attentiveness. Clear non-functional requirements help to understand how well the system needs to function. They are controlling criteria for development teams to specify and define the quality of a software product.
What functional features should a trading platform include?
Important functional requirements regard effective support of different payment systems, secure cloud hosting services, strong data analysis tools, risk management, accurate quotes and necessary types of charts. Some basic features of automated trading solutions that all traders pay great attention to are:
- Dashboard with statistical information. Platform has to run constant updates and operate information from numerous charts, sheets with prices for a real time simultaneous analysis of exchange rates within different time zones.
- Authentication. Easy, but reliable verification process – that’s what firstly gives an impression of a secure platform and high-class work of engineers. Trading software can support access from numerous accounts like in open-source trading platforms with two factor authentication (via SMS or Google Authenticator as an example), but you may as well have a system with an access activated via email, phone number or other ways for only a group of traders.
- Convenient CRM and Admin/User functionality. In such a system, it is must-have to manage everything quickly at one click: customer requests, orders enlisting and status indicators, personal accounts, access permission, managing transactions, pending and submitted orders and more on the list. All of this allows making decisions in the shortest terms possible and ensures constant reach to necessary information.
- Fast searching and filtering tools. The system should provide traders with a possibility to quickly search rates, orders, currencies, indexes, commodities and filter the generated information in real time.
Benefits of outsourcing overwhelm in-house development
Of course, it all depends on your time and budget limits. In-house development will cost you much more, but the key advantage is that you have a possibility to work side-by-side with a software development team. Outsourcing is more widespread and proves itself to be really effective even if there’s a difference in time zones, communication is online, etc. Nowadays software development companies practise the best management methods and agile approach that helps resolve all these challenges successfully. To be honest, it is 21 century, and daily communication is not a problem at all. Agile methodology, Atlassian software apps like Jira, HipChat, Gliffy, Trello allow to have a complete view over the development and maintain transparent and regular contact with the team. As our experience tells us, in terms of trading software development real challenges appear with understanding business logic, resolving vulnerability of the system and technical issues.
Competencies of the team
What should software engineers know to build a software trading platform? Do not expect them to know everything inside out about trading stocks at once. Thorough understanding of the domain takes time. However, if you are working with true professionals, they will demand a mass of information and value client’s engagement into implementation processes. In general, technical requirements to a team vary from project to project, but software engineers are often wanted to have the following competencies:
- be highly flexible and react quickly;
- adjust working hours to definite time during day and night shifts;
- care about constant communication and details negotiation;
- understand client’s pain-points and contribute to business needs.