Python模块从分散的chainlink社区资源中获取价格和其他数据
chainlink-feeds的Python项目详细描述
chainlink_源
一种从链接价格源中提取数据的方法,用于分析、算法交易模型或其他。在
此回购使用RPC\u URL或Chainlink Subgraph
快速启动
安装:
pip install chainlink_feeds
使用链环子图
如果不指定RPC_URL,则会自动使用Chainlink子图。在
^{pr2}$结果:
[{'assetPair': 'ETH/USD', 'blockHash': '0x141ad3c7468f4263d8b1b98a73f804b40ef1eb3a966bc2151646a08ba9872a58', 'blockNumber': '10887253', 'id': '0xf79d6afbb6da890132f9d7c355e3015f15f3406f/10887253/8', 'price': '38281000000', 'timestamp': '1600446952', 'transactionHash': '0x44e321f415e2ae236e3fbfb0df024825ff95331dca89dd25401303f0433fdb9d'}]
You can also pass:
cf.get_historical_price()
cf.get_price_feeds()
cf.get_prices()
cf.get_hourly_candle()
cf.get_daily_candle()
cf.get_weekly_candle()
这将获得子图可以返回的所有数据。如果您想获得pandas,只需更改对象的输出格式即可。在
cf = ChainlinkFeeds(output_format = 'pandas')
data = cf.get_daily_candle(pair='eth/usd')
data['closePrice'] = data['closePrice'].astype(float)
data.index = pd.to_datetime(data.index, unit='s')
data['closePrice'].plot()
导致:
assetPair averagePrice closePrice highPrice lowPrice medianPrice openPrice
openTimestamp
1600387200 ETH/USD 38615230654 38281000000 39190413319 38110269640 38933749501 38933749501
1600300800 ETH/USD 37891000000 39020000000 39344406296 36503000000 36503000000 36503000000
1600214400 ETH/USD 36564000000 36555000000 37276742411 35743000000 36428000000 36428000000
1600128000 ETH/USD 36983000000 36385393883 38069814258 36319641931 37744000000 37744000000
1600041600 ETH/USD 36914207489 37675318623 38270000000 35817000000 36634540717 36634540717
... ... ... ... ... ... ... ...
1586649600 ETH/USD 16022887240 15994875000 16467921975 15597479550 15864014512 15864014512
1586563200 ETH/USD 15838000000 15738831997 16108625000 15543870740 15813418305 15813418305
1586476800 ETH/USD 15868349654 15729441133 16995863008 15328500000 16994301012 16994301012
1586390400 ETH/USD 16990152130 17075750000 17151190079 16863999644 16943041228 16943041228
1586304000 ETH/USD 17277450182 17276241069 17277853301 17276241069 17277853301 17277853301
然后可以对其运行一些分析:
from chainlink_feeds.chainlink_feeds import ChainlinkFeeds
import matplotlib.pyplot as plt
import pandas as pd
cf = ChainlinkFeeds(output_format = 'pandas')
data = cf.get_daily_candle(pair='eth/usd')
data['closePrice'] = data['closePrice'].astype(float)
data.index = pd.to_datetime(data.index, unit='s')
data['closePrice'].plot()
结果是:
也可以使用以下命令运行自己的GraphQL查询:
cf.graphql_query("{enter_query_here}")
您可以在Chainlink subgraph站点上查看一些方法。
使用RPC\u URL
否则,您可以指定一个RPC_URL并自己查询区块链。在
from chainlink_feeds.chainlink_feeds import ChainlinkFeeds
cf = ChainlinkFeeds(rpc_url = "https://www.infura.com/asdfasdfasdfas)
直接查询区块链。你需要知道他们的地址和ABI。作为参考,您可以检查此repo中的config
文件夹。您还可以使用您自己的带有地址或abi的配置load_config
。其中很多都是预先填充在这个repo中的,但是一定要检查你是否使用了过期的地址。在
print(cf.get_latest_round_data(network='KOVAN', pair='ETH_USD'))
导致:
{'round_id': 18446744073709562669, 'price': 382.66, 'started_at': '2020-09-18 13:30:12', 'time_stamp': '2020-09-18 13:30:12', 'answered_in_round': 18446744073709562669}
您可以直接从Chainlink Price Feeds Documentation使用这些方法。在
待办事项:
- 添加更多查询支持
- 制作本自述以外的文档
- 添加更多测试
- 找出如何返回1000多个结果
联系人:
{a13也一定要去看看!在
如果你喜欢的话,可以考虑在本次回购中出演主角:)
- 项目
标签: