Posted by Paul G Smith on 28 Oct 2015
Good afternoon. My name is Paul Geoffrey Smith, and I'm one of the founders of Mobile Trading Partners LLP (MTP).
Today I am going to talk to you about the process we follow to create a Mobile Trading app for your brokerage or bank.
As with our web widgets, all our mobile trading apps are built upon the foundations provided by our server middleware's data flow architecture. In addition, there is some extra technology required to handle account signup, signing on and off, routing of transactions and their results. Please see separate articles for information about how these components all work.
My initial assumption here is that the mobile app we produce would be branded for your company, and that it would use your prices for market data and charts, and that your company's trading back end is used to facilitate trading. Other combinations are available - please read on and it will become clear.
Our iOS and Android mobile apps are designed and built using the best programming tools specified for the mobile platform: on iOS we use Xcode with the Objective C and Swift programming languages, and on Android we use Android Studio with the Java programming language. This produces far better results than commonly offered HTML web apps. The benefit of this is that all our apps can access all the UI features of their mobile platforms, offering the maximum performance (both in terms of speed, and battery usage) and the highest levels of security. Your users will thank you for this attention to detail.
Mobile trading apps have a fair number of required features - ones that are effectively compulsory, as in an app that excludes them would be pointless - and a host of optional ones that you can choose between according to your brand and market needs.
Required features include the following:
- display of market data
- sign on to a trading account
- place a market order
- view positions
- see the state of the user's account
Optionally we can add, subject to trading back end capabilities:
- demonstration accounts
- support for other order types (limit, stop, and so on)
- editing of positions
- editing of working orders
- cancellation of positions
- cancellation of working orders
- view order history
- sign up for a new account
- manage account
- push notifications for account related events such as margin calls
- payment provider integration, to facilitate easy account loading
Other optional features include:
- editable watchlists
- depth data
- VWAP calculator
- push notifications for market related events
- advanced charts and related functionality
- market news (licensed from our media partner FXStreet)
- financial calendar (also licensed from FXStreet)
- social media integration: Twitter, Facebook, Weibo, and so on
- Social Mobile Trading[TM] including copy trade functionality from MTP
There are two levels to branding your mobile trading app. The first level is what we can provide out of the box so to speak, with no coding required so it's usually possible to provide this level of branding for free. This is where we just drop your logo into our standard app design. No other changes.
Of course the sky's the limit as far as branding and UI customisation. So for a reasonable fee we can take the design much further. We can even work with you to create something entirely new.
The key to making your mobile trading app useful is how we hook up the trading functionality to your trading back end. We prefer to connect using the industry standard FIX protocol but of course this is not possible for all systems. As long as some form of trading API exists that we can connect to and that provides the requisite underlying functionality, it's straightforward. If you use MT4 then we need to connect with some form of bridge: we have partners who provide bridge software that can be licensed if needed. We already have deep integrations with LMAX, in case you are considering licensing their highly regarded trading technology, and we also have experience integrating with the PrimeXM Xcore.
Next we need to consider where the market data comes from. Clearly this needs to be the same data you use to price trades. We apply the approach of having middleware servers of our own between app users and the upstream liquidity provider (or your own trading engine) that provides the pricing and handles user authentication and routes trading transactions. In summary, we have a really smart data stream processing system that takes prices in at one end and efficiently spits out the prices to connected widgets and mobile devices around the world. It's a kind of "content delivery network" for FX quotes and associated data. Please see my separate article [#] on how all that works.
We are assuming here that we are taking your own price data. So we need to connect up a tiny piece of middleware, a little piece of ingest code, to collect pricing in real time from your trading engine. This can use FIX protocol or any other internet accessible method to connect. I can't think of any cases where we failed to make that work.
We can also take pricing and route orders directly from and to your upstream liquidity providers, if you wish: we have top tier connectivity to most liquidity providers in London and New York as well as being able to make arrangements with aggregating service providers like LMAX and PrimeXM to, subject to appropriate fees and licenses which are payable to them, use their pricing for your website.
Once we have the market data flowing through our system, and the trading functionality is connected, we just need to spin up servers in the geographic areas where your customers connect to the Internet, direct the quotes streams to those servers, and with a simple configuration setting set up your mobile trading app to use only those prices. No coding required.
If you provide depth data with your prices, we can include a neat depth or VWAP component on your mobile app. If not, the multi-instrument watchlist-style market data display is always useful.
Next we need to hook up the charts. We deliver chart data through our content delivery network as well, but it is a bit more complicated because of course charts are built out of historic data. We already hold historic data for a number of liquidity providers under applicable agreements so it is possible that we can provide those for your trading app, subject to appropriate licenses and fees. Assuming we are using your pricing, we would need to "import" your historic data into our database to start this process. Subsequent pricing will be added to the database automatically by our data stream processing system.
Once that is all set up then it's again a relatively simple matter for us to enable delivery of the chart data through our content delivery network and configure the mobile app to ask for the correct chart data. Once again, no new coding is required, the functionality already exists in our apps. Lastly we will need to assemble and integrate the optional functionality you have chosen.
We normally charge a simple annual fee for the mobile trading app, plus a monthly tech operations fee in some circumstances. We additionally charge an integration and customisation fee up front if applicable. Factors that will influence the final cost are:
- if significant UI customisation beyond the free logo placement is required
- the optional features you have selected
- if your pricing data or trading system is unusually complicated to connect to
- if we need to license market data from a liquidity provider on your behalf
- if you have an unusual geographic distribution of end users
- if you have a particularly large number of end users
I hope that this summary of how we would integrate your mobile trading app is useful. I look forward to taking about the specifics of your project with you in more detail.