Welcome to the GDAX Trading Toolkit! We’re incredibly excited to share these tools with the cryptocurrency trading community. Everything on the GTT is open source and released under the MIT license, which means that you’re free to use the components absolutely free of charge. We’re even more excited to see what you can do with these tools. If there’s something missing, or an exchange that you’d like to see supported, you can open an issue, or better yet, write it yourself and contribute back to the project.
Happy bot building!
The GTT vision and philosophy
The GTT is designed to act as a set of Lego blocks to help you build automated trading and portfolio bots on crypto-currency exchanges. Here are the kinds of things we envisage you could build with a few hundred lines of code using the GTT:
- A unified orderbook from multiple books / exchanges
- Arbitrage trading bots
- Market maker bots
- A portfolio tracker, manager, and balancer
- Technical analysis tools
- A customised trading console for your favorite exchange(s) (using gtt-ui components)
- Machine learning integration into crypto-markets
This is pretty heady stuff and we’re a long way from realising all of this, but with your help, the GTT will become the go-to standard for crypto-currency trading bots.
The basic approach of the GTT is to treat market and trading data from exchanges as streams of data, which we can pipe to different tools to modify, or act on them. The market data from each crypto exchange has been standardized so that you can pipe the data to any GTT component and it will work as expected.
This makes it very straightforward to format and shape the data in the way that your secret money-making trading logic wants it.
You want to arbitrage between BTC-USD and BTC-EUR on another exchange? Then pipe the BTC-USD data feed through
FXFilter so that BTC-EUR data comes out the other side. Pipe this and the BTC-EUR feed to your arbitrage
logic component which pipes a set of
Trade commands to the Trader component that knows how to place trades on your
By building almost every component of the GTT as a node stream, writing a bot essentially boils down to
- Configuring your source data feeds (API keys, urls and various options)
- Configuring filters and modifiers
- Joining the pieces together with pipes.
- Adding your secret trading logic
Of course, in all but the simplest and most naive bots, data doesn’t simply flow in one direction only.
You’ll usually need feedback loops and/or cross-linking between multiple data pipes. As luck would have it,
each GTT component is also a node
EventEmitter with a large number of event triggers. Arbitrarily complicated trading logic can be constructed by adding listeners to GTT components and responding to the events that get
(In theory, one could avoid using pipes completely and only use node’s event system, but pipes are usually cleaner, more concise and make for much more readable code. So we encourage their use where possible).