Gap Analysis: Execution Engines
This gap analysis was done to discover existing capabilities of available solutions that offer execution functionality. Trade execution functionality is required for live trading of the new strategies being developed at GDA’s R&D lab.
As is the case for all automated trading strategies, they require execution functionality. The extent of this functionality depends on what the owner wants to do. At the simple end of the spectrum is buy and sell market orders. However, trade execution can become very complex if the trader wishes to use advanced functionality such as stop loss, take profit, fill or kill, scaled, OCO and more. The trading strategies being developed in the GDA R&D lab require this advanced functionality. Therefore, a suitable solution must meet these requirements.
This gap analysis is broken down into two categories; proprietary solutions and open-source solutions. Importantly, the solutions do not need to signal generation, strategy builder functionality. These services will be provided in house at GDA. Additionally, ideal execution engines will have Bybit connectivity.
Margin offers much more than just execution capabilities; it has a full suite of features as a dedicated crypto trading terminal. It supports all the big exchanges, including Bybit, Binance and Coinbase. Relevant to this article is its execution functionality. It offers market orders, buy and sell limit orders, stop loss, take profit and more.
Like Margin, SFOX offers a whole suite of features beyond the scope of this gap analysis. The platform is connected to many exchanges, and maintains an aggregated order book across all these exchanges for the user to trade on. The SFOX platform does the order routing for the user after receiving their order through the user interface or APIs. At the moment, the SFOX platform only provides spot markets, however they plan on introducing futures and derivatives.
HaasBot is a platform built and maintained by HaasOnline. As well as trade execution functionality, it provides strategy building, back testing and paper trading as well. It supports Bybit as well as many other exchanges. It has advanced trade execution functionality, which includes stop loss, take profit and trailing stop. It has a proprietary scripting language called HaasScript which claims to be an advanced trade automation scripting language.
Scavenger Bot is probably the most commercialised option on this list. So far, all the solutions are a paid service in some way. In this case, Scavenger Bot’s business model takes 15% of profits from your trades. With limited customisation and functionality, it is not suitable for our purposes, but may be an option for other traders that are more retail.
Open-source solutions can sometimes be exactly what you’re looking for, without the extra functionality and, more importantly, without the cost. Below are some of the open-source solutions that currently exist. However, they have not been personally tested by our team and we cannot guarantee their functionality.
Octobot is a much simpler platform. It is built using Python and Cython for faster code execution. Trading through Bybit is not yet officially supported but it can be connected through a custom API implementation at the users own risk.
Hummingbot is a modular framework for building crypto high frequency trading bots. Written in Python and Cython, the codebase is freely extensible for building custom strategies and connectors. It has a huge list of connected exchanges, Bybit perpetual being one of them as well as the DEX Uniswap. It has a few strategies built in that a user can run, and more can be created. Trade execution functionality includes market orders and limit orders.
Other Github Projects
The following resources are public Github projects in no particular order that could also offer trade execution functionality, but come with no guarantees as to their project status and functionality.
A trading bot that can be used with the Bybit trading platform. Built in Python. New strategies can be implemented by inheriting from the BaseStrategy class.
Passivbot is a cryptocurrency trading bot written in Python. It is deterministic in nature — i.e. rule-based decision making — so its results are reproducible and testable. It operates on spot or futures markets and can place limit buy, sell orders.
A fast cryptocurrency trading bot framework implemented in Go. Ninjabot permits users to create and test custom strategies for spot markets. Has standard features, and the developer is still active on the repo.
This is a console-based trading bot in golang. The developer has done a few bots and is an active open source developer.
Profitmaker is an open-source, customisable trading terminal that supports over 130 exchanges.
This project is designed to have very low latency for HFT and market making strategies. It has a web interface and advanced trade execution functionality
We are continually researching this topic and will release more articles when we find new information to share. Please stay tuned and consider following us to never miss an update.