Bart Michalczuk
4 min readApr 12, 2018

The Impact of Trading Fees on Low to Medium Frequency Systematic Bitcoin Trading Strategies

Systematic cryptocurrency trading strategies have grown in popularity over the past year as trading liquidity has grown. Today, trading bots, some paid and some open source, are widely available, and can be seamlessly integrated with exchange accounts thanks to well-developed APIs.

As a quantitatively-minded blockchain investor and cryptocurrency trader, I have developed my very own systematic strategies, focusing on large-cap coins such as Bitcoin and Ethereum. I have learned much over the past year about what strategies work and which do not, and under what specific market conditions each specific algorithm should be deployed. Using a custom-built backtesting platform in Python, I’ve backtested and optimized hundreds of directional momentum and mean-reversion strategies, typically focusing on medium-frequency algorithms that trade on either 10-minute or 1-hour price bars. Some strategies have relied on simple, technical indicators such as the MACD and RSI. Others have been driven by machine learning algorithms (such as recurrent neural networks). Regardless of the model used, generally I have found that the most significant challenge to profitability in systematic cryptocurrency trading strategies lies in the significant trading fees that are charged by most centralized cryptocurrency exchanges.

To elaborate further, Table 1 below provides a brief overview of the trading fees on several major cryptocurrency liquidity providers. You will first notice that, compared to liquidity providers in mature asset classes, trading fees on cryptocurrency exchanges are extraordinarily high. For example, executing a market order on GDAX to buy $50,000 worth of Bitcoin would cost $150, or 0.30% of the notional value of the trade. In comparison, executing a market order for $50,000 worth of Overstock shares on Interactive Broker’s platform would cost approximately $8, or 0.016%. That is a staggering difference in trading costs!

Second, you will notice that most exchanges classify traders as either Makers or Takers, and offer differentiated fees based on these categories. Usually, the distinction of Maker vs Taker revolves around whether orders are sent to the exchange as market orders that are filled immediately, or as limit orders that are placed in the order book, waiting to be filled. The fee difference between these two order types can be substantial. GDAX, for example, charges 30bps (of the notional value of the trade) for market orders, and zerofor trades that are filled as limit orders. This distinction plays an important role in the profitability of active trading strategies, a point to which I will return to shortly. Lastly, you will also notice that most trading venues provide fee discounts to large volume traders.

Let‘s use an exceedingly simple example strategy to demonstrate the impact that fees can have on active cryptocurrency trading strategies.

In particular, the sample trading strategy is a vanilla mean-reversion algorithm backtested on 10-minute Bitcoin price bars on the GDAX platform between 1/1/2018 and 2/28/2018. The algorithm buys Bitcoin when its price has closed at least 3% below the 20-period moving average, sells the position when the price has rallied back to within 1% of the moving average, and features a 2% stop loss. Trades are executed with 0.01% slippage. This backtest is executed under two conditions: first, assuming zero fees, and second, assuming 0.3% in fees per trade. The backtest results are shown in Table 2 below. Notice the substantial impact that trading fees have on this medium-frequency trading strategy. Assuming zero trading fees, this simple sample strategy performs remarkably well, with a Sharpe ratio of 3.39 and a total return of 19.76% during the in-sample period. On the other hand, with fees included, the strategy performs quite poorly, with a negative Sharpe of -3.33 and a loss of -18.8% during the backtest period. Indeed, the high trading fees that are prevalent in today’s crypto markets have the potential to whittle away most of the profits of otherwise promising active trading strategies.

Clearly, the obvious solution to avoiding large trading fees is to execute using limit orders instead of market orders. However, this strategy often results in orders that are not filled.

In my next post, I will discuss how to minimize trading fees, while simultaneously maximizing the likelihood of filling limit orders.