Skip to main content

A Fast and Efficient way to get the current Oil Price from Yahoo Finance API in Python.

Project description

bmdOilPriceFetch

A Fast and Efficient way to get the current Oil Price from Yahoo Finance API in Python. Data is returned as a dictionary.

I've found a lack of good simple ways to get the oil price from a free online API, so I designed one myself based upon Yahoo Finance.

It simply returns a dictionary with the current market data for Oil (WTI Front Month).

It also accepts a parameter ticker which will get the market data for that ticker on Yahoo Finance. i.e bmdPriceFetch()

Example Usage

An example usage file is included called main.py. It contains the basics for running this code. It is in essense:

from bmdOilPriceFetch import bmdPriceFetch

data = bmdPriceFetch()
if data is not None:
    outputString = f"The price of WTI is ${data['regularMarketPrice']:.2f}"
    print(outputString)

Example Output Data

The output is a dictionary:

    {   'close': 53.650001525878906, 
        'high': 53.650001525878906, 
        'lastClose': 52.98, 
        'low': 53.060001373291016,
        'open': 53.130001068115234,
        'regularMarketPrice': 53.65,
        'volume': 2664,
        'metadata': {

            'chartPreviousClose': 52.98,
            'currency': 'USD',
            'currentTradingPeriod': {

                'post': {

                    'end': 1611205140,
                    'gmtoffset': -18000,
                    'start': 1611205140,
                    'timezone': 'EST'},

                    'pre': {

                        'end': 1611118800,
                        'gmtoffset': -18000,
                        'start': 1611118800,
                        'timezone': 'EST'},

                    'regular': {

                        'end': 1611205140,
                        'gmtoffset': -18000,
                        'start': 1611118800,
                        'timezone': 'EST'}},

            'dataGranularity': '1d',
            'exchangeName': 'NYM',
            'exchangeTimezoneName': 'America/New_York',
            'firstTradeDate': 967003200,
            'gmtoffset': -18000,
            'instrumentType': 'FUTURE',
            'priceHint': 2,
            'range': '',
            'regularMarketPrice': 53.65,
            'regularMarketTime': 1611142219,
            'symbol': 'CL=F',
            'timezone': 'EST',
            'validRanges': [

                '1d',
                '5d',
                '1mo',
                '3mo',
                '6mo',
                '1y',
                '2y',
                '5y',
                '10y',
                'ytd',
                'max']}}

Changelog

  • v0.6.2 2022-01-03 Revise procedure to include simple example main.py file. No core change
  • v0.6.1 2021-11-30 Readme Fix.
  • v0.6 2021-11-30 Error Catching & Minor Readability Improvements.
  • v0.5 2021-07-11 Yahoo! Finance API decided they want a user agent. Added.
  • v0.4 2021-06-21 Bugfix. ^GSPC Lookup didnt work on weekends for Close. Made more fault tolerant.
  • v0.3 2021-02-06 Released as a package.
  • v0.2 2021-01-22 Minor tidy up, allows input of any Stock. Execution Time around 500ms. Code= 45 Lines
  • v0.1 2021-01-20 Initial Revision. Execution Time around 500ms. Code= 47 Lines

Notes for uploading to pypi

Steps:

  1. pip install twine
  2. python setup.py sdist bdist_wheel
  3. Twine upload dist/*
  4. Enter username d... and password: ....

Credits

designed in 2021 by bmd.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bmdOilPriceFetch-0.6.2.tar.gz (5.3 kB view hashes)

Uploaded Source

Built Distribution

bmdOilPriceFetch-0.6.2-py3-none-any.whl (6.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page