Powerful, proven, and extensible framework for building trading strategies at any frequency, with a focus on crypto currencies. Battle-tested with billions traded.
See the code
Gryphon is an open source software platform for building and running algorithmic trading strategies in cryptocurrency markets. It was built by Tinker, one of the earliest cryptocurrency trading companies, and has traded billions in volume to date.
Gryphon is both a software library that can be integrated into other projects, and an application suite for running trading strategies and operating a trading business. How you use Gryphon depends on your goals. Some highlights are:
Library highlights:
gemini_btc_usd.get_orderbook(), and integrates 20+ trading pairs on 6 exchanges under that interface. Exchange integrations abstract away all the annoying individual quirks of different exchanges, like rate limits, rounding behaviour, nonces, and undocumented features. This allows the user to write strategies against a single, reliable interface, and focus completely on designing trading behaviour.Application suite highlights:

The gryphon library can be installed directly through pip once a few prerequisites are installed.
$ pip install gryphon
To use gryphon for trading, there are extra install steps to set up the execution engine. See this page for details: Installing Gryphon.
If you are going to extend or modify gryphon, we recommend downloading the codebase and installing through pip with the -e flag.
When using Gryphon, sensitive credentials like API keys never leave your machine. Instead, gryphon applications read credentials from a .env file stored in the directory they are launched from. .env files are simple lists of key-value pairs.
The .env entries for an exchange like Coinbase look something like this.
COINBASE_BTC_USD_API_KEY=[YOUR KEY]
COINBASE_BTC_USD_API_SECRET=[YOUR SECRET]
COINBASE_BTC_USD_API_PASSPHRASE=[YOUR PASSPHRASE]
Depending on the features you wish to use and the exchanges you wish to trade on, you'll need to have certain entries in your .env file. You can read the Environment Variable Reference to find out which you will need.
Once you have followed the strategy engine install steps here. You can use the gryphon execution environment to run strategies. Gryphon ships with a few simple built-in strategies. These aren't designed for serious trading but can be useful for testing and learning the framework.
One such strategy is called 'Simple Marketmaking'. It can be run as follows:
$ gryphon-exec strategy simple_mm --builtin [--execute]
If you don't include the --execute flag, the strategy runs in test-mode, and won't place any orders on exchanges. This is a feature of the execution environment, not the strategy, so this flag works with every strategy you run or build on gryphon. Only use the --execute flag when you're ready to run or test a strategy with real money.
Gryphon has a lot of building-block libraries that make common tasks quite simple. For example, we can use the gryphon arbitrage library to write a simple arbitrage strategy in only three major function calls.
from gryphon.execution.strategies.base import Strategy
import gryphon.lib.arbitrage as arb
class GeminiCoinbaseArbitrage(Strategy):
def tick(self):
cross = arb.get_crosses(
self.harness.gemini_btc_usd.get_orderbook(),
self.harness.coinbase_btc_usd.get_orderbook(),
)
executable_volume = arb.get_executable_volume(
cross,
self.coinbase_btc_usd.get_balance(),
self.gemini_btc_usd.get_balance(),
)
if cross and executable_volume:
self.harness.gemini_btc_usd.market_order(cross.volume, 'BID')
self.harness.coinbase_btc_usd.market_order(cross.volume, 'ASK')
Copy this code into a python file named 'arbitrage.py' in the same directory as your .env file, and you can run it in test mode with gryphon-exec strategy arbitrage.
Notice how much functionality is in play here: gryphon-exec sets up the environment that strategies run in and orchestrates the tick-by-tick operation, the exchange integrations for Coinbase and Gemini abstract away all the implementation details of working with those APIs into simple semantic function calls, and the arbitrage library simplifies some complex calculations into just two function calls.
If you want help with an issue, there are a few ways to ask:
The Gryphon Website can also be used as an alternate alternate jumping-off point for users new to Gryphon.
Enterprise support, custom deployments, strategy development, and other services are available through Gryphon Labs. If you're a firm interested in using Gryphon, you can schedule a chat with us or contact one of the maintainers directly.
We use GitHub issues for tracking requests and bugs.
See the Contributing to Gryphon for pull request checklists and ideas about how you can contribute.
2,614 followers · starred Jun 2019
690 followers · starred Jun 2019
7,875 followers · starred Jan 2021
874 followers · starred Jun 2019
Powerful, proven, and extensible framework for building trading strategies at any frequency, with a focus on crypto currencies. Battle-tested with billions traded.
See the code
Gryphon is an open source software platform for building and running algorithmic trading strategies in cryptocurrency markets. It was built by Tinker, one of the earliest cryptocurrency trading companies, and has traded billions in volume to date.
Gryphon is both a software library that can be integrated into other projects, and an application suite for running trading strategies and operating a trading business. How you use Gryphon depends on your goals. Some highlights are:
Library highlights:
gemini_btc_usd.get_orderbook(), and integrates 20+ trading pairs on 6 exchanges under that interface. Exchange integrations abstract away all the annoying individual quirks of different exchanges, like rate limits, rounding behaviour, nonces, and undocumented features. This allows the user to write strategies against a single, reliable interface, and focus completely on designing trading behaviour.Application suite highlights:

