Alpaca API Python客户端
alpaca-trade-api的Python项目详细描述
羊驼贸易API蟒蛇
羊驼贸易api python
是羊驼佣金自由贸易api的python库。
它允许在支持
rest和流数据接口。有关每个api行为的详细信息,
请参阅在线API文档
注意:由于 异步/等待和websockets模块依赖关系。
安装
$ pip3 install alpaca-trade-api
示例
为了调用alpaca的trade api,您需要注册一个帐户并获取api密钥对。将"密钥ID"和"密钥"替换为您从Web控制台获得的内容。
休息示例
importalpaca_trade_apiastradeapiapi=tradeapi.REST('<key_id>','<secret_key>',api_version='v2')# or use ENV Vars shown belowaccount=api.get_account()api.list_positions()
脚本示例
请参见examples/
文件夹,以获取使用此API的一些示例脚本
API文件
http api文档位于https://docs.alpaca.markets/" rel="nofollow">https://docs.alpaca.markets/
API版本
API版本现在默认为"v2",但是如果您仍然有"v1"帐户,则可能需要指定API版本='v1'才能正确使用该API,直到您迁移。
身份验证
Alpaca API需要API密钥ID和密钥,您可以从
登录后的Web控制台。您可以将key_id
和secret_key
传递给
rest
或streamconn
作为参数,或将环境变量设置为
概述如下。
羊驼环境变量
alpaca sdk将检查环境中是否有许多变量,这些变量可以使用,而不是硬编码到脚本中。
<表><广告>https://paper-api.alpaca.markets(用于纸张)
REST
rest类是api请求的入口点。这个例子 类提供了所有rest api调用,如account、orders、positions、positions和 和酒吧。
每个返回的对象都由实体
类的子类(或其列表)包装。
这个helper类为
json对象,由存储在\u raw
字段中的原始对象支持。
它还将某些类型转换为适当的python对象。
importalpaca_trade_apiastradeapiapi=tradeapi.REST()account=api.get_account()account.status=>'ACTIVE'
实体
类还将timestamp字符串字段转换为pandas.timestamp
对象。它的\u raw
属性返回原始原始原始数据未编组
从响应json文本。
请注意,API已被限制,当前每个帐户每分钟200个请求。如果您的客户机超过此数目,则会返回429太多请求状态,并且此库将根据配置的重试环境变量重试。
如果超过重试次数,或返回其他API错误,将引发alpaca_trade_api.rest.api error
。
您可以通过此对象访问以下信息。
- API错误代码:
。代码
属性 - API错误消息:
str(错误)
- 原始请求对象:
。请求
属性 - 原始响应objecgt:
。响应
属性 - http状态代码:
。status\u code
属性
rest.get_account()
调用get/account
并返回帐户
实体。
rest.list_orders(status=none,limit=none,after=none,until=none,direction=none)
调用get/orders
并返回order
实体的列表。
after
和until
需要字符串格式,您可以通过pd.timestamp().isoformat()
其余。提交订单(符号、数量、边、类型、时间、限制价格=无、停止价格=无、客户订单ID=无)
调用post/orders
并返回order
实体。
rest.get_order_by_client_order_id(客户订单id)
使用客户订单id调用get/orders
,并返回订单
实体。
休息。获取订单(订单ID)
调用get/orders/{order_id}
并返回order
实体。
休息。取消订单(订单ID)
调用delete/orders/{order\u id}
休息。取消所有订单()
调用delete/orders
rest.list_positions()
调用get/positions
并返回position
实体列表。
休息。获取位置(符号)
调用get/positions/{symbol}
并返回position
实体。
rest.列出资产(状态=无,资产类别=无)
调用get/assets
并返回asset
实体的列表。
休息。获取资产(符号)
调用get/assets/{symbol}
并返回asset
实体。
rest.get_barset(符号、时间范围、限制、开始=无、结束=无、之后=无、直到=无)
为给定的符号调用 呼叫 调用 streamconn类提供基于websocket的事件驱动
接口。使用实例的装饰符
定义当模式
在频道名称上匹配。一旦设置了事件处理程序,
调用 这个类为这两个接口提供了一个唯一的接口
羊驼的帐户/贸易更新事件和多边形的价格更新。
当使用
相应的频道名称。例如,如果您订阅
如果发生以下情况, 传递给每个处理程序的 每个事件处理程序都必须标记为异步。否则,
将其注册为事件处理程序时,会引发 您可能会在线程中调用 请求"监听"服务器。 请求停止"监听"服务器。 进入无限循环并等待来自服务器的消息。你应该
在调用 如上例所示,这是一个decorator方法,用于添加事件处理程序函数。
将函数注册为由流事件触发的事件处理程序
与 注销以前通过 Alpaca的API密钥ID可用于访问Polygon API
在这里可以找到。
这个python sdk封装了他们的api服务,并与alpaca无缝集成。
应用程序编程接口. 下面的示例以数据帧格式提供AAPL每日OHLTV数据。 它通过羊驼 返回 返回一个 返回一个 返回一个pandas dataframe对象,其标记由 返回 返回一个pandas dataframe对象,其刻度由 返回 如果指定get/bars/{timeframe}
,并返回一个带有limit
bar对象的barset
对于每个请求的符号。
时间范围可以是
分钟
,1分钟
,5分钟
,15分钟
,天
或1d
。minute
是别名
小于或等于1分钟。类似地,day
是1d
的别名。
start
,end
,after
和until
需要字符串格式,您可以使用
pd.timestamp().isoformat()
after
不能与start
和一起使用,直到
不能与
中指定的end
一起使用为止
休息。获取时钟()
get/clock>并返回一个
时钟
实体。
rest.get_calendar(开始=无,结束=无)
get/calendar
并返回calendar
实体。streamconn
run
方法,该方法将一直运行直到出现严重异常
提高了。此模块本身不提供任何线程
功能,因此如果需要使用从
服务器,您需要在后台线程中运行它。帐户更新
,一个websocket连接到alpaca stream api,并且
如果将am.*
赋给subscribe()
方法,则WebSocket连接是
建立到多边形的界面。run
方法是开始订阅频道和
永远奔跑。呼叫将被永远阻止,直到
引发异常,并异步调用每个事件处理程序
消息到达时。run
方法将尝试重新连接到服务器
连接失败。在这种情况下,您可能需要重置您的状态
在connect
事件中,这是最好的。方法仍然提高
如果在
事件循环。msg
对象由实体包装
如果邮件来自服务器,则为助手类。valueerror
。conn=StreamConn()@conn.on(r'^account_updates$')asyncdefon_account_updates(conn,channel,account):print('account',account)@conn.on(r'^status$')defon_status(conn,channel,data):print('polygon status update',data)@conn.on(r'^AM$')defon_minute_bars(conn,channel,bar):print('bars',bar)@conn.on(r'^A$')defon_second_bars(conn,channel,bar):print('bars',bar)# blocks foreverconn.run(['account_updates','AM.*'])
run
方法,因为它将继续运行
除非引发异常。streamconn.subscribe(频道)
频道
必须是字符串频道名称列表。streamconn.取消订阅(频道)
频道
必须是字符串频道名称列表。streamconn.run(频道)
run
之前,使用on
或register
方法设置事件侦听器
streamconn.on(频道pat)
通道pat
用作筛选流名称的正则表达式模式。流连接寄存器(通道pat,func)
channel_path
正则表达式匹配的。使用
相同的通道pat
将覆盖旧的处理程序。streamconn.注销(channel_pat)
on
注册的事件处理程序函数,或
寄存器
方法。多边形API服务
羊驼贸易api.rest.polygon
将是polygon的rest
对象。importalpaca_trade_apiastradeapiapi=tradeapi.REST()aapl=api.polygon.historic_agg('day','AAPL',limit=1000).df
多边形/静止
rest
对象初始化。多边形/静止交换(
exchange
实体的列表。polygon/rest.symbol_type_map()
symboltypemap
对象。多边形/静止。历史交易(符号,日期,偏移=无,限制=无)
交易
列表,其中包含交易
实体。日期
是日期字符串,如"2018-2-2"。返回的报价是从即日起生效的。offset
是unix epoch毫秒中的一个整数,作为下限过滤器,包括在内。limit
是要返回的刻度数的整数。默认值,最大值为30000。多边形/贸易.df
historic\u trades返回
polygon/rest.historic_引号(symbol,date,offset=none,limit=none)
引号
这是引号
实体的列表。日期
是日期字符串,如"2018-2-2"。返回的报价仅来自当天。offset
是unix epoch毫秒中的一个整数,作为下限过滤器,包括在内。limit
是要返回的刻度数的整数。默认值,最大值为30000。多边形/引号.df
historic\u引号返回
polygon/rest.historic_agg(大小,符号,_from=none,to=none,limit=none)
aggs
这是agg
实体的列表。aggs.df
提供数据帧
对象:< /P>\u from
是一个东部时间戳字符串,用于筛选下限(包括下限)的结果。到
是一个东部时间戳字符串,用于筛选结果的上限(包括上限)。limit
是一个整数,用于限制结果数。3000是默认值和最大值。to
参数,请指定\u from
参数,因为当to
是
从\u被认为是历史的开始。否则,当你
仅使用
限制或不使用参数,结果将从最新点返回。
返回的实体具有用较长名称而不是较短名称重新标记的字段。
例如,将o
字段重命名为open
多边形/aggs.df
返回一个pandas数据帧对象,其标记由hitoric_agg
返回。
Poylgon/Rest.上次交易(符号)
返回一个trade
实体,表示符号的最后一个trade。
多边形/静止。最后一个引号(符号)
返回表示符号最后一个引号的引号
实体。
多边形/静止状态图(ticktype='trades')
返回一个conditionmap
实体。
多边形/休息公司(符号)
如果symbol
是字符串,则返回company
实体,或者
dict[symbol->;company
]如果symbol
是字符串列表。
多边形/静止股息(符号)
如果symbol
是字符串,则返回红利
实体,或者
dict[symbol->;红利
]如果"symbol"是字符串列表。
多边形/静止分割(符号)
返回符号的拆分
实体。
多边形/静止收益(符号)
如果symbol
是字符串,则返回收益
实体,或者
dict[symbol->;收入
]如果symbol
是字符串列表。
多边形/静止财务(符号)
如果symbol
是字符串或
dict[symbol->;财务信息
]如果symbol
是字符串列表。
多边形/静止。新闻(符号)
返回符号的新闻列表
实体。
支持和贡献
对于本模块特有的技术问题,请报告 此GitHub存储库上的问题。任何api问题都可以通过 羊驼的客户支持。
通过发送pull请求的新功能和错误修复总是 欢迎光临。