The article describes a software application from the area of Financial Research Software whose purpose is to look for trade opportunities in financial markets. The software is designed for analysts and portfolio managers, traders with securities, alternative fonds, Fond of Qualified Investors and banks asset management departments. The added value is not only the top-notch sophisticated tools for data analysis, statistics and likelihood but also the fact that the users are given a ready-made workflow of individual trading approaches where anyone can participate in using trade opportunities which are offered in the global financial market.

Trading systems behaviour simulation software

Today’s post will take a look at the creation of our team from a different angle. Our team is the developer of a software application (so-called Financial Research Software) which will be used for seeking trade opportunities and their testing. This application can be used by all analysts and portfolio managers, traders with securities, alternative fonds, Fond of Qualified Investors and banks asset management departments. The application does not bring only another tool for effective financial assets management – the main objective of the application is to bring users a workflow which will intuitively guide through the world of professional data analysis, statistics and also likelihood and trading with the aim to take the maximum advantage of trade opportunities which appear in global financial markets.

In the beginning, it is right to realise that looking for trade opportunities and building of trading systems is a very complex process which includes activities from various areas (so-called building blocks). For this reason, to identify and classify individual “building blocks”, we create two categories, horizontal and vertical scaling which can help us understand application operation.

Horizontal scaling

The aim of horizontal scaling is to cluster trade opportunities according to trading approaches. A trading approach is a style (with a little exaggeration – a trade model) by which a trader is trying to reach profit. An example can be the relative values trading approach that can include different types of arbitrages, long/short strategies, pair-trading etc. What all these approaches have in common, is a fact that the trader looks for pairs of financial assets which have some “economical” bond between each other and watches mutual (relative – herby the name relative values) determination of these two assets. In the situation when there is a distortion between relative assessment, the trader finds a trade opportunity (so-called their market) and this situation is used by opening trading positions which benefit from gradual disappearance of this “error” in determination (above mentioned as distortion). This scheme illustrates situations which happened after the fall of Lehman Brothers. There was a situation in the market when, due to global tensions and increased volatility, the prices of CDS on Czech government bonds were higher them prices of CDS on bonds of a Czech company called ČEZ. Looking at this from the theory perspective which says that “risk of one company” = “risk of the country in which the company trades” + “specific risk of the industry/particular company”, this situation proves to be nonsensical. At the moment when more such stress situations appear, also more trade opportunities appear. For the user, the motivation of the relative values module is to find these distortions in the real-time and use trade opportunities which these situations offer. Notice that this schematic description of revealing the process and using the trade opportunity does not include anything about “prediction of the future value”. Traders often concentrate too much on “prediction and forecasting” of the future values, however, going through this extremely difficult discipline is often not necessary, as the mentioned example shows.
The application is constructed in such a way that 1 trading approach = 1 module. Trading approaches used in this application are:

Vertical scaling

Besides trade opportunities, there is a multitude of other areas (building blocks) which contribute to revealing trade opportunities, creating trading systems or increasing their efficiency. Vertical scaling divides a trading system into building blocks which have a specific role within it. These blocks can be in the intermediate step clustered into areas which technically contribute to the creation and management of trading strategies (trading, portfolio optimisation, statistics and likelihood). The purpose of vertical scaling is to illustrate the continuity of work (= continuity of applications of individual methodical bundles/blocks) when creating a trading system. Blocks which are considered in the application are:



input rules Trading
money management
risk management
output rules
models describing a particular time series Statistics characterising dependence behaviour of price and achieved results
persistence of time series development
approximated time series entropy
continuous optimisation of financial assets included in the portfolio to minimise risk/maximize return Portfolio optimisation

Team character

The paragraphs above show that our team is not focusing only on trading even though it dedicates its efforts on topics close to trading. Execution, position management and output rules are of course an inseparable part of our job but it is actually only one of the areas we deal with. Areas our team deals with are closely connected with creating an application which includes modules for testing and building trading blocks where 1 module = 1 trading approach. Each trading approach can, of course, generate a lot of trading systems (strategies).


