Customized Trading Solution
Whether you are an independent or institutional trader, one day or another, specific needs in relation to your trading appear, what are the solutions to meet them?
It usually starts this way
Usually, you simply choose a broker, download his platform and trade using the proprietary trading software provided.
What happens when you switch brokers?
If we change brokers because its user interface does not suit us, then no problem, we simply use the software provided by the new broker.
However, if we change because the conditions of the new broker suit us better but we prefer the software of the old broker, we now find ourselves analyzing the market on the old software and placing our orders on the new one, which inevitably leads to lower concentration and associated errors.
This type of configuration has no flexibility and specific needs cannot be addressed.
What is the trend?
For a long time, proprietary trading platforms gave the user a lot of leeway and some were even particularly customizable.However, recent updates to these terminals show us that those days are over. The trend is now clearly towards web applications, sometimes launched as standard software, but this is just a container that launches the web application in a dedicated window. In itself, web technologies do not pose any problem, on the contrary, the products can be particularly responsive, and the user experience is often excellent; in fact, the best user interfaces today are web applications.
Unfortunately, these newer platforms tend to all offer more or less the same functionalities, and this ease of use often comes at the expense of flexibility, making it virtually impossible to address specific needs inside the platform.
How to meet specific needs?
In our hyper competitive world, it is essential to stand out from the competiton. However, even if you have developed an innovative trading method or strategy, how can you implement it effectively if you only have at your disposal the same standard tools as your competitors, and especially if these tools are not specifically adapted to this new need?
Whether you need advanced technical analysis features, specific charts or candles, or complex indicators requiring a bespoke user interface or whether your needs are related to the back office, such as a specific management system for order supervision or routing, personalized data storage or advanced data mining or artificial intelligence, the user interface must be separated from the broker's infrastructure, it thus becomes possible to place between the two any type of solution that meets your specific needs.
This diagram may seem complicated at first, but in fact, in the central part, in blue, only (at least) one connector is needed, all the other modules are optional and depend on your actual needs.
In fact, it's very simple, you already have a privileged trading terminal (on the left) and you probably already know which broker (on the right) is best suited to your needs, this combination will therefore indicate which connector we will have to make available to you. You can now trade with your favorite terminal on the broker you have chosen.
Now that the broker is dissociated from the user interface thanks to the connector, we can come and plug into this (or these) connector(s) with many modules that will allow you to trade exactly as you wish.
You will find below a description of the different modules that we have produced or integrated and that we can adapt for you.
Terminals available on the market
It is possible that the preferred trading terminal you are currently using is able to connect to a different back-end.
The following trading terminals offer this possibility, although certain restrictions apply (mainly in relation to a minimum number of users or substantial entry or customization costs):
TradingView
eSignal
TradeStation
TC2000
cTrader
MetaTrader
ProRealTime
NinjaTrader
TraderMade
This is a non-exhaustive list, other platforms are eligible, ask us.
Bespoke Trading Terminals / Custom Stock Charting Software
The trading terminals available on the market are very versatile and offer a wide range of features, this abundance can sometimes be detrimental to the user experience and productivity, as all these options, menus and button palettes can often burden us and novice traders can quickly be distracted or be confused by all of these options.
Personalized trading software can not only allow the integration of the specific functionalities required, but also offer the advantage of having a sober and functional interface dedicated to our way of trading, without distraction and therefore less error-prone.
Over time, Ophéa has developed numerous software libraries allowing it to rapidly develop affordable user interfaces that meet specific client needs.
Supervision and Monitoring Console
This is a key feature in multi-user environments. It allows precise control of all orders, such as requesting authorization from a manager or a supervisor to open a new position that would exceed the trader's profile, automatically diverting orders from traders whose losses exceed a certain threshold to the simulation engine (virtual or demonstration trading, paper trading) or simply block all orders from novice traders when market conditions become too volatile, in the event of a news or major event for example.
A dashboard can show managers at a glance what the overall or individual level of exposure is and allow him to close any trade that seems to go wrong.
Automated trading (robots) is also controlled and managed by such consoles, or possibly the same console when the workflow requires it.
Web Application
This is the best possible choice for most new projects. Web technologies make it possible to develop particularly responsive programs and the user experience is excellent.
The new functions are easy to integrate and are immediately available without having to redo the entire distribution and installation procedure on all the devices. The same code works on all platforms PC / Mac / Android / iOS / ...
Web applications can obviously be used in any browser, but in a corporate environment we usually provide a container that launches like any other application and calls the WebApp from that window, which allows a minimum level of intrusion into the system and offers the user the best of web technologies and the workstation experience.
Thanks to the software libraries we have developed, we can realize a tailor-made solution without having to reinvent the wheel for each customer, and this, at a fraction of the cost of a historical application for the workstation.
Mobile Application Charting Terminal
Special needs may make it necessary to develop a dedicated mobile application, but in general, in the context of user interfaces, the best choice is the web application integrated into a container application.
Desktop Charting Terminal
Special needs may make it necessary to develop a dedicated workstation program, but in general, in the context of user interfaces, the best is the web application embedded in a container program.
Bespoke Trading Solution Modules
Most of the modules shown in the central part of the diagram above are optional ; for the solution to be functional, it is obviously necessary to integrate at least one connector.
Markets and Brokers Connectors
The main 5 possible connectors are:
FIX
This is the easiest and most efficient way to connect to a market or a broker when it supports it, and it is the case for many. Integration is fast and cost-effective. More information about the FIX protocol.
API
It is common to have to interconnect with a vendor that imposes its own application programming interface (API), this is more often than not quite similar to an integration based on the FIX protocol, however, the programming and coordination time can be longer in case we have never made an interconnection with this particular partner. When the solution requires it, we can also provide an API on your end.
Terminal
When the FIX or API solutions are not available on this platform, but the terminal offers advanced programming features, we develop a plugin that manages the interconnection, this is the default connector for MetaTrader, which gives access to most brokers that accept MetaTrader terminals.
WebSockets
WebSockets are increasingly supported. Even though WebSockets are a standardized transport protocol, the messages that are transported by these sockets are proprietary, which requires cooperation and documentation from the provider and requires a bit more coordination and programming than previous connectors.
Proprietary
Sometimes it is necessary to fall back on a proprietary method of interconnection. In simple cases this can be easy and done for a more than reasonable cost. But in any case, full cooperation from the supplier is normally required and additional costs on the supplier's side may apply. We connect to JForex in this way using its SDK, it is also possible to connect to the Swiss FX Marketplace (SWFX) provided by Dukascopy using the client software (Terminal Connector) or the FIX protocol.
Others
'Others' usually means 'Proprietary', but sometimes new solutions emerge. For example, our connector for WebSockets presented above started as a proprietary project in 2014 and this type of implementation has now become more common than proprietary connections. There is no rule, just tell us who you want to connect with, there is always a technical solution, we will get back to you with a quote, then it's up to you to decide if the proposed solution fits the budget.
Dispatcher
This is a strictly technical module, it simply manages the requests made to it and retransmits them to the corresponding module or terminal, likewise it transfers the data from one point of the solution to another. For multi-module solutions, it also manages data exchanges between the different modules. For example, the user selects a new instrument in the client software, the dispatcher receives this request, he then makes a request to receive the market price feed of this instrument from the broker and subsequently he will retransmit the market information received to the terminal who had requested it.
OphéaDB
Most database engines have been developed to be particularly versatile and optimized to best handle disparate data that is updated sporadically. As the volume and frequency of updates to financial data is considerable, these engines generally behave unsatisfactorily with this type of data or are not intended to return results in real time, which is not satisfying in trading either.
We have therefore developed, and optimized over time, a database engine dedicated exclusively to the processing and storage of financial data. Thanks to its specialization and its exclusive focus, OphéaDB is the database engine which offers by far the best 'performance / resources used' ratio on the market for the storage and processing of financial data.
Its simplest use case, in the context of a trading solution, is to use it as a cache engine for market data, which greatly improves the user experience in drawing the price charts almost instantly. Some charting softwares are particularly bad at this. When the market volatility explodes, we cannot afford to wait several seconds for the display of the shorter period price chart.
Assuming that it runs on suitable hardware, OphéaDB can filter (market screening) the entire market using complex algorithms with response times near to instant. Likewise, it can perform historical tests (backtesting) of particularly complex strategies in a matter of minutes.
Business Data Storage - xSQL
If you are considering a custom trading solution, there is a good chance that you will need to store data related to your trading, such as backtesting results, information or parameters related to charts and the analysis you make of them, to persist ephemeral data or simply to share information.
The Dispatcher can use any popular database system, from SQLite to an Hadoop cluster to MySQL, MariaDB, PostgreSQL, NoSQL databases such as MongoDB or Cassandra, or even your company's Microsoft SQL Server.
Artificial Intelligence / Data Mining
More and more trading systems are using artificial intelligence, in particular deep learning and neural networks, to analyze the market through pattern recognition or the identification, classification or clustering of the market behaviors. Frequent other uses are portfolio optimization or risk management.
This module can be a tailor-made module that we develop for you, or the integration of a solution that you have already developed or a connector to a machine learning or data mining solution of the market based on PyTorch, TensorFlow, Gluon/MxNet, MCT/CNTK, Keras, Theano or others.
Market Screener
Depending on the type of market you are dealing with and the way you trade it, a good search or filtering system is essential for the success of the strategy. Unfortunately, most filters on the market are extremely limited, if not archaic, and only allow you to filter based on a few basic criteria.
Being based on OphéaDB as well as on our artificial intelligence and data mining modules, our filtering module is a real modern trading tool that allows you to search for an instrument on all the available information, as well as any indicator, price trends, graphical configuration or even complex algorithms.
Our filtering module can be used in real time, as a search engine in the graphical interface, or as an alert system and the criteria are saved to run automatically at certain key moments (temporal or linked to the price or volatility evolution), or to continuously monitor the market. The system makes it possible to target the evolution of a specific instrument or to monitor the entire market globally.
If the user is not logged in when the system identifies that the monitored instrument, or a new instrument, matches the criteria, he can be alerted by email or even SMS.
It is possible to use this module very simply from the automated trading strategies (robots) which allows to trade a dynamic list of instruments corresponding to certain criteria by having to type only one line of code.
Automated Trading Engine
Beyond the automated trading functionalities of the various terminals, the automated trading module allows the execution of mechanical strategies at the back-office level, which on the one hand allows them to operate independently of the client terminals, but also to control and supervise them thanks to the appropriate console.
The system supports rules written in EasyLanguage, MetaQuotes Language (MQL4/MQL5) and Java (for JForex). It is also possible to write programs in Python, Java, C++ or C#, Lisp, Swift, JavaScript or any other language to be agreed.
At launch, we choose to launch the strategy to trade: either on the market directly, or on a demo account or to do paper trading in forward-testing mode.
This module is generally associated with the backtesting module so as to test the behavior and performance of the trading robot under past market conditions.
When the personalized trading solution is combined with an equally personalized terminal, it is then possible to develop hybrid strategies which are based both on graphic elements in the terminal and on an automated part. For example, the trader can graphically define price levels or indicator values that can then serve as a trigger or abandonment of positions, stop losses or take profits or from which level we can start to follow the stops. Once the front-end and the back-office are connected in a personalized way, anything is possible.
Backtesting Engine
The system of historical tests makes it possible to verify the behavior and the performance of trading robots, thanks to the integration of this module with the OphéaDB database engine, this process is particularly fast, even with complex strategies or applied to many instruments.
At the terminal level, the use of the module makes it possible to simulate and replay any period of the past, in real time or in accelerated mode, so as to meet the training and coaching needs.
Paper Trading Engine
Instead of transmitting the orders to the market, they are transmitted to the simulator, which allows you to test strategies, to train or to coach junior traders without risk in the market.
Any module capable of placing orders can use it: terminal, automated trading engine, backtesting engine or even an external program if necessary.
Unless you have very specific needs, this module is simple and can be activated quickly and at very affordable costs.
Orders Control
We all make mistakes, but when it comes to market orders it is hard earned money that can potentially be lost, there are a number of checks that should be done routinely, even if only the number of units to buy (do we really want to buy 1'000 lots of EUR/USD (each of 100'000€) or is it 1'000 units (1'000 € in all) that we want to buy? Likewise, do we really want the stop loss at 1,000 pips (one thousand pips), or we had rather 1.000 (one pip) in mind?). A simple confirmation pop-up when the submitted values appear inconsistent or unusual can sometimes save a lot of money (in trading, we already earn a lot by not losing).
We generally implement the minimum risk management rules at this level, such as maximum risk of x% of capital per position, maximum exposure of y%, maximum leverage, maximum losses per position before to force closing, maximum cumulative losses over a period time, ... and often with two trigger values, one that generates a warning, the second an automatic action or to block user actions.
In a multi-user environment, this module is mandatory and makes it possible to require authorization from a manager or supervisor to open a position exceeding the trader's profile, to automatically divert traders who have exceeded their tolerated losses to paper trading or simply block all orders from junior traders when market conditions become too volatile, in the event of a news or major event for example.
Orders Management
Having a personalized solution also offers the possibility of better managing open positions, for example by simulating types of orders that are not supported by the market: some markets do not support stop losses, the system can then monitor the evolution of the price of the position and exit automatically at a predefined threshold, which makes it possible to simulate the behavior of a stop loss (ditto for markets or brokers that do not support trailing stop losses, or even better, to define a threshold from of which the stop loss turns into a trailing stop loss). Or define, in addition to a classic stop loss, a particular stop loss less distant from the price which would close the position only if a candle closed below a predefined threshold and not immediately when this threshold is simply touched ... In fact, being in an environment in which we have full control, we can imagine all kinds of solutions, why not integrate the exit strategy, with for example a close when an indicator hits a particular level?
An order management module also makes it possible to consider more sophisticated strategies, such as automatically closing part of the position at a certain profit threshold or when a price target is reached, or conversely to add units when the currently open position is fully covered by its trailing stop loss (pyramiding). All of those order and position management tactics usually available for automated rules can be made available to discretionary traders as well.
When we have to place orders that are too large in relation to the liquidity or depth of the market, we ourselves create executions that are at least partially detrimental, we have developed orders sizing, orders slicing and order scaling algorithms (block trading) particularly efficient which we integrate into the order management module.
Orders Routing
The ability to connect to several markets and brokers from the same platform represents unparalleled security and comfort, now you still have to route orders to the right service provider! There are many copy trading solutions that allow some form of routing when using these services to copy ourselves, but when using a dedicated platform we have full control and unlimited flexibility, and in addition the rules of money and risk management can now be applied automatically, taking into account all connected accounts.
Three types of routing can be defined:
Static order routing
For the enduring needs of the business. Orders are routed according to predefined criteria, such as: orders for a particular instrument are routed to a specific broker because their conditions are better. Any criterion can be used: instrument, time, market conditions, or simply decide to transmit all orders to both brokers, or to transmit the orders at the same time but with different sizes, for example proportional to the capital.
Automated order routing
In the same way as for static routing, but according to dynamic routing criteria that can be managed with a supervisor console.
On demand orders routing
In the trading terminal, in the order settings window, you choose the broker to which you are going to place the order, or you select a predefined (editable) distribution scenario to several brokers.
About Ophéa
Ophéa Sàrl is an IT Engineering Services and Consulting company based in Romandy, the french-speaking part of Switzerland, and serves mostly the area of Geneva, Lausanne, Fribourg and Neuchâtel.
We are specialized in high-end IT engineering services and consulting, some of our expertise: Databases optimization, Big Data, Data Analysis, Data Mining, Cloud Computing, Artificial Intelligence (AI), Machine Learning, Deep Learning, Swarm Intelligence, Blockchain, trading robots, trading algorithms, ...
For a more detailed description of Ophéa and its activities, please visit our about us page.