在加密货币市场上运行算法交易策略的框架。
gryphon的Python项目详细描述
鹰头狮是一个开源软件平台,用于在加密货币市场构建和运行算法交易策略。它是由最早的加密货币交易公司之一Tinker建造的,迄今为止交易量已达数十亿美元。
<表><广告>文档
生成
包含的内容
鹰头狮既是一个可以集成到其他项目中的软件库,也是一个用于运行交易策略和运营交易业务的应用程序套件。你如何使用鹰头狮取决于你的目标。一些亮点是:
图书馆亮点:
- 20多个交易对集成——gryphon为交易所定义了一个抽象接口,语义函数调用如
gemini_btc_usd.get_orderbook()
,并在该接口下集成了6个交易所的20多个交易对。汇兑整合将不同交易所的所有烦人的个人怪癖抽象出来,比如利率限制、舍入行为、非现金交易和未记录的特征。这允许用户针对单一、可靠的界面编写策略,并完全专注于设计交易行为。 - 策略构建块~ gryphon的策略构建块库中提供了常见的操作,如检查套利机会,并在中对不同的策略类进行了测试。许多常见的策略类型可以在3-5个函数调用中实现。
应用套件亮点:
- 策略引擎~ gryphon的主要可执行文件加载并执行策略文件,为策略开发人员提供冗余的交换连接、交易历史持久性,监控、仪器和许多其他功能使鹰头狮成为构建和运行策略的最简单方法。
- gryphon数据服务~一个独立的服务,用于接收市场数据和其他高频事件。使用rabbitmq构建的gds可以用于gryphon的高级安装,以大幅度提高计时速度或建立用于机器学习的数据集。
- 仪表盘~一个连接到交易数据库的Web服务器,帮助您可视化交易策略的活动并了解交易业务的健康状况。
安装
一旦安装了一些先决条件,就可以通过pip直接安装gryphon库。
$ pip install gryphon
要使用gryphon进行交易,需要额外的安装步骤来设置执行引擎。有关详细信息,请参见本页:安装gryphon
如果要扩展或修改gryphon,我们建议您下载代码库并通过带有-e
标志的pip进行安装。
用法
凭据和环境变量
使用gryphon时,敏感凭据(如api密钥)永远不会离开您的计算机。相反,gryphon应用程序从存储在启动它们的目录中的.env
文件读取凭据。.env
文件是键值对的简单列表。
像coinbase这样的exchange的.env条目如下所示。
COINBASE_BTC_USD_API_KEY=[YOUR KEY]
COINBASE_BTC_USD_API_SECRET=[YOUR SECRET]
COINBASE_BTC_USD_API_PASSPHRASE=[YOUR PASSPHRASE]
根据您希望使用的功能和希望进行交易的交换,您需要在.env文件中包含某些条目。您可以阅读环境变量引用来了解您需要什么。
运行内置策略
一旦您按照策略引擎的安装步骤进行操作,请在此处执行。您可以使用鹰头狮执行环境来运行策略。鹰头狮有一些简单的内置策略。这些不是为严肃的交易而设计的,但对于测试和学习框架是有用的。
其中一种策略叫做"简单的市场营销"。它可以如下运行:
$ gryphon-exec strategy simple_mm --builtin [--execute]
如果不包含--execute
标志,则该策略将在测试模式下运行,并且不会向交易所下任何订单。这是执行环境的一个特性,而不是策略,因此此标志适用于您在gryphon上运行或构建的每个策略。只有当您准备好用实际资金运行或测试策略时,才使用--execute
标志。
编写并运行第一个策略
gryphon有很多构建块库,可以使常见任务变得非常简单。例如,我们可以使用gryphon套利库只在三个主要函数调用中编写一个简单的套利策略。
fromgryphon.execution.strategies.baseimportStrategyimportgryphon.lib.arbitrageasarbclassGeminiCoinbaseArbitrage(Strategy):deftick(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(),)ifcrossandexecutable_volume:self.harness.gemini_btc_usd.market_order(cross.volume,'BID')self.harness.coinbase_btc_usd.market_order(cross.volume,'ASK')
将此代码复制到与.env文件位于同一目录中名为"curligate.py"的python文件中,然后可以在测试模式下使用gryphon exe strategy curligate
注意这里有多少功能在起作用:gryphon exec
设置运行策略的环境并编排逐点操作,Coinbase和Gemini的交换集成将使用这些API的所有实现细节抽象为简单的语义函数调用,套利库将一些复杂的计算简化为两个函数调用。
获取帮助
如果您需要有关某个问题的帮助,有几种方法可以询问:
- 加入gryphon slack向开发者提问
- 报告一个错误
- 搜索或阅读文档
- 使用标签在stackoverflow上提问
贡献指南
请参阅为gryphon提供帮助,以获取拉取请求检查表和有关如何提供帮助的想法。