By all of this, users (analysts/portfolio managers) are given a robust tool which can help find and use trade opportunities until their termination in order to find a new opportunity as soon as possible. As the saying goes: „strategies die, skills survive“.

We took part in the E-commerce 4.0 conference which was held in Microsoft in Prague on the 15th April 2019. Vláďa Vacula presented MTA software which gets and analysis users’ opinions from a selected segment of products. For example, in the POC version, we have downloaded and analysed over 1 million reviews for products from the segment of digital cameras and mobile phones.

The conference brought important feedback and new leads. Eshop representatives were primarily interested in the possibility to get information about products which they are planning to introduce in their portfolio.

Vláďa Vacula in Panel Discussion

Vláďa’s presentation can be viewed at Slideshare, the report from the conference is available at ctit.cz.

We have downloaded over 1 million reviews in the digital camera and mobile phone segment. The number of products and reviews in our dataset is constantly increasing.

Learn more about technologies for obtaining and analyzing users’ opinions on products at E-commerce 4.0 conference. 15. 4. 2019 in Prague at Microsoft, www.ctit.cz/e-commerce-4.0.

Vladimír Vacula

We are preparing AnalyticalPlatform.com website. First we started showing the outputs of our “Financial research software” team on the wordpress page www.objektivni.info and then reorientated to a comprehensive Analytical Platform.


An investment strategy is basically a list of exact rules (algorithm), which defines investment decisions (buy and sell orders), can analyze and manage real-time risks based on current market situations. Investment decisions can be divided into two groups – entry rules for opening investment positions and exit rules for closing investment positions. Our research department uses a method which takes these two rule categories and applies different development attitude on each of them.

Standard old-fashioned approach

Standard old-fashioned development approach is based on using financial experts’ rules what depends on experience, knowledge and personal attitude. These entry and exit rules are usually very subjective and may lack a deeper analysis of various datasets (news, fundamentals, technical, psychological). However, it doesn’t mean that an investment algorithm containing these rules is wrong and can’t generate profit in a long-term period. It can be very robust and stable.

New era approach

Our research department loves new technologies which can help to deliver higher and more stable performance, lower drawdowns with a shorter recovery period, better Sharpe ratio and other key performance metrics. Current research is focused on implementing machine learning and genetic programming to investment strategies – specifically to improve the effectiveness of the exit rules. We use a few simple entry rules defined by a financial market expert (old-fashioned approach), but exit rules are generated by modern technologies for deep analysis of different datasets. Exit rules contain simple or sophisticated patterns founded by genetic programming and machine learning, but this whole approach is still under expert control and each rule is validated with strict conditions to avoid over-fitting.

Customers will be able to benefit from these algorithms by using them directly on their own accounts through specialized trading platforms or by investing in the big funds which will use these algorithms.


Our vision is based on improving human skills with data analysis technologies and deliver higher and more stable performance. We are not trying to take-over human decisions, but we are trying to make them better.

If you are interested in more information stay tuned to our website or get in touch! It would be a pleasure to invite you for an meeting at our office.

Michal Dufek

As we informed you in our previous posts, our team is not dealing only with state-of-art technologies and research of business strategies using hedge funds. Our portfolio is also complemented by common and relatively easy reporting and analytical tools. One of these tools is an intuitive stock screener that can be used for easy sorting of “the best” titles according to your selected preferences.

Another Stock Screener?

Most of the stock screeners are based on the fact that you have a certain universe (group) of assets that is refined through available filters until assets which match the selected criteria are found. User disadvantage of such workflow is the fact that you exactly need to know what you are looking for. However, in the beginning, the vast majority of “searching” users does not know precisely which methodology to use to search for their outcomes.

Our stock screener respects this and solves it by using the two-stage output classification.

How Does It Work?

In our screener, first of all, you intuitively choose priorities (technically speaking – filters), thanks to which the preferences are expressed (investment currency, risk aversion, investment horizon etc.). With these preferences, you define the method of the evaluation of the scanned asset set and, as a result of your choice, the evaluation model is set up, scaling individual assets to a chart.

Black Box I Have No Idea What Is Doing Inside?

On the output, you will be given a list of shares which a) meet your priorities and b) are sorted “from the best” according to the evaluation model which reflects your preferences. Individual criteria included in the evaluation model can be seen in the output table together with rated assets. Therefore, there is no chance of not knowing why and how the model reached the outcome. The evaluation model is not only transparent but also freely adjustable via indicator settings which form this complex evaluation model. This function can be appreciated especially by professionally competent analysts who want to use their own judgement to prefer or, on the contrary, to discriminate certain technical indicators.

If you are interested in more information about this application, stay tuned to our website or reach us directly straight away.

Michal Dufek


Once upon a time there was a term Artificial intelligence defined. It’s subcategories emerged soon after, some of them were inspired by nature. Be it reimplementation of evolution by natural selection proposed by Charles Darwin and Alfred Russel Wallace or deep learning inspired by the structures found in our own brains. Nowadays most of its implementations are tight to computational resources of universal processors, graphical cards, FPGA and ASIC circuits.

Genetic programming algorithm

We might have started from the easier target it seems. Genetic programming is a technique generating computer programs using evolution based algorithm.

As the start of a run the evolution algorithm is generating a population with set number of randomly generated individuals. Each individual is represented as a list of specific number of trees.

Each tree in the individual represents specific trading strategy behavior – be it asset selection, entry condition, entry filter, stop loss, exit condition, exit filter. Six trees in every individual in this specific case.

Each individual is run as a trading strategy. It might generate some trades then statistics are calculated. Various statistics can be used for the individual fitness. Right now we are using sharpe ratio multiplied by number of trades to push the evolution algorithm to prefer individuals with higher number of trades.

Based on fitness the evolution algorithm selects individuals for mating and mutating phase. Mated/mutated individuals are made part of the population and the individual’s fitness is calculated again. The best individual is kept in the hall of fame.

This iterative process goes on and after several generations we are expecting working trading strategy in the hall of fame.


“Slowness” of Python is negligent as most of the time is spend calculating an individual fitness. Our individuals are creating signals – genetic programming trees are made  with numpy and talib optimized functions (C code), the trading algorithm is represented as fully optimized state machine in Cython. In another words from programming point of view it’s mixed vectorized and event based approach to trading system programming.


By changing of fitness function we can push the evolution algorithm to generate specific trading strategies. Be it specific risk profile, maximum profit or optimized portfolio. There is a possibility to optimize just part of already existing strategy – for an example we will be taking an existing strategy with defined entries and the genetic programing will be evolving strategy exits. Additional inputs are possible to use as well – sources of sentiment information, market and intermarket indices, deep learning networks with pre-trained alphas and well known market alpha signals, etc.

Interesting thing with genetic programming and big amount of alpha factors might be ability to select ones which really matter in the market without being tight to usual evaluation within specific number of days to the future.

Miloň Krejča

Research & Development team is currently focused on development of trading strategies applied to Crude Oil WTI, Natural Gas and Gold (futures contracts). These commodities are traded on centralized exchanges NYMEX and COMEX which are located in USA and each day trading activity exceeds billions of dollars. Very high liquidity and interest of other market subjects create a suitable environment for short-term momentum trading strategies. It is appropriate to include these in the research portfolio due to the necessary volatility and the structure of the financial leveraged instrument itself.

R&D team develops and optimizes trading strategies on rule-based concepts that has positive performance and can predict upcoming short-term price momentum with sufficient probability.

Implementation of new technologies can help R&D rigorously analyze the performance of trading strategies and related risks with highest exact level. Against the “old” technologies, the modern ones can implement real-time execution of trading orders based on all realized trades in the selected time period. Application of old technologies for trading strategy performance analysis often lead to unreliable statistical results and trading strategy with great historical performance often fail in the real market.

Development and optimization with modern technologies is the one of the main goals of the project. When trading strategies for Crude Oil WTI, Natural Gas and Gold are done they will be included in metastrategy-driven portfolio with smart asset allocation.


Jan Budík