The gryphon library can be installed directly through pip once a few prerequisites are installed.
$ pip install gryphon
To use gryphon for trading, there are extra install steps to set up the execution engine. See this page for details: Installing Gryphon.
If you are going to extend or modify gryphon, we recommend downloading the codebase and installing through pip with the -e flag.
When using Gryphon, sensitive credentials like API keys never leave your machine. Instead, gryphon applications read credentials from a .env file stored in the directory they are launched from. .env files are simple lists of key-value pairs.
The .env entries for an exchange like Coinbase look something like this.
COINBASE_BTC_USD_API_KEY=[YOUR KEY]
COINBASE_BTC_USD_API_SECRET=[YOUR SECRET]
COINBASE_BTC_USD_API_PASSPHRASE=[YOUR PASSPHRASE]
Depending on the features you wish to use and the exchanges you wish to trade on, you'll need to have certain entries in your .env file. You can read the Environment Variable Reference to find out which you will need.
Once you have followed the strategy engine install steps here. You can use the gryphon execution environment to run strategies. Gryphon ships with a few simple built-in strategies. These aren't designed for serious trading but can be useful for testing and learning the framework.
One such strategy is called 'Simple Marketmaking'. It can be run as follows:
$ gryphon-exec strategy simple_mm --builtin [--execute]
If you don't include the --execute flag, the strategy runs in test-mode, and won't place any orders on exchanges. This is a feature of the execution environment, not the strategy, so this flag works with every strategy you run or build on gryphon. Only use the --execute flag when you're ready to run or test a strategy with real money.
Gryphon has a lot of building-block libraries that make common tasks quite simple. For example, we can use the gryphon arbitrage library to write a simple arbitrage strategy in only three major function calls.
from gryphon.execution.strategies.base import Strategy
import gryphon.lib.arbitrage as arb
class GeminiCoinbaseArbitrage(Strategy):
def tick(self):
cross = arb.get_crosses(
self.harness.gemini_btc_usd.get_orderbook(),
self.harness.coinbase_btc_usd.get_orderbook(),
)
executable_volume = arb.get_executable_volume(
cross,
self.coinbase_btc_usd.get_balance(),
self.gemini_btc_usd.get_balance(),
)
if cross and executable_volume:
self.harness.gemini_btc_usd.market_order(cross.volume, 'BID')
self.harness.coinbase_btc_usd.market_order(cross.volume, 'ASK')
Copy this code into a python file named 'arbitrage.py' in the same directory as your .env file, and you can run it in test mode with gryphon-exec strategy arbitrage.
Notice how much functionality is in play here: gryphon-exec sets up the environment that strategies run in and orchestrates the tick-by-tick operation, the exchange integrations for Coinbase and Gemini abstract away all the implementation details of working with those APIs into simple semantic function calls, and the arbitrage library simplifies some complex calculations into just two function calls.
If you want help with an issue, there are a few ways to ask:
The Gryphon Website can also be used as an alternate alternate jumping-off point for users new to Gryphon.
Enterprise support, custom deployments, strategy development, and other services are available through Gryphon Labs. If you're a firm interested in using Gryphon, you can schedule a chat with us or contact one of the maintainers directly.
We use GitHub issues for tracking requests and bugs.
See the Contributing to Gryphon for pull request checklists and ideas about how you can contribute.
2,614 followers · starred Jun 2019
690 followers · starred Jun 2019
7,875 followers · starred Jan 2021
874 followers · starred Jun 2019