Algorithmic Trading

In Algorithmic Trading, speed is critical for success. Traders must optimize and reduce the latency of both hearing about important transactions and submitting transactions to block builders and validators. Following the guidelines below, bloXroute users can receive the greatest performance from the BDN and get an advantage over competitors.

Speed is essential mainly for two reasons:

  1. Giving you enough time to process a trigger transaction and get your trades in the next block.

  2. In some cases, block builders (or validators) order transactions based on arrival time.

Blocks duration and blocks interval depend on network you trade. The lower the block's interval (e.g. more blocks are created). In Ethereum for example, where block time is 12 seconds, latency is less of an issue in the beginning of the slot, however, in the last 1-2 seconds of the slot time it can determine if you win or not.

Algorithmic Trading is usually a bot responding to a transaction (trigger transaction). In this case, there are two main unknowns:

  1. Origin of the trigger transaction: The trigger transaction could have been created anywhere in the world.

  2. Validator/block builder location: The node creating the next block can be located anywhere in the world.

A trader needs to minimize the duration between the time a trigger transaction was first available in the mempool and the time their bot receives it.

A trader needs to minimize the duration between the time they send their trade transaction (or bundle) and the time block builders/validators receive the transaction/bundle.

Specifically, in Ethereum, a trader needs to reach to as many block builders as possible to increase inclusion rate.

Traders can control the location and number of their bots - the more trading bots they own, the faster they can hear about transactions. This, however, adds up in terms of operational costs and becomes an optimization problem of how to minimize the time while keeping costs low.

How to Speed Up Inclusion rate

  • Use multiple endpoint targets, i.e., your bots should submit transactions to both the Gateway and the Cloud-API.

  • Use a Websocket connection with the Gateway-API and Cloud-API.

  • For Ethereum, traders should consider the following:

    • If possible, use both bundles and private transaction. Sometimes it is easier to land in the next block with private transaction (you are risking a gas of reverted transaction).

    • Submit bundles to the gateway and not just to the Cloud-API (requires Enterprise Elite plan). This will get your bundles to the builder much faster.

    • Use the enable_backrunme option for bundles. If your bundle create backrun opportunity, you will get some MEV back but more importantly, block builders will prioritize your transaction.

    • Use the all option for mev_builders in blxr_submit_bundle request.

How to Speed Up Trigger Transactions Discovery

  • Run a Gateway for each of your nodes (requires an Enterprise plan or above).

  • Use bloXroute's newTxs stream and perform applicable validation within your application.

  • Use bloXroute bdnBlocks Stream.

General Guidelines for Increasing Performance

  • Run trading bots from multiple regions around the world.

  • Stay as close as possible to the BDN infrastructure and run bots in regions with many nodes.

Last updated