A simple yet robust API client for Robinhood
Project description
fast_arrow
A simple yet robust API client for Robinhood
example
from fast_arrow import Client, Stock, OptionChain, Option
#
# Oauth2 authenticate with Robinhood
#
client = Client(username=username, password=password)
client.authenticate()
#
# fetch the stock info for TLT
#
symbol = "TLT"
stock = Stock.fetch(client, symbol)
#
# get the TLT option chain
#
stock_id = stock["id"]
option_chain = OptionChain.fetch(client, stock_id)
#
# let's get TLT options (calls and puts) for next 4 expiration dates
#
oc_id = option_chain["id"]
eds = option_chain['expiration_dates'][0:3]
#
# get all options on the TLT option chain
#
ops = Option.in_chain(client, oc_id, expiration_dates=eds)
#
# merge in market data fro TLT option instruments (ask, bid, delta, theta, etc)
#
ops = Option.mergein_marketdata_list(client, ops)
install
Install the package from pypi,
pip install fast_arrow
another Robinhood client?
fast_arrow
at its core,
- is a Robinhood api client focused on simple and robust features
- provides first class support for stock and option trading
- organizes code in small and discrete python classes
features
Here's what you can do with fast_arrow
(some features still in development)
Stocks
- get quotes
- fetch historical data
- fetch all stock trades
- submit orders
- fetch earning events (past and future)
- fetch company news articles
- fetch company fundamentals
- fetch popularity data
Options
- fetch option quotes (example)
- fetch open option positions (example)
- fetch all option orders (filled, canceled, rejected)
- fetch historical options data (example)
- fetch option events (example)
- generate option strategy orders
- generate humanized names for option strategies
- submit order (example)
- cancel order (example)
- replace order (example)
Portfolio
Authentication/Security
- handle standard Login/Logout flow example
- handle MFA token during login example
- pin SSL certificate (see this PR)
- automatically refreshes oauth2
Want to propose a feature? Open a feature request or open a Pull Request.
development
Install pipenv, and then run,
pipenv install --dev
Run the test suite via,
make test
Run all the examples (make sure you add username/password to config.debug.ini),
sh run_all_examples.sh
Run the test suite against a specific python version,
pipenv run tox -e py36
releases
Adding so I don't forget the next time I release a version,
python setup.py sdist bdist_wheel
twine upload dist/*
projects using fast_arrow
-
simple_portfolio. Export trades from Robinhood and run basic reporting on portfolio performance. https://github.com/westonplatter/simple_portfolio
-
chesterton. A delightful little UI & trading bot for strategies on Robinhood. https://github.com/westonplatter/chesterton
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fast_arrow-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6de2ac9ec295d74d5b38212f91f43c4a7a9a2ff8f4364738ddffc0990334bc4e |
|
MD5 | 059bde2574a054acf33da18c81864b9a |
|
BLAKE2b-256 | dcc8341a751994e77a4a7656deda22ddf6b3738ed3cf87ad1a6213252a785772 |