Building a Crypto Trading Bot — How to Guide

cryptocurrency vs stocks

The cryptocurrency bot development field is an extremely lucrative one. Given the increased desire for an automated solution, cryptocurrency trading bots have become increasingly popular. It’s not unusual to find them on significant exchanges given their ability to trade 24/7, execute strategies systematically, and place orders at high-speed. Given the industry’s extreme volatility, traders are gravitating towards leveraging trading bots with the sole intention of preserving and increasing investment capital while limiting their manual involvement. In this highly informative article, we take a look at how you can build your trading bot and join the ranks of successful bot developers.

What is a Crypto-Trading Bot?

A cryptocurrency trading bot is a software program designed to recognize the crypto-market’s trends and automatically execute trades. A trading bot takes the monotony of pushing the buy and sell button physically and trades on the trader’s behalf. Most traders configure the bot to a set of customized pre-programmed rules that use market indicators and trends to execute the trader’s trade preferences. One can acquire a trading bot for free via an open-source platform, get a licensed one at a fee, or with enough technical know-how, create one. Unlike stock trading bots, crypto-trading bots are generally less expensive and can be used by anyone, newbie or pro.

Cryptocurrency trading bots and trading algorithms variety

There currently exists a vast array of cryptocurrencies in the market. Bitcoin, the first decentralized digital currency, remains the most popular and expensive cryptocurrency to date. Consequently, it’s no surprise that a majority of people are trading bitcoin as a way to generate passive income while they work their regular day jobs. However, a large percentage of them lack the skills or the time to analyze crypto trading charts. Consequently, bitcoin trading bots are becoming popular in the bitcoin trading space. Most of them are configured to work on many well-known crypto-exchanges such as Gemini, Huobi, Kraken, Poloniex, Bitfinex, etc.

Given the fact that the market is flooding with trading bots, high competition remains one of the challenges for someone writing his bot. Large organizations with access to more resources and professionals can develop more robust bots than someone working independently. Creating a bitcoin auto trader requires a lot of time to build its algorithm and ensure that it has no exploitable security flaws. While downloading an open source trading bot is cheap and requires minimum development time, it’s harder to build and adapt to its trading algorithm, create a unique set of features, or fix bugs or security issues.   

Node.js versus python-crypto trading bots

The programming language that you choose depends solely on the features and functions that you want the trading bot to have. Preferably, you would want to use a programming language that’s widely supported and has an active community in the cryptocurrency sphere. Also, you need to make sure that it can be easily scaled, adapted, and added to if the need arises. It comes in convenient when you want to tap into the community for development support. At the moment, the most common programming language to write trading bots are JavaScript and Python. According to SlashData, Python, and JavaScript (JS) are the most commonly used programming languages in use by developers.

JavaScript comes in first with about 11.7 million active developers while Python comes second with about 8.2 million active developers. Both programming languages have extensive support in the development community and are substantially compatible with the cryptocurrency environment. Python is mostly used by developers who want the ability to express concepts in fewer lines of code. Moreover, Python’s high-performing libraries allow for easy research and prototyping. Other developers prefer using JS as it’s dynamic, prototype-based, and multi-paradigm. Most developers use it for simulations, data modeling, and low latency executions.

Although both Python and JS are popular programming languages, they have distinct differences. The main differences between JS and Python include:

  • Python is easy to get started on as a beginner while JS is more complex and usually difficult for most beginners.
  • Python has many libraries for data analytics, machine learning, or scientific computation, while JS is good for building native applications or websites.
  • JS can be used to run on both browser and frontend server while Python is usually used for server-side/backend programming.
  • JS is suitable for mobile development while Python is not as it’s slow to run compared to JS.
  • Python is a better designed modern programming language which is easy to maintain, unlike JS.  

What are the Cryptocurrency Strategies?

A cryptocurrency strategy is a trading strategy that provides traders the ability to earn more using less capital. Trading bots are incapable of reacting to fundamental market conditions such as government cryptocurrency decisions, rumors, or an exchange hack. Therefore, as you write a trading bot, it’s essential to keep these strategies in mind to tweak the bot to suit any current situation.

Some of the most popular cryptocurrency strategies include:

Trend Following Strategy

