Giter Club home page Giter Club logo

polygon's Introduction

polygon: A Complete Polygon.io API Wrapper

Discord Documentation Status pypi Downloads CodeFactor ff fd Licenses gh

what is polygon

polygon is a Complete Python Wrapper for Polygon.io APIs. It offers simple and elegant programmatic access over each endpoint. Functionalities include but not limited to:

  • Stocks and Options data
  • Forex and Crypto data
  • Real time Websocket streaming (both callback and async based)
  • Technical Indicators (SMA, EMA, RSI, MACD)
  • Market Info, News, Holidays, Schedules, Tickers, Conditions, Dividends, Splits
  • Async support for REST endpoints
  • Built In stream reconnection functionality (Experimental, async streamer only)
  • Full builtin Pagination support (with internal merging of responses)
  • Bulk data download functions: bulk OCHLV aggregates bars, bulk ticker details etc.
  • Extensive Option Symbology supporting 6 option symbol formats

and a lot more...

How Do I Use polygon

The complete description of everything you need to know is available in the Documentation which has answers to any question you might have with example uses included wherever needed. Docs are a must-read for most people.

  • For examples to get started with, see the examples
  • For an advanced use case example code involving redis queue and postgresql database, check out
  • MarketMakerLite/polygon
  • The lib is also officially supported by the popular TA library pandas-ta as an underlying data source instead of the default yfinance. See relevant docs to know how to use
  • To see an advanced use case of downloading ALL OCHLV data for ALL tickers for 20+ years and write it to a timescale enabled postgresql database efficiently, see This Script by MML.
  • The documentation also contain TONS of sample code snippets wherever necessary.

Quick Setup Guide With Examples

Before you do anything, you'll need to have a polygon account and get your API key. Visit Your Dashboard to get yours.

Next, you'd need to install polygon

pip install polygon

and You're good to Go!

Here are a few quick usage examples.

Getting a Stock's Previous Day OCHLV

import polygon

api_key = 'YOUR_KEY'

stocks_client = polygon.StocksClient(api_key)

previous_close = stocks_client.get_previous_close('AMD')

print(previous_close)

An Async Example for REST endpoints - Previous Close

import polygon
import asyncio

async def main():
    api_key = 'YOUR_KEY'
    
    stocks_client = polygon.StocksClient(api_key, True)
    
    previous_close = await stocks_client.get_previous_close('AMD')
    await stocks_client.close()  # Recommended to close the httpx session when it's not needed. 
    print(previous_close)

if __name__ == '__main__':
    asyncio.run(main())

A Streaming Example (Callback Based)

import polygon
from polygon.enums import StreamCluster

def my_own_message_handler(ws, msg):
    print(f'msg received: {msg}')

def main():
    api_key = 'YOUR_KEY'

    stream_client = polygon.StreamClient(api_key, StreamCluster.STOCKS, on_message=my_own_message_handler)
    stream_client.start_stream_thread()
    stream_client.subscribe_stock_trades(['AMD', 'NVDA'])

if __name__ == '__main__':
    main()

An Async Streaming Example

import asyncio
import polygon
from polygon.enums import StreamCluster

async def stock_trades_handler(msg):   # it is possible to create one common message handler for different services.
    print(f'msg received: {msg}')
    
async def main():
    api_key = 'YOUR_KEY'
    
    stream_client = polygon.AsyncStreamClient(api_key, StreamCluster.STOCKS)
    
    await stream_client.subscribe_stock_trades(['AMD', 'NVDA'], stock_trades_handler)
    
    while 1:
        await stream_client.handle_messages()  # the lib provides auto reconnect functionality. See docs for info
if __name__ == '__main__':
    asyncio.run(main())

This only scratches the surface of the library.

See the Documentation to start using the library with its full functionalities.

Latest development source code of the library can be found on the development branch

What if I need help?

We have a helpful & vibrant community in our Discord Server. Join in to ask a question, share your ideas or observations or to just chat with interesting people, or maybe just for lurking ๐Ÿ‘€

See Getting Help or you can also start a quick discussion

Quick Links for Speed Runners

What else?

  • Bug reports, suggestions and pull requests are always welcome.
  • See Contributing if you wish to contribute.
  • Read This before raising a bug.
  • CHANGELOG for the project is available within the same repository
  • polygon is released under the MIT License

Made with Passion & Python by P S Solanki

polygon's People

Contributors

pssolanki111 avatar asmisha 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.