在加密货币市场上运行算法交易策略的框架。

gryphon的Python项目详细描述


alttext

鹰头狮是一个开源软件平台,用于在加密货币市场构建和运行算法交易策略。它是由最早的加密货币交易公司之一Tinker建造的,迄今为止交易量已达数十亿美元。

<表><广告>文档 生成 < /广告><正文>documentation生成状态documentation status

包含的内容

鹰头狮既是一个可以集成到其他项目中的软件库,也是一个用于运行交易策略和运营交易业务的应用程序套件。你如何使用鹰头狮取决于你的目标。一些亮点是:

图书馆亮点:

  • 20多个交易对集成——gryphon为交易所定义了一个抽象接口,语义函数调用如gemini_btc_usd.get_orderbook(),并在该接口下集成了6个交易所的20多个交易对。汇兑整合将不同交易所的所有烦人的个人怪癖抽象出来,比如利率限制、舍入行为、非现金交易和未记录的特征。这允许用户针对单一、可靠的界面编写策略,并完全专注于设计交易行为。
  • 策略构建块~ gryphon的策略构建块库中提供了常见的操作,如检查套利机会,并在中对不同的策略类进行了测试。许多常见的策略类型可以在3-5个函数调用中实现。

应用套件亮点:

  • 策略引擎~ gryphon的主要可执行文件加载并执行策略文件,为策略开发人员提供冗余的交换连接、交易历史持久性,监控、仪器和许多其他功能使鹰头狮成为构建和运行策略的最简单方法。
  • gryphon数据服务~一个独立的服务,用于接收市场数据和其他高频事件。使用rabbitmq构建的gds可以用于gryphon的高级安装,以大幅度提高计时速度或建立用于机器学习的数据集。
  • 仪表盘~一个连接到交易数据库的Web服务器,帮助您可视化交易策略的活动并了解交易业务的健康状况。

altText

安装

一旦安装了一些先决条件,就可以通过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的所有实现细节抽象为简单的语义函数调用,套利库将一些复杂的计算简化为两个函数调用。

获取帮助

如果您需要有关某个问题的帮助,有几种方法可以询问:

<P>鹰头狮网站也可以作为鹰头狮新用户的备用起点。

贡献指南

我们使用github问题 跟踪请求和错误。

请参阅为gryphon提供帮助,以获取拉取请求检查表和有关如何提供帮助的想法。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java广播接收器未检测到按键事件   java不为特定列更改创建修订   java采用了更实用的方法   java桌面窗格HTML呈现   java处理internet连接丢失   java在调整JFrame的大小时,如何防止JTable的列调整大小?   如何用Java中的“Scanner.hasNext”完成程序   具有模块名称的java停止IntelliJ项目工具窗口?   执行已编译的Rails-Warbler JAR文件时发生java加载错误   java Spring数据redis存储库不支持集合查询?   每个客户端的java队列请求   获取Java中的JSON嵌套数组元素   java GWT,Vaadin ConcurrentModificationException   firebase存储中的java在保存照片之前,我需要发送两次照片   JavaSpringEleaf如何在容器外使用变量