In this strategy, a crypto-trading bot can be programmed to identify trends of a particular cryptocurrency and execute buy and sell orders based on these trends. Trading bots are useful for trend trading. The trend following strategy attempts to acquire gains through analyzing an asset’s momentum towards a given direction. Traders that execute this strategy will enter into a long position when a cryptocurrency trends upwards and a short position when the digital asset trends downwards.

Arbitrage

This strategy involves a trader taking advantage of a price differential existing between two crypto-exchanges. The trader buys digital assets from one market and then sells them in another for another, earning a profit in the process. Back when crypto-exchanges were decentralized and mostly unregulated, there were significant price differentials and traders could make a lot of profit with arbitrage. Nowadays, the spread between exchanges has tightened up. However, a crypto arbitrage bot can still help a trader make the most out of these price differentials.    

Market Making

Market making is another strategy that trading bots are competent in executing. This strategy involves “continuous buying and selling on a variety of spot digital currencies and digital derivatives contracts” to capture the spread between the buy and sell price. To carry out this strategy, a trader will place limit orders on both sides of the book (buy and sell). The trading bot will then continuously place limit orders to profit from the spread. This strategy can be unprofitable in times of extreme competition or in low liquidity environments.

How to Build Your Own Crypto Trading Bot

The most obvious perk of using an individually mended trading bot is the ability to maintain control over your own private keys. You can also implement whatever functionality that you desire into the trading bot. Moreover, once the trading bot is set, you can trade 24/7 raising your odds of making gains through faster order placement.

Where to download an existing open-source Bitcoin trading bot

The cryptocurrency market is growing and expanding daily, and so is the number of trading bots. Most sophisticated crypto-trading bots nowadays are pretty expensive to buy or are offered on a subscription-based basis. Nonetheless, there is a more natural way to acquire a trading bot today. Free trading bot software can be found on multiple open-source platforms for anyone to pick. A famous example is 3Commas. 3Commas offers a trading bot that works well with numerous exchanges such as Bitfinex, Binance, Bitstamp, GDAX, Huobi, etc. With a patched-up 3Commas trading bot, one can be able to trade 24/7 and even copy strategies used by successful traders.  

Setting up the API for each exchange

In today’s cryptocurrency trading ecosystem, APIs have become extremely important, and most people don’t even realize that they are using one. An API (Application Programming Interface), is an interface for the trading bot that allows the bot to send and receive data from an exchange. Most crypto-exchanges allow you to use their API interface for the bot. However, these systems are usually based on a few permission-levels protected with unique keys and secret. To do so, you’ll need to create an API key on the exchange you want to use. Afterward, you’ll need to put your key and the secret into the trading bot to access the API.

API keys are fundamental. It’s advisable that you never share your API secret keys with anyone and be extremely careful about which platform you plug your key into. Once the keys are stolen or hacked, then someone else can access your trading bot and use it to trade or make withdrawals without your permission. If the API has the withdrawal option enabled, you’ll most likely want to turn it off. Turning it off prevents the bot from withdrawing from your account and allows you to make withdrawals manually.

API links for leading currency exchanges:

Make a cryptocurrency trading bot checklist

Instead of subscribing to a trading bot for a fee or purchasing one, you can make your own. Here are some checklist steps that you can follow to make sure that you make a good trading bot with minimal difficulty.

  • Decide on the programming language that you want to use. A good idea is to use a common or familiar programming language so that it can be easier to bring in development support should you need to.
  • Get hold of your APIs. Make sure that you get all the APIs to crypto exchanges you want your trading bot to interact with. For instance, if you are creating a GDAX trading bot, then you need access to the GDAX API.
  • Create accounts with the exchanges that you intend to use. For instance, if you intend to create a bittrex trading bot, then you need to access the bittrex API.
  • Chose a trading bot strategy. Whether its arbitrage, market following, or the market making strategy. The complex the trading strategy, the more the development time needed.
  • Architecture. Ensure that you clearly define the type of data that you want your trading bot to interpret.
  • Create. Creation is the most time-consuming part of making the trading bot. Ensure that you do everything procedurally.
  • Test. Make sure that your trading bot functions as it should. If not, this is the best time to fine-tune it.
  • Deployment. Once you have straightened up any issues with the trading bot, it’s time to deploy it and make use of it.

How to Make a Trading Bot with Python

Setting Up Crypto Trading Bot Environment in Python

Your first step towards creating a trading bot with Python is setting up your development environment. Below are a few steps to follow, especially if this is your first time.

  • Download and Install PyCharm

PyCharm is an IDE (Integrated Development Environment) used for developing programs and or building software in Python. It’s highly recommended for beginners as it eases the learning process. It’s customizable and contains all the tools and features that a programmer needs to be productive in the development process.

  • Download and Install all Libraries and Dependencies

The next move you want to follow is to download and install all the libraries and dependencies. These are a collection of methods and functions that allow you to perform a lot of actions without necessarily writing your code. You can make use of PyPI to acquire most of the libraries that you need and install them with pip, which often comes with your Python installation. Trying to install all the dependencies at PyPI manually may take a while so you may need to create a script to help you out. Below is a tutorial on how you can do this.

  • Download and Install Python Exchange Library on Github

You can download the source code directly and install it, or you can obtain a copy from the PyPI repository and install it. Both methods will install the Python exchange library. Otherwise, you can choose to clone from the source. Either way will work just fine.

Portfolio/ Index Indicators

The sole focus of this section is to add portfolio functionality to the automated trading bot on Binance. Since creating a portfolio is a straightforward exercise, you can incorporate an already completed python project with significant functionality. A template design from ‘Tracking a Portfolio with Python’ will provide functionalities such as:

  • Create portfolio functionality of cryptos with deposits, withdrawals, buy and sell-denominated in Satoshis- Daily/Weekly/Monthly P&L reports.
  • Ability to create ‘play money’ portfolios i.e. perform advanced portfolio tasks such as indexing crypto profile (Hodl bot).
  • Save all data to .csv which is easy to edit in Microsoft Excel.
  • Incorporated with Matplotlib and Pandas Data Structure for Data Visualization and Data Analysis respectively.

Collecting & Analyzing Historic Data from Binance and Coinbase

In this section, you will learn how to collect and also utilize historical data from Binance and Coinbase. You will learn how to collect and save data in formats that can be used later. Also, you will utilize this data to inform the trading bot on your trading strategy. That is, when to buy, when to sell, the best coins to buy, etc. Since this section is a bit complex, we have attached a Coinbase tutorial that explains everything in detail below.

Tracking Profit & Loss – Comparing to ‘Index’

You will be using all code published on github as ‘Portfolio Tracker’ which will be forked and modified for tracking crypto portfolio on Binance. For tracking a crypto portfolio with publicly available code, we will be using a great project known as ‘Cryptrack by Herschee’. With it you will pull from Coinmarketcap in order to determine hourly, daily, and weekly gains and losses. This actual code will be included in the algorithmic trading project as an initial functionality before implementing the ‘Portfolio Tracker’ functionality. Below is an excellent tutorial on how to install and use Cryptrack.

Developing new strategies based on historic data

Historic data is extremely useful to the trading bot. From it, you can determine future trade positions, determine good or bad times to buy or sell, and attempt predicting future performance. All data gets analyzed by the bot for short or long term trends which ultimately inform it of which trading strategy it will undertake.    

How to Make a Trading Bot with JavaScript

This section will go into detail into how you can make a trading bot using JavaScript. We will be specifically checking how you can do this with the Coinbase exchange. We will also be using Windows task scheduler to execute our code. Therefore, you will need an account with CoinbasePro which is an awesome Coinbase supported platform with a comprehensive API. You will also need a Gmail account. The Coinbase account will be for sending orders and the Gmail account for receiving trade notifications. Below are the steps to building a trading bot with JavaScript.

Call Libraries and Build Functions

The first step is to call libraries. Some of the main libraries that we’ll need include:

  • Rgdax
  • mailR
  • stringi
  • curL
  • xts
  • TTR

The rgdax package provides the interface to the GDAX API. mailR is used to send you email updates with a Gmail account. Stringi helps parse numbers from JSON. Finally, TTR will allow you to conduct technical indicator calculations. Some of the functions that we’ll need include:

  • Curr_bal_usd & curr_bal_eth

These functions will inquire the most recent balance from your GDAX account. This function will be used repeatedly in trading.

  • RSI

The next function we will use is the RSI or Relative Strength Index as our main indicators for this strategy.

  • Bid & ask

