Giter Site home page Giter Site logo

alpaca-py's Introduction

AlpacaPy

Downloads

Dev setup

This project is managed via poetry so setup should be just running poetry install.

This repo is using pre-commit to setup some checks to happen at commit time to keep the repo clean. To set these up after you've run poetry install just run poetry run pre-commit install to have pre-commit setup these hooks

Note: AlpacaPy is in the very early stages of alpha development and is not production ready. Currently AlpacaPy interfaces with only the Market Data API, however the other APIs are coming soon.

Basic Example Use Cases

Requesting Historical Market Data

To retrieve historical market data, you’ll need to instantiate a historical data client with your API keys. There are many different methods that allow you to access various stock and crypto data. To see the full range of data types available, read the API reference for market data.

In this example, we will query daily bar data for Apple Inc (AAPL) between January 1st 2021 and December 31st 2021. Then we will convert the data to a dataframe and print it out to the console.

from alpaca.data.historical import HistoricalDataClient
from alpaca.common.time import TimeFrame

API_KEY = 'api-key'
SECRET_KEY = 'secret-key'

client = HistoricalDataClient(API_KEY, SECRET_KEY)

bars = client.get_bars("AAPL", TimeFrame.Day, "2021-01-01", "2021-12-31")

print(bars.df)

#             open      high      low   close     volume  trade_count        vwap
# timestamp
# 2021-01-04  133.56  133.6116  126.760  129.41  143302687      1310228  129.732580
# 2021-01-05  128.98  131.7400  128.430  131.01   97667342       707584  130.717944
# 2021-01-06  127.53  131.0499  126.382  126.60  155104120      1202580  128.350036
# 2021-01-07  128.38  131.6300  127.860  130.92  109581117       718363  130.153889
# 2021-01-08  132.50  132.6300  130.230  132.05  105158675       800071  131.565744
# ...            ...       ...      ...     ...        ...          ...         ...
# 2021-12-27  177.10  180.4200  177.070  180.33   74912939       629431  179.056944
# 2021-12-28  180.20  181.3300  178.530  179.29   79103863       631316  179.707003
# 2021-12-29  179.30  180.6300  178.140  179.38   62325973       491576  179.455692
# 2021-12-30  179.59  180.5700  178.090  178.20   59770632       498613  179.374495
# 2021-12-31  178.00  179.2300  177.260  177.57   64038680       451478  177.800285

# [252 rows x 7 columns]

Subscribing to Live Market Data

Live market data is available for both crypto and stocks via websocket interfaces. Keep in mind live stock data is only available during market hours on trading days, whereas live crypto data is available 24/7. In this example, we will subscribe to live quote data for Bitcoin (BTCUSD). To do so, first we will need to create an instance of the CryptoDataStream client with our API keys. Then we can create an asynchronous callback method to handle our live data as it is available.

from alpaca.data.live import CryptoDataStream

API_KEY = 'api-key'
SECRET_KEY = 'secret-key'

client = CryptoDataStream(API_KEY, SECRET_KEY)


# handler function will receive data as the data arrives
async def handler(data):
    print(data)


# subscribe to quote data for BTCUSD
client.subscribe_quotes(handler, "BTCUSD")

# start websocket client
client.run()

alpaca-py's People

Contributors

drew887 avatar haxdds avatar

Stargazers

Zouhir JAABARI avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.