Robinhood API的Python包装器

robin-stocks的Python项目详细描述


Robinhood API库

简介

这个库旨在创建简单易用的函数来与 罗比尼奥API。这是一个纯python接口,需要python3。目的 这个图书馆的目的是让人们可以让自己的机器人投资者或 实时库存信息。

要加入我们的Slack频道,在这里您可以讨论交易和编码,请单击链接https://join.slack.com/t/robin-stocks/shared_invite/enQtNjE1MzY4NDY0MzkwLTI0YmVmZDVhZTQzYTdjMGZlYjM2YzQ2ODIwNDk3ZjA5ZDQ0ZWYzNjQyMzY0MmQ5ZWE2YjljODk3YjgwZTQyYmQ

安装

不需要直接下载这些文件。这个项目发表在PYPI上, 因此,可以通过在终端(Mac)或命令提示符(PC)中键入来安装它:

pip install robin_stocks

还要确保安装了python 3。如果需要安装python,可以下载它here <https://www.python.org/downloads/>。 pip是python的包安装程序,在安装python时会自动安装。要了解更多关于pip的信息,可以转到here <https://pypi.org/project/pip/>

包含的函数

有关函数及其使用方法的完整列表,请转到robin-stocks.com <http://www.robin-stocks.com/en/latest/functions.html>

示例用法

编写新的python脚本时,必须加载模块并登录到robinhood。这是 通过键入完成

import robin_stocks as r login = r.login('joshsmith@email.com','password')

并非模块中包含的所有函数都需要对用户进行身份验证。很多功能 “stocks”和“options”模块中包含的内容不需要验证,但这仍然是一种良好的做法 在每个脚本开始时登录Robinhood。

这段代码提供了很多方法来查看有关Robinhood帐户的信息。一种特别的方法是键入

my_stocks = r.build_holdings()

这将构建一个名为“我的股票”的字典,其中的键是 你持有的所有股票,以及这些关键字的值是另一个包含 关于股票的重要信息。如果您想打印本词典,可以键入

for key,value in my_stocks.items(): print(key,value)

还有买卖股票的能力。例如,如果你想买10股 对于苹果,您可以键入

r.order_buy_market('AAPL',10)

如果你想卖掉一半的特斯拉股票,如果股价跌至200.00,你可以输入

positions_data = r.get_current_positions() TSLAData = [item for item in positions_data if r.get_name_by_url(item['instrument']) == r.get_name_by_symbol('TSLA')][0] sellQuantity = float(TSLAData['quantity'])//2.0 r.order_sell_limit('TSLA',sellQuantity,200.00)

如果要查看股票列表的所有看涨期权,可以键入

optionData = r.find_options_for_list_of_stocks_by_expiration_date(['fb','aapl','tsla','nflx'], expirationDate='2018-11-16',optionType='call') for item in optionData: print(' price -',item['strike_price'],' exp - ',item['expiration_date'],' symbol - ', item['chain_symbol'],' delta - ',item['delta'],' theta - ',item['theta'])

请记住,库中包含的函数只是函数api的包装器, 您可以自由编写自己的函数来与Robinhood API交互。我已经 公开get和post方法,以便可以调用Robinhood API。语法为

url = 'https://api.robinhood.com/' payload = { 'key1' : 'value1', 'key2' : 'value2'} r.request_get(url,'regular',payload)

上述代码将导致对https://api.robinhood.com/?key1=value1&key2=value2(这是 无意义的请求)。Robinhood将大多数数据返回为{'previous':none,'results':[],'next':none}, 其中“results”是字典或字典列表。如果一个特定的查询返回的条目数超过了可以存储的条目数 在“results”中,这些数据将存储在“next”中,next只是指向下一组数据的url链接。 请记住,Robinhood有时会以不同的格式返回数据。 为了弥补这一点,request-get将“regular”、“results”、“pagination”或“indexzero”作为第二个参数。 在大多数情况下,您希望使用“分页”来获取所有结果。

工作中的新功能

  • 加密货币交易
  • 使用TD Ameritrade进行交易

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

推荐PyPI第三方库


热门话题
java“抹去”了整个swing GUI,只有一个组件例外   有人能解释一下为什么这个用来反转字符串的Java程序不起作用吗?   jar使用java代码发送电子邮件   java如何使用keyRelease连续激发筛选表?   安卓 studio在java中执行lua脚本   java在实现StatefulJob时,“延迟”是什么意思?   当我再次尝试上传时,java Android无法查看保存在新目录中的图像   爪哇岩布剪刀问题只返回一半结果   使用Jersey Rest客户端进行java异步大文件上载   Java日历。加错年份   java对于多个autosize文本视图只有一个大小   java JodaTime:句点、间隔和持续时间之间有什么区别?   java对返回数据的正确处理   多线程多线程在java中打印偶数和奇数?   摆动Java弹跳球移动   httpconnection Java HttpUrlConnection抛出连接被拒绝   寻找C#的XmlConvert的Java等价物。编码名称   jetty在一个cookie Java代码中设置多个值   使用maven构建java jar显示错误   java我可以只使用输入在iText中生成超级脚本吗?