This function will provide you access to the current bid and ask price.

  • Usd_hold, eth_hold & cancel_orders

Both the usd_hold and eth_hold functions aid in pulling in the current status of orders already placed in a frequentative manner. The cancel_order function will aid in cancelling orders that have moved far too down in the order book.

  • Buy_exe

These function works through several steps. The order_size function calculates how much crypto we can buy. The WHILE function places limit orders while we still have zero crypto. Once an order is placed at a specific bid price, the system pauses for a while until the order is filled. If the order isn’t filled, the whole process repeats.

Store Variables

The next step is to store some of our RSI indicator variables as objects. Doing so helps the trading loop run faster so that we don’t exceed the rate limit of the API.

Trading Loop Executes

The above steps only elaborated how to prepare functions and variables in order to execute the trading loop. Now, taking the example of USD and ETH, we take a look at an actual walkthrough of the trading loop. With a current balance of more than 20 USD in the account, we can begin the loop. If the current RSI is more than or equal to 30 and the RSI prior to this was less than 30 at the minimum once, then we buy as plenty ETH as we can with the current USD balance. Afterward, we save this buy price into a CSV file.

After this, we need to send an email to ourselves to alert us of the buy action. The loop then prints “buy” so that it can be tracked in the log file. The system will then sleep for about 3 seconds. Afterward, we enter 3 tiered limit sell orders to take profits. The first limit sell order takes profit at 1% gain. The next limit sell order takes profit at 4%. The last limit sell order takes at profit at a 7% gain. And that’s how the entire script works.

Using Windows Task Scheduler to Automate the Script

The whole purpose of having a trading bot is to remove the human error element from trading. Furthermore, you need a trading bot that can trade without you being necessarily present. Therefore, we will use windows task scheduler to automate the script. The steps include:

  • Schedule script with Rstudio addin
  • Modify the scheduled task with task scheduler
  • Keep an eye on your task with the log file

What are the Risks While Writing a Personal Crypto-Trading Bot?

Building a trading bot is not as simple as it seems. Bots are built on specific codes and algorithms that help them function. Any faults in the development process can render a bot ineffective. The bot may contain unidentified bugs or system glitches embedded deep into the code of the bot. Therefore, one requires some extremely advanced programming and technical analysis knowledge. Additionally, one needs to invest quite an amount of money which may translate to financial losses or waste of time if the bot doesn’t function. It’s safe to say that not everyone can build their trading bot. 

Majority of trading bots today are difficult to build and use, especially for beginners. Those who invest the time to make one may find that their trading bot doesn’t operate in the way that they expected. However, 3Commas appears to have considered all these problems and offered a one-time solution for both novice and expert traders. They have produced a trading bot that’s both easy to set up and utilize. The bot performs reliably compared to other competitor bots. Some advantages of the 3Commas trading bot include:

  • The bot’s system is well-integrated and offers support for several exchanges such as Binance, Coinbase, Huobi, etc.
  • It has a smooth and intuitive dashboard that allows both novice and expert traders to maximize their trading potential.
  • It offers a good range of trading tools such as social trading and performance analytics on top of the automated bot.
  • 3Commas provides a lot of features that are accessible via an extremely affordable pricing plan.

Conclusion

Building a trade bot from scratch is not as easy as most people think. The DIY (Do It Yourself) approach is tough and complicated. If you are a beginner, the process is time-consuming and filled with expenses that rarely go away. Not to mention, the precision needed to create a fully functional cryptocurrency trading bot is intense. To add fuel to the fire, you need a whole new set of specialized programming skills to pull this off. Fortunately, if you lack the skills or the time, you don’t have to build your bot from scratch. You can grab an already working trading bot from 3Commas.

As stated above, building a self-written trading bot is not easy. The self-written bot may be challenging to use, and the UI/UX may not work as expected. However, with the 3Commas trading bot, you can be sure of a hassle-free experience where all the problems of a self-written trading bot are eliminated. The 3Commas bot is easy to set up and use, performs with exceptional reliability, and works on all major exchange platforms such as Huobi, Binance, Coinbase, etc. Moreover, 3Commas’ set of affordable pricing structures give you access to a whole range of incredible features not available in a self-written bot.

Leave a Reply