Package: fast-arrow
fast_arrowA simple yet robust (stock+options) API client for RobinhoodPLEASE NOTE - breaking changes introduced in 1.0.0 releaseSometime during Spring 2019, Robinhood changed how their API handles
authentication. In order to adapt to those changes, I've moved
"authentication" outside this library tofast_arrow_auth,https://github.com/westonplatter/fast_arrow_auth.Please see:issue 35for a
detailed account of the issuethis commentfor the approach I've taken to remediate auth issuesthis PRfor a run down on exact code changesI have released these changes under version 1.0.0 to follow semantic
version guidelines (since auth changes are incompatible API changes).examplefromfast_arrowimportClient,Stock,OptionChain,Option## new auth process as of 1.0.0# get auth_data (see https://github.com/westonplatter/fast_arrow_auth)#withopen("fast_arrow_auth.json")asf:auth_data=json.loads(f.read())## initialize client with auth_data#client=Client(auth_data)## 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)installInstall the package from pypi,pip install fast_arrowdesign principlesYou might be asking, "yet another Robinhood client? There's already a few out
there. What's different about this one?"fast_arrowholds to thesedesign principles,focus on simple features that expose data. Don't interpret data.makestock&optionoperations easy to reason through & execute with codeorganize code in small and discrete python classesusefast_arrow_authto handle authentication processfeaturesHere's what you can do withfast_arrow(some features still in development)Stocksget quotesfetch historical datafetch all stock tradessubmit ordersfetch earning events (past and future)fetch company news articlesfetch company fundamentalsfetch popularity dataOptionsfetch 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 orderssingle (example)verticals (example)iron condors (example)calendarsdiagonalsgenerate humanized names for option strategiessubmit order (example)cancel order (example)replace order (example)Portfoliofetch historical value of portfolio (example)Authentication/SecurityAuthentication has moved tofast_arrow_auth.pin SSL certificate (seethis PR)exposes token refresh method (example)Want to propose a feature?Open a feature requestor open a Pull Request.developmentInstallpipenv, and then run,pipenv install --devRun the test suite via,make testRun all the examples (make sure you add username/password to config.debug.ini),sh run_all_examples.shRun the test suite against a specific python version,pipenv run tox -e py36releasesAdding so I don't forget the next time I release a version,python setup.py sdist bdist_wheel
twine upload dist/*supporting librariesfast_arrow_auth,https://github.com/westonplatter/fast_arrow_authprojects usingfast_arrowsimple_portfolio. Export trades from Robinhood and run basic reporting
on portfolio performance.https://github.com/westonplatter/simple_portfoliochesterton. A delightful little UI & trading bot for strategies on
Robinhood.https://github.com/westonplatter/chesterton