Creation of trading robots: 11 development tools

In our blog, we pay much attention to the issues of algorithmic and automated trading on the exchange, considering both theoretical aspects, such as choosing a programming language, and practical ones, for example, implementing an event-oriented backtesting system in Python.
Today we bring to your attention a selection of programming environments and tools for creating trading robots.
TradeScript (SMARTx)
In the ITinvest trading terminal called SmartX, there is a special plug-in with the TradeScript designer of trading robots . Using a simple, but quite powerful scripting language, traders can create mechanical systems of various levels of complexity.
There is also a backtesting module that allows you to evaluate the performance of the programmed strategy on historical data. In addition, the opportunity was given to test the trading system on the fly using current exchange data, but without placing an order on the exchange — the time of the virtual transaction, the price and the resulting profitability will be displayed in a separate window.

The TradeScript language was originally created by the American company Modulus FE specifically for writing trading robots on it. It is fairly easy to learn, and many algorithms are similar in writing to Metastock, which makes it easier for users familiar with this software package.
The advantage of TradeScript compared to Wealth-Lab and the same Metastock is the absence of the need to create complex designs and use various connectors to transfer orders to the trading terminal. The robot designer is built into SmartX, which allows you to achieve significantly higher reliability and speed.
Below is the code of the trading strategy on TradeScript:
Buy Signals
# Покупаем, если момент и инерция имеют однонаправленный тренд
TREND(EMA(CLOSE, 20), 15) = UP AND
TREND(MACD(13, 26, 9, SIMPLE), 5) = UP
Sell Signals
# Продаем, если момент и инерция имеют однонаправленный тренд
TREND(EMA(CLOSE, 20), 15) = DOWN AND
TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN
Exit Long Signal
# Выходим, если тренд инерции и момента имеет противоположное направления
TREND(EMA(CLOSE, 20), 15) = DOWN OR
TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN
Exit Short Signal
# Выходим, если тренд инерции и момента имеет противоположное направления
TREND(EMA(CLOSE, 20), 15) = UP OR
TREND(MACD(13, 26, 9, SIMPLE), 5) = UP
In addition, the user can run as many simultaneously running algorithms as the processor clock speed and computer memory allow. Given the large number of words and operands of the scripting language, this means the ability to create arbitrarily complex trading strategies.
We considered the question of writing trading robots in TradeScript in more detail in our previous materials ( first , second ).
CQG Integrated Client
This is a professional multifunctional technical analysis platform popular with traders all over the world, providing real-time quotes from many trading platforms. The program also provides opportunities for the automation of trading operations.
Wealth-lab
The powerful system of technical analysis, development and testing of trading strategies created by Fidelity International. You can create trading robots using the built-in programming language WealthScript. Recent versions of the system also use C # and other .NET languages.

TSLab
TSLab tool allows traders to create mechanical systems of varying degrees of complexity. There are opportunities to create a trading robot and test it on historical data. There are various program modules, for example, a risk management module, which, before sending an application to the exchange, checks its compliance with the given conditions. If the order does not satisfy them, it will be rejected. Thus, you can introduce additional control over the script.
What is important for traders who do not have programming skills, the robot logic can be implemented using a flowchart.

LiveTrade (CoFiTe)
The LiveTrade software package was created by the developers of the St. Petersburg company CoFiTe. Among other things, it includes a software solution for creating trading robots - Robotlab. This tool, like TSLab, allows traders to create automated trading systems using flowcharts in the visual designer:

After the trading logic of the application is implemented using the flowchart, it can be launched in the terminal.
Tradematic
Another tool that allows you to create trading robots using a visual designer without programming as such. Provides the ability to test the resulting robot using the built-in source of historical data.

There are various modes of operation of the trading system — from manual, in which the execution of signals requires placing orders by hand, to fully automatic, when all trading signals are immediately executed, without requiring the participation of a trader.
Smartcom
The open interface of the ITinvest trading system also allows traders to create trading robots of varying degrees of complexity and connect external development environments and the trading systems already created in them. Using the component object model allows you to connect mechanical trading systems written in various programming languages to the broker's trading servers. For example, C ++, any of the .NET languages (C #, VB.NET and others), Visual Basic, Visual Basic for Application (in particular, from Microsoft Excel) and many others.
There is also an additional SmartCOM plugin for AmiBroker software package, the use of which facilitates the analysis of downloaded data.
Metastock
Also a popular overseas product. The MetaStock system contains an extensive library of indicators and tools for creating your own formulas. A simple programming language is also provided, with the help of additional modules you can generate orders for the purchase and sale.
Like Wealth-Lab in the Russian market, it is used in conjunction with trading terminals that operate using additional libraries. This can lead to various integration difficulties, as well as negatively affect the reliability of the resulting bundle.
Stocksharp
The free, open-source StockSharp platform in the base version. On its basis, products have been developed for creating trading robots.
As developers themselves write in their article on Habré , the StockSharp project is built on the classical model of the development of complex software. In the beginning, some framework (S # .API) is created, and already with the help of it high-level add-ons are created.
Currently, the S # team has implemented a full range of software for algorithmic traders - a system for collecting and storing historical data (it can distribute data in server mode), a testing system for histories, and a number of graphical components.
As a result, in fact, in a day a trader can develop a fully-functional module for connecting to trading, displaying graphic information and testing the created strategy on historical data.

Quik
The name of the system is short for Quickly Updatable Information Kit. Initially, Quik was an information system, the “chip” of which was the high speed of data delivery, but subsequently the product evolved. Prior to version 6.4, Quik provided the built-in scripting language Qpile. It had a small set of features compared to high-level languages (C # or C ++) and was mainly used to automate simple trading strategies.
Its advantages include ease of use, convenient access to data from the trading terminal and general integration with it, attracted traders and the possibility of step-by-step debugging of algorithms in the terminal. However, there were significant disadvantages - for example, the impossibility of testing the strategy on historical data, the lack of a graphical interface in addition to the standard Quik tables, the speed of work, etc.
Versions of Quik older than 6.4.0 support Lua scripts. This language is also built into the terminal, is quite simple and has more functionality than Qpile. Since Lua is an interpreted language, a special QLua library is used to work with its code.

Image: RusAlgo.com
TRANSAQ
A popular brokerage system in the Russian market, with the help of which traders can gain access to trading on the exchange. The tool allows traders to receive information about the current state of affairs in the market, to issue orders for the purchase and sale of financial instruments manually, as well as to create mechanical trading systems.
You can create robots by connecting external development environments such as Metastock, Omega, Wealth-Lab to TRANSAQ, or using the built-in programming language ATF (Advanced Trading Facility). There is a fairly detailed documentation on this language , which, among other things, provides examples of ready-made robots code.
Other financial and stock market related materials from ITI Capital :