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 the article we discussed how to build a stock trading platform, shared the challenges we faced, how our team worked and provided some insights how to develop a trading platform.
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 online trading platform development.
What is a trading platform?
Have you ever wondered how to make a trading platform or how it works? First of all let’s start with basics. 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.
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.
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.
Users expect trading platforms’ 24/7 availability and being alert about all the latest updates or for any security reasons. Customizable notifications allow you to stay up to date while the trading platform will send notifications about your stock position, monitor economic events, price changes, market development, technical indicators etc.
It is important to be informed before making any financing decisions. Convenient news, relevant overviews and insights of the global currency markets shown in real time and available right on their stock trading platform is exactly what helps to avoid mistakes due to ignorance.
Withdrawals & payments
This feature is needed to conduct trading operations, monitor fund flows and withdraw funds from your personal account in a faster and more secure way through different options: сredit card PayPal or simple Bank transfer. You will receive a notification once the processing of your withdrawal request has been completed.
Trading platform has to ensure that all sensitive user data is encrypted by following the rules of the Financial Industry Regulatory Authority FINRA and the Securities Investor Protection Corporation SIPC
How to create a trading platform
Trading platform software development involves a number of stages including:
If you’re developing a trading platform from a starting point, and you’re dealing with a sensitive matter such as user’s data, social security numbers, credit card credentials, you need to take care of the legal part in the first place. If you’re operating in the US, you have to meet the standards of the Securities and Exchange Commission. In Europe, trading platform developers monitor if their implementations meet the legal standards of the General Data Protection Regulation (GDPR).
Other regulatory organizations and investor protection programs include:
- FINRA – Financial Industry Regulatory Authority
- SIPC – Securities Investor Protection Corporation
- NFA– National Futures Association
Deep market research
If the concept of the project is vague, needs a thorough estimation of the target audience and market trends, try a Discovery Phase service. A discovery will ensure your project’s usability for end-users, estimate the potential costs and time, refine and document requirements The output of the process will be the compiled Solution Vision and Scope Document that includes:
Business Requirements. The team analyzes your business needs, business background and risks.
Functional and non-functional requirements. The team creates the solution’s functional decomposition to cover key business processes in the most efficient way.
Technical vision. The part that refers to the solution’s architecture, technology stack, entity-relationship models, and technical risks.
Wireframes. Schematic UX design (low fidelity wireframes, which reflect main screens, and user flows).
Choosing a platform
The next step is to decide whether your trading system will be a mobile version of your existing stock market website or a fully-fledged app. Mobile version of a website adapts to different devices. In this scenario there is no need to create an app separately for different devices and operating systems. Fully-fledged mobile app can integrate features that can not be fully implemented on the site.
The next phase is to choose the platform: Android, iOS, or both. A survey on mobile operating systems states that Android is a leading mobile OS holding 74.6% of the market share, while iOS takes 24.82%. Also, you can prefer cross-platform application development. That means the app can be used on different operating systems (iOS, Android, Windows, etc) The most popular cross-platform mobile frameworks to build apps are React Native and Flutter. React Native is used for building cross-platform mobile applications with client-oriented UI/UX. And Flutter allows developers to build for iOS and Android simultaneously from a single code base. Implemented in dart language it is a perfectly fast and high performative tool.
Trading platforms development is a complex process. It includes:
- Back-end development
While developing a trading platform, we involved the team of specialists intechnologiessuch as:Python (Django), Celery, EC2 instance (linux based), EC2 instance (windows based), ElastiCache (Redis), FIX Pandas, Quickfix, RabbitMRDS (PostgreSQL), Redis 3.0.6 Sockettage etc. This stage also includes:
- Planning to secure your platform in terms of incorporation of modern techniques and tools such as multi-factor authentication, bank-grade encryption, next-generation firewalls, etc.
- Developing APIs to implement the core features.
- Signing-up for 3rd party APIs to incorporate the non-core features, such as access to specific markets: stocks,currencies, orfutures markets.
Front-end development consists of
- Creation of a platform design and a web interface. Prototyping in the app’s development lifecycle is a fast way to draw out the first design sketches. It should direct to a common vision with a customer over how the app will feel and what iterations there should be. Afterward, UI/UX designers can draw the design of the app incorporating the best transitions, animations, styles to make the app feel smooth in use and convenient in navigation, and have an intuitive interface design.
Testing and quality assurance
It’s difficult to underestimate testing as it is the process of finding defects in a software application, especially in Fintech. Financial technologies can’t afford to have defects because people can lose money. The more flaws quality assurance engineers can find, the more chances are that the final product will work smoothly. The structure of the testing process depends on the trading platform development company or requirements of the client, and may include:
- Functional Testing based on making an input and examining the output. The test cases of financial applications are conducted with the help of fake cards. These cards aim at understanding the quality, speed, and accuracy of payments.
- Performance Testing is the process of finding out the speed, scalability, and stability of the system. The speed is measured to understand the velocity of app responses, scalability shows the maximum number of users that can use the application at once so that the app didn’t crash. And, stability shows whether the app works properly under different loads or there are potential defects that may occur.
Final rounds of testing and bug fixing by software engineers are followed by a release. Apps are uploaded to the stores and from that moment, you need to keep your app up-to-date to decrease bugs caused by updates in third-party APIs and update your app with new features.
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.
What was Inoxoft experience?
In our case, trading platform development services 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.
Finally, if you want to create an online trading platform, you can always discover more information through the case study. Having a clue how to create a trading software project is always beneficial and helps to discover new ideas for your own project.