从kraken网络插座获取ohlc。
aio-kraken-ws的Python项目详细描述
海怪号
一个模块收集的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
- 项目
标签: