Good afternoon! It was no accident that we decided to tell you about two products of our company that are part of the basic software from S#. Our choice was made based on the opinions of our users, who are interested in learning a little more about the purpose of programs, how they work and how they are used in trading. It should be noted that S#.Shell and S#.API is a comprehensive solution for creating trading robots in C#. However, the use of these programs is not limited to creating trading robots. So, first let\u0027s look at what S#.API. The term API, according to Wikipedia, means: The Application programming interface (API) is a description of the ways (a set of classes, procedures, functions, structures, or constants) that one computer program can interact with another program. It is usually included in the description of an Internet Protocol, software framework, or standard for calling operating system functions. It is often implemented by a separate software library or operating system service. It is used by programmers when writing various applications. S#.API is a completely free library that allows novice and experienced traders with even basic programming knowledge to use it to create their own trading systems in the field of algotrading. The library is based on the C# language, with the ability to use it in the Visual Studio programming environment. The library is designed for the user to create their own unique trading systems: from positional strategies with a long timeframe to high-frequency strategies (HFT) that use direct access (DMA) to stock trading. The uniqueness of this product is that it is based on the work of all the basic products of StockSharp, such as: S#.Designer, S#.Data, as well as the S#MatLab. trade-terminal-system.png For example, the use of library elements is widely used to create unique cubes in the Designer program. in fact, the user takes a ready-made component represented by the program code, combines it with other components, or modifies it and applies it in the designer trading robot constructor, placing it in their own cubes. source-code-designer.jpg The Mechanism Of S#.API is based on the use of messages. This mechanism consists of three elements: - message Message, - message adapter MessageAdapter - IMessageChannel transport channel. The message acts as an agent that transmits information. Messages can be outgoing and incoming. - Outgoing messages - messages that are sent to an external system. These are usually commands that the program generates, such as the ConnectMessage message, a command requesting a connection to the server. - Incoming messages - messages coming from an external system. These are messages that transmit information about market data, transactions, portfolios, connection events, and so on. Shell-Title-frimework-api.png This mechanism allows you to unify the work on developing adapters, while at the same time allowing the user to create their own connections to various trading systems. Let\u0027s look at the main advantages of using S#.API: - Independence of the trading robot created by the user from the API of the broker or exchange used. in fact, the created trading robot can work with any connection. This way the user can easily connect their trading robot to Quik, Transaq, or FOREX without changing the program code. - S # library today.The API supports more than 70 connections (Connectors (Russia), Connectors (America), Forex Connectors, and Cryptocurrency Connectors). - The library\u0027s versatility allows it to be used by private traders, small development teams, as well as large investment companies and banks. - An important indicator is high performance, which allows you to simultaneously execute hundreds of strategies for any instrument. - High speed of processing applications in S#.API allows you to reduce the processing time to a few microseconds. - The library can use direct access to trade, such as: Plaza II, Micex Bridge, and also supports the FIX Protocol, which allows you to reduce the processing time of orders. - The definition of real slippage is achieved through realistic testing, which is carried out using ticks and glasses. This allows the user to minimize the risk of possible losses and more flexibly and accurately configure their trading strategy. - The widespread use of the C# language used in creating the library and Visual Studio environment simplifies the user\u0027s work, due to excessive information about their capabilities. For the convenience of working with S#.API is divided into blocks, which allows the user to easily find the section that interests them. The ease of installation on a computer, the prevalence of the programming language and the use environment make the library S#.API is a universal way to develop trading robots. Once a user has created a trading robot, they can connect it to any chosen trading platform or broker. Also, knowledge of working with the library allows you to develop the user\u0027s programming skills. We have considered the main element-the S#.API that all the basic StockSharp software products are built on. Great, now it is clear that with the use of the S#.API users can create their own trading robots and use them in trading. However, using the Visual Studio development environment is not very convenient for working with created trading systems, let alone testing trading systems. For convenience and ease of operation, StockSharp has developed a ready-made graphical framework with the ability to quickly change to the needs of the user - trader, while open source, created in C# - S#.Shell. Let\u0027s look at the main advantages of this graphical framework: - The main advantage of the product is open source code. What does this give the user? gui-shell-source-code.jpg The open source code of the program allows the user to use all the features of the product, complementing it with their own add-ons. The user can set up their own control panels, use ready-made elements, or create their own. Easy configuration increases the speed of preparing the program for launch. Availability of S#modulations.Shell, allows you to create a user-friendly environment that is understandable to them. Shell-Title-frimework.png Thus, the use of open source code does not just allow the user to create a convenient individual interface, but it is ideal for creating custom trading robots, and this expands the scope of the user\u0027s knowledge, opening up a resource for additional earnings. - The next undisputed advantage of S#.Shell supports more than 70 different connections to global exchanges (Connectors (Russia), Connectors (America), Forex Connectors, Cryptocurrency connectors, General). gui-shell-connector-exchange.jpg - S#.Shell allows the user to fully test their trading systems before entering real trading. Convenient statistics, Equity curves, and a detailed report on the testing process allow the user to take into account possible risks at the development and testing stage and make changes to the trading robot code. gui-shell-equti-exchange.png - The user can also save backup copies of their trading robots, restore settings and compare changes with the original code of the trading robot. - A very important and convenient S#function.Shell is a simultaneous launch of strategies. What does this mean? The user is no longer limited to a single platform for work and can also apply a set of several strategies that can operate separately from each other, or can be applied as a set of strategies. Such complexes allow you to compensate or insure each other, conduct a policy of hedging and arbitration. At the same time, the user receives detailed information about the course of trading, receiving information about orders, transactions, positions, profits, logs, and other information, the output of which can be configured in the program. The user can also set up a scheduled strategy launch by setting a clear schedule for each of the launched trading strategies. S#.Shell is a convenient and multifunctional software solution that can be customized for the user. To sum up, we can say the following, that the use of the complex from the S#.API and S#.Shell, allows the user to get a fully customizable shopping complex for their needs. The user gets not just a shell for trading, but a solution for testing, trading, and complex interaction of their created strategies with different markets simultaneously or separately. Ease of use is obvious, it not only reduces the time to prepare and trade, but also allows the user to develop solutions for sale, which increases revenue. A convenient training course from StockSharp allows you to quickly master both programs, learn how to program and earn money. S# source code already included in the price S#.Shell and additional trading systems reduce the user\u0027s costs and allow you to start trading immediately.
Earlier, we said that the FIX Protocol not only increased the speed of traders in the market, but also provided an opportunity for market participants to use limit orders, which reduced the risks of trading. Let\u0027s take a closer look at two types of limit orders. Let\u0027s start with the FOK order. Literally, its name stands for - \u0027Fill Or Kill\u0027. The essence of this order is that it is executed immediately and in full at the stated price, or will not be executed at all, which eliminates the possibility of slippage. Thus, if your order cannot be executed in full, then the order is simply rejected, if the order can be executed in full, then the order is executed in full at the specified price. This type of order is very convenient for scalping or arbitrage strategies, as they eliminate the risk of slippage. In fact, we can say that the \"Edward – Scissorhands\" arbitrage strategy from StockSharp eliminates risks. Below is an example of the rejection of the FOK order in the CME system, due to the fact that the order size is 20, and the book contains only 19, so the order can not be executed completely, and the system cancels it. FOK-orde-FIX-protocol.jpg The next type of limit orders are IOC orders. The name \u0027Immediate OR Cancel\u0027 means that the order is executed in whole or in part at the set price, otherwise the order will be canceled. For example, if the order size is 100 units, only 50 units can be sold at the set price. If we use an order of type FOK, the system will cancel it, as it can not be fully executed. When using the IOC limit order, the order will be executed for 50 units, and the remaining ones will be canceled. IOC also has another name FAK, which stands for \u0027Fill And Kill\u0027, executed and discarded the remainder. For example, an IOC order will be partially executed (in the CME system, its name is FAK). If we buy 15, and the book contains only 10, then we buy 10, and the remaining 5 are rejected, so this order can be called partially executable: IOK-order-FIX-protocol.jpg Limit orders when working through the FIX Protocol allow the trader to reduce risks, and in some cases, especially when working with arbitrage strategies to reduce them to zero. Our company provides a range of programs to work in the market through FIX connect, such as: designer trading strategies Designer, trading program Terminal. We also provide a full range of connectors for connection to trades, including FIX. Flexible system of discounts and reliability of connection, makes us one of leaders in the market. The full range of connectors and software can be found on our website.