到IEX的REST API
项目描述
Python接口到 IEX Cloud
推荐
请使用 我的推荐码 订阅IEX Cloud。
入门
安装
从pip安装
pip安装pyEX
或从源码安装
python setup.py install
扩展
pyEX[async]
: 用于流API的asyncio
集成pyEX[studies]
: 技术指标和其他计算
演示 + 文档
概述
pyEX
通过2个接口支持IEX Cloud api。第一个是简单的函数调用,传入API版本和令牌作为参数
In [1]: import pyEX as p
In [2]: p.chart?
Signature: p.chart(symbol, timeframe='1m', date=None, token='', version='', filter='')
Docstring:
Historical price/volume data, daily and intraday
https://iexcloud.io/docs/api/#historical-prices
Data Schedule
1d: -9:30-4pm ET Mon-Fri on regular market trading days
-9:30-1pm ET on early close trading days
All others:
-Prior trading day available after 4am ET Tue-Sat
Args:
symbol (str); Ticker to request
timeframe (str); Timeframe to request e.g. 1m
date (datetime): date, if requesting intraday
token (str); Access token
version (str); API version
filter (str); filters: https://iexcloud.io/docs/api/#filter-results
Returns:
dict: result
对于大多数调用,都有一个便捷的方法返回一个dataframe
In [5]: [_ for _ in dir(p) if _.endswith('DF')]
Out[5]:
['advancedStatsDF',
'auctionDF',
'balanceSheetDF',
'batchDF',
'bookDF',
'bulkBatchDF',
'bulkMinuteBarsDF',
'calendarDF',
...
由于令牌很少改变,我们有一个Client
对象以方便使用
In [6]: p.Client?
Init signature: p.Client(api_token=None, version='v1', api_limit=5)
Docstring:
IEX Cloud Client
Client has access to all methods provided as standalone, but in an authenticated way
Args:
api_token (str): api token (can pickup from IEX_TOKEN environment variable)
version (str): api version to use (defaults to v1)
set version to 'sandbox' to run against the IEX sandbox
api_limit (int): cache calls in this interval
File: ~/Programs/projects/iex/pyEX/pyEX/client.py
Type: type
Subclasses:
客户端将自动从环境变量IEX_TOKEN
中获取API密钥,也可以作为参数传入。要使用IEX Cloud测试环境,只需设置version='sandbox'
。
In [8]: c = p.Client(version='sandbox')
In [9]: c.chartDF('AAPL').head()
Out[9]:
open close high low volume uOpen uClose uHigh uLow uVolume change changePercent label changeOverTime
date
2019-11-27 271.31 274.04 277.09 268.75 16994433 267.69 271.99 271.82 266.32 16811747 0.00 0.0000 Nov 27 0.000000
2019-11-29 271.30 272.19 280.00 279.20 12135259 270.90 275.02 270.00 267.10 11927464 -0.60 -0.2255 Nov 29 -0.002232
2019-12-02 279.96 265.23 276.41 267.93 23831255 279.97 266.80 281.32 269.29 24607845 -3.20 -1.1646 Dec 2 -0.013820
2019-12-03 261.54 271.05 259.96 262.09 30331487 259.87 271.34 269.02 260.71 30518449 -4.93 -1.8450 Dec 3 -0.032745
2019-12-04 272.81 273.56 271.26 267.06 17109161 267.30 262.82 274.99 270.83 17230517 2.39 0.8955 Dec 4 -0.023411
比原生API和其他库等改进
- pyEX将根据在IEX Cloud网站上定义的刷新间隔(和在文档字符串中)透明地缓存请求,以避免浪费积分。它还可以将缓存保存到磁盘,或与您自己的自定义缓存方案集成。
- pyEX完全实现了流API
其他增强
- pyEX-studies:pyEX与TA-Lib和其他库的集成,用于IEX数据之上的技术分析和其他指标
- pyEX-caching:pyEX函数调用的持久、可查询缓存。最小化您的支出并最大化性能
- pyEX-zipline:IEX数据的Zipline集成
演示
规则引擎
pyEX
实现了与规则引擎交互的方法。
rule = {
'conditions': [['changePercent','>',500],
['latestPrice','>',100000]],
'outputs': [{'frequency': 60,
'method': 'email',
'to': 'your_email@domain'
}]
}
c.createRule(rule, 'MyTestRule', 'AAPL', 'all') # returns {"id": <ruleID>, "weight": 2}
c.rules() # list all rules
c.ruleInfo("<ruleID>")
c.ruleOutput("<ruleID>")
c.pauseRule("<ruleID>")
c.resumeRule("<ruleID>")
c.deleteRule("<ruleID>")
我们还提供Python中的辅助类,以便构建符合规则架构(由schema()
辅助函数指定)的规则
方法
数据
pyEX
提供了静态和SSE流数据的包装器。对于大多数静态数据端点,我们提供JSON和DataFrame返回函数。对于市场数据端点,我们还提供使用aiohttp
的异步包装器(要安装依赖项,请运行pip install pyEX[async]
)。
DataFrame函数将以DF
后缀结尾,异步函数将以Async
后缀结尾。
SSE流数据可以使用回调
newsSSE('AAPL', on_data=my_function_todo_on_data)
或通过异步生成器(安装pyEX[async]
后)
async for data in newsSSE('AAPL')
完整API
请参阅readthedocs以获取完整的API规范。在CATALOG.md中提供了实现的方法。
所有方法都遵循共同的命名约定。如果API方法名为technicals,则客户端将具有technicals
和technicalsDF
方法。此外,大多数方法都在作用域内提供,例如,wti作为client.wti
和client.commodities.wti
提供,analystDays从Wall Street Horizon作为client.premium.analystDays
提供,等等。
开发
请参阅CONTRIBUTING.md以获取指南。
许可证
项目详细信息
下载文件
下载适合您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建发行版
pyEX-0.5.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e85c392733aec3717b00d05640bd7efcfc87bf949064a7f31112293fe395c27e |
|
MD5 | 7571d95a8b0cea233d6994c642ae808b |
|
BLAKE2b-256 | e70b787809acca5005cba3af1d370622673881fdf0d8555b7b630cdb3f0cbf9a |
pyEX-0.5.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8860b8eb9c15d91e5f552786fbe8f8ecd46c4c4931e5cb82ba41187eb603f742 |
|
MD5 | c9ec392858f8625fc03fa52f1aa26443 |
|
BLAKE2b-256 | 5b4588bf4f00291b66076ad2290482799f276dc663833c7b3394d72823e4e36a |