从kraken网络插座获取ohlc。

aio-kraken-ws的Python项目详细描述


海怪号 coverage reportPEP8

一个模块收集的ohlc蜡烛使用WebSockets,是异步友好的!寻找自动交易工具?Botcrypto你可能会感兴趣。在

主要特点

  • 使用单个WebSocket订阅kraken数据。在
  • 触发一个回调,这是对每一个新关闭的蜡烛从克雷肯协同程序。在
  • 轻松订阅/取消订阅数据集,即[对,单位时间)]。在
  • 无论kraken接收到多少数据,在UT间隔的每一端都会定期触发回调。在

入门

安装

pip install aio-kraken-ws

用法

# check tests/learning/log_to_file.py for a complete exampleasyncdefcallback(pair,interval,timestamp,o,h,l,c,v):""" A coroutine handling new candles.    :param str pair:    :param int interval: time in minutes    :param int timestamp: candle open timestamp.    :param float o: open price    :param float h: high price    :param float l: low price    :param float c: close price    :param float v: volume    """withopen("candles.txt","a+")asfile:file.write(f"[{pair}:{interval}]({timestamp},{o},{h},{l},{c},{v})\n")kraken_ws=awaitKrakenWs.create(callback)# subscribe to some datasetskraken_ws.subscribe([("XBT/EUR",1),("ETH/EUR",5)])

在每个数据集的单位时间间隔结束时为每个数据集调用callback函数。在

例如,如果从4h42.05开始订阅数据集("XBT/EUR", 1),则在4h43.00、4h44.00、4h45.00等处触发回调。。。对于("XBT/EUR", 60),它将在5h00.00,在6h00.00,等等。。。在确切的UT间隔结束和呼叫的实际日期时间之间,可能最多有10毫秒的延迟。在

如果在一个时间间隔内从Kraken接收到no新数据,则会使用最新的已知收盘价和v=0触发回调,如下例所述。在

例如

^{pr2}$

错误管理

  • 将记录callback引发的异常,它不会停止流
  • 如果kraken发送一个错误消息,那么一个ERROR日志将与kraken有效负载一起发出
  • 如果kraken send'Subscription ohlc interval not supported',则相关数据集将自动取消订阅

警告

处理callback应该不到一分钟。如果callback花费的时间超过一分钟,则发出警告,您可能会丢失市场数据。在

Kraken WebSocket服务器似乎允许最多20订阅命令。服务器似乎忽略了进一步的命令。 hopply,aio kraken ws为您管理这个限制!

此外,24小时后,a股认购似乎到期,不再收到市场数据。为了确保我们不会丢失市场数据流,aio kraken ws每隔30分钟自动重新连接并重新订阅数据集。在

测试

您可以在tests/learning/log_to_file.py中找到一个KrakenWs的wroking示例。在

在本地运行测试

克隆repo和安装要求

pip install -e .[test]

运行套件测试

# unit tests - no call to kraken - fast
pytest --cov=aio_kraken_ws --cov-report= -v tests/unit

# integration tests - actual kraken subscription - slow
pytest --cov=aio_kraken_ws --cov-append -v -n 8 tests/integration

变更日志

https://cdlr75.gitlab.io/aio-kraken-ws/CHANGELOG.html

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

推荐PyPI第三方库


热门话题
JFrame中的Java多线程   java Servlet异常映射   java无法从输出流读取   swing Java带来的小程序GUI问题   java什么原因导致错误“'void'类型此处不允许”以及如何修复它?   Java选择器select(长)与selectNow的区别   java自定义arraylist<mygames>获得不同   java Icepdf注释让页面消失   java反向整数数组   java I在生成同步“无法解析配置的所有依赖项”时遇到此错误:app:debugRuntimeClasspath   多个虚拟机上的java线程访问单个DB实例上的表,有时会导致性能低下和异常   swing更改Java中的默认按钮,使其看起来“更好”   java慢速MQ主题订阅。并行化不能提高性能   java运行Boggle Solver需要一个多小时。我的代码怎么了?   数据库中的java循环与应用程序中的java循环   正则表达式匹配${123…456}并在Java中提取2个数字?   java如何制作我们软件的试用版   Java内存参数计算   从另一个类调用方法时出现java问题