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我想访问同一类的不同函数中的函数变量   创建字段/值哈希映射的java反射   java Velocity工具向后兼容性?   cmd JAVA运行时错误:发生JNI错误   java spring引导示例hateoas不工作   java为什么Android Studio和gradle可以使用不同的类路径进行单元测试?   java Selenium Firefox驱动程序初始化   java如何在jar中重新定位gradle依赖项的包   java为什么我的单线程hello world应用程序使用22个OS线程?   正则表达式替换Java字符串中的特殊字符   在任何派生类的构造函数之后运行方法的java   java从输入字符串中找出日期   带有libGdx(Java)音乐的安卓studio可以在Android模拟器上工作,但不能在桌面上工作   java我在getconnection的参数方面有错误吗?   java使用JFileChooser访问选定文件   java如何将Json解析为另一个活动   java使用Resources for html和rest server   java更新列表,列表内容来自循环中的方法   java如何在GLSL中读取完整范围的32位整数纹理