Introducing Tortoise: A Better Limit Order

Limit orders are a great tool for crypto traders looking to buy and sell at better prices, but the lack of liquidity and volatility on most crypto order books can make them difficult to execute.

The order book is the record of all the pending buy and sell orders on an exchange — all of the different requests people have made either to buy or sell, at different prices, and in different amounts.

If you don’t mind waiting for a fill, and you want to get a better price than is currently available on the order book, you use a limit order. You say, “I would like to buy or sell a certain amount of bitcoin at a certain price.”

Whether your order will actually end up filling at the price you want, however, depends on your exchange. And prices across exchanges can change dramatically in the span of moments.

A chart of four different exchanges and their prices over the course of a recent hour, 17:00 on November 1st. Kraken, in green, has the highest prices by far, while the others mostly cluster in the $6,575 to $6,615 range.


In the above example, the prices on most exchanges start out clustered together around $6,580, starting at 17:00. Kraken’s prices start roughly $40-$50 above that. The prices rise to $6,620 over the next twenty minutes, before dropping as low as $6,560 over the next twenty.

This isn’t even close to the extent of volatility that you can see on an hourly basis when you’re trading bitcoin. That volatility makes it hard to execute effective limit orders.

If you place a limit order and the price on your exchange suddenly jumps up 5%, your limit order may never execute. Maybe the prices are lower on other exchanges. Maybe your limit order would have been better placed somewhere else. It doesn’t matter — as the price continues to rise, all you’re left with is the thought of what could have been.

The price fluctuation between different exchanges and the overall volatility of crypto point to a growing truth about limit orders — sometimes it’s simply not enough to place one. You also have to give thought to where you’re going to place the order and at what price.

To help traders set better-placed and better-priced limit orders, we’ve built Tortoise — an algorithm for optimized limit orders.

Tortoise Gets Limit Orders Filled at A Better Price

Tortoise is an optimized limit order algorithm designed to pick the exchange and price with the highest chance of execution and maximum trading profits. It saves an average of 1.47% on each trade, relative to trading on a single exchange.

To use Tortoise from your SFOX dashboard, enter the quantity of bitcoin you want to buy or sell and choose “Tortoise” from the algorithm dropdown menu. The price field will automatically be populated with the current optimized price, but you can override it with your own.

When you hit “Buy BTC,” we use Tortoise to start looking for an exchange with a high chance of execution at the best possible price.

First, Tortoise figures out where to place the trade. Like our other algorithms, Tortoise considers all of the exchanges to determine which venue has the best chance of executing the order. Traders who use SFOX can see exchanges our platform is considering on the Dashboard Order Book.

To place your order, Tortoise assesses each exchange’s:

  • order book depth
  • trading volume
  • pricing

It also takes into account historical data that we’ve collected about the likelihood of orders executing on different exchanges.

Next, Tortoise figures out the right price to place the order at. Instead of automatically placing an order at the limit price you set with SFOX, the algorithm analyzes the order book and our historical data to try to find a price that’s better than your limit.

Say you place a limit order to buy 1 bitcoin at $3,658, like in the example order above. Tortoise is going to try to find an exchange that can execute an order at less than $3,658 to ultimately lower your trading costs. For example, Tortoise might place your order at $3,620 if it believes that it can execute at that better price. Though the algorithm always tries to earn more than a trader’s limit, it will never buy higher or sell lower than the limit, nor will it (generally) go below the bid price.

Does This Really Work?

According to $30 million worth of bitcoin trading data, traders who deployed Tortoise saw an average savings of 1.47% on each trade, relative to trading on a single exchange.

At a price of $4000 per bitcoin, that’s over $50 per 1 bitcoin. If you’re trading dozens of times a day, then that puts you well in the thousands of dollars in savings each day.

In our experience, the best and most consistent results with Tortoise came with orders of 15 BTC or smaller. Below 15 BTC, the odds of saving that 1.47% or greater are relatively high.

After 15 BTC, the returns from Tortoise get a bit more volatile. While almost half of all Tortoise trades showed savings of about 1.5%, we did see savings of 4% of greater in about 5% of all trades.

Our data showed that 80% of the trading activity resulted in savings of between .5% and 2.5%.

These savings took place mainly on large, 30+ BTC orders. With orders of about 36 BTC, for example, we saw savings of about 4.5%.

Overall, however, when accounting for volatility, our data indicates that the returns on orders that size are better with algorithms like Smart Routing.

Who Saves The Most Using Tortoise

To benefit from these savings, traders have to deploy Tortoise in the right circumstances.The Tortoise algo should be considered if:

  • The order is small. Based on our analysis of Tortoise’s performance, the algorithm works best for orders of up to 15 BTC. After 15 BTC, one might still see savings, but returns will be more volatile.
  • You want a simple, no-frills limit order: Tortoise will sit on the order book waiting for fills at the price that you set, no matter how far your limit is from the current BTC price. If you don’t want the algorithm to hop other orders or hop across exchanges, Tortoise is for you.
  • You want to build a high-frequency trading platform with the SFOX API. If you want to create complex trading algorithms on top of the SFOX platform, you might want to think about building upon Tortoise. Its features are simple, just routing and pricing, so you’re left with a lot of room to create your own trading platform.

We would recommend not using Tortoise if:

  1. You’re new to SFOX: If you are new to the platform, you should probably not start with Tortoise. You might want to consider using our Smart Routing algorithm first, to get a sense for the value that SFOX can offer.
  2. You’re trading a lot of BTC: If your order size is large (20+ BTC) try Smart Routing, Hare, or another algorithm first — they tend to have more consistent returns on larger orders.

Lastly, while you can use Tortoise from the SFOX UI, it is best suited to be used by a high-frequency trading bot that is hooked up to our API. Because Tortoise simply sits on the order book, if you want to trade seriously using it, you want a bot that can move the order in case it is not getting fills.

You can access the API building features under your SFOX user profile, or view the API documentation here.

Taking the Uncertainty Out of Limit Orders

For traders who prioritize price and want to execute faster than regular limit orders will let them, Tortoise is an ideal algorithm.

Rather than being locked in by the price and volume on one exchange, Tortoise first looks across multiple trading venues to find the best price it can execute at quickly. Using our historical data and its rapid analysis of exchanges, the algorithm can fill limit orders with more certainty and more savings than a regular order focusing on a single exchange.

But Tortoise is ultimately a limit order algorithm. It doesn’t deviate from the price that it picks, nor the exchange that it places the order on. It stays on the path that it has chosen. We live in a world where — because of bots, mainly — this is usually not enough.

If you trade BTC seriously, then you’ve probably experienced cases where you’ve entered a 10 BTC limit order just to see bots swoop in and front-run your order by a penny. What do you do in those situations? Do you hold your position and wait to get fills? Do you move your order, and if so, do you get a better return?

We were taught that slow and steady wins the race, but what if you choose to prioritize speed over price? Next time, we’ll talk about an algorithm that can do everything we just talked about, but even quicker and with an added “hop.”