pandas-market-calendars.readthedocs.io Open in urlscan Pro
2606:4700::6811:2052  Public Scan

Submitted URL: http://pandas-market-calendars.readthedocs.io/
Effective URL: https://pandas-market-calendars.readthedocs.io/en/latest/
Submission: On May 30 via api from GB — Scanned from GB

Form analysis 2 forms found in the DOM

GET search.html

<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
  <input type="text" name="q" placeholder="Search docs">
  <input type="hidden" name="check_keywords" value="yes">
  <input type="hidden" name="area" value="default">
</form>

GET //readthedocs.org/projects/pandas-market-calendars/search/

<form id="flyout-search-form" class="wy-form" target="_blank" action="//readthedocs.org/projects/pandas-market-calendars/search/" method="get">
  <input type="text" name="q" aria-label="Search docs" placeholder="Search docs">
</form>

Text Content

pandas_market_calendars
latest

 * Updates

 * Calendar Status

 * pandas_market_calendars

 * Calendars
 * Helpers

 * New Market or Exchange

Build web apps with only Python. Deploy in one click or with the open-source
server. Start Now
Ad by EthicalAds   ·   Monetize your site
pandas_market_calendars
 * Docs »
 * pandas_market_calendars
 * Edit on GitHub

--------------------------------------------------------------------------------


PANDAS_MARKET_CALENDARS¶

Market calendars to use with pandas for trading applications.


DOCUMENTATION¶

http://pandas_market_calendars.readthedocs.io/en/latest/


OVERVIEW¶

The Pandas package is widely used in finance and specifically for time series
analysis. It includes excellent functionality for generating sequences of dates
and capabilities for custom holiday calendars, but as an explicit design choice
it does not include the actual holiday calendars for specific exchanges or OTC
markets.

The pandas_market_calendars package looks to fill that role with the holiday,
late open and early close calendars for specific exchanges and OTC conventions.
pandas_market_calendars also adds several functions to manipulate the market
calendars and includes a date_range function to create a pandas DatetimeIndex
including only the datetimes when the markets are open. Additionally the package
contains product specific calendars for future exchanges which have different
market open, closes, breaks and holidays based on product type.

This package provides access to over 50+ unique exchange calendars for global
equity and futures markets.

This package is a fork of the Zipline package from Quantopian and extracts just
the relevant parts. All credit for their excellent work to Quantopian.


MAJOR RELEASES¶

As of v1.0 this package only works with Python3. This is consistent with Pandas
dropping support for Python2.

As of v1.4 this package now has the concept of a break during the trading day.
For example this can accommodate Asian markets that have a lunch break, or
futures markets that are open 24 hours with a break in the day for trade
processing.

As of v2.0 this package provides a mirror of all the calendars from the
exchange_calendars package, which itself is the now maintained fork of the
original trading_calendars package. This adds over 50 calendars.


SOURCE LOCATION¶

Hosted on GitHub: https://github.com/rsheftel/pandas_market_calendars


INSTALLATION¶

pip install pandas_market_calendars

Arch Linux package available here:
https://aur.archlinux.org/packages/python-pandas_market_calendars/


CALENDARS¶

The list of available calendars


QUICK START¶

import pandas_market_calendars as mcal

# Create a calendar
nyse = mcal.get_calendar('NYSE')

# Show available calendars
print(mcal.get_calendar_names())


early = nyse.schedule(start_date='2012-07-01', end_date='2012-07-10')
early


                  market_open             market_close
=========== ========================= =========================
 2012-07-02 2012-07-02 13:30:00+00:00 2012-07-02 20:00:00+00:00
 2012-07-03 2012-07-03 13:30:00+00:00 2012-07-03 17:00:00+00:00
 2012-07-05 2012-07-05 13:30:00+00:00 2012-07-05 20:00:00+00:00
 2012-07-06 2012-07-06 13:30:00+00:00 2012-07-06 20:00:00+00:00
 2012-07-09 2012-07-09 13:30:00+00:00 2012-07-09 20:00:00+00:00
 2012-07-10 2012-07-10 13:30:00+00:00 2012-07-10 20:00:00+00:00


mcal.date_range(early, frequency='1D')


DatetimeIndex(['2012-07-02 20:00:00+00:00', '2012-07-03 17:00:00+00:00',
               '2012-07-05 20:00:00+00:00', '2012-07-06 20:00:00+00:00',
               '2012-07-09 20:00:00+00:00', '2012-07-10 20:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq=None)


mcal.date_range(early, frequency='1H')


DatetimeIndex(['2012-07-02 14:30:00+00:00', '2012-07-02 15:30:00+00:00',
               '2012-07-02 16:30:00+00:00', '2012-07-02 17:30:00+00:00',
               '2012-07-02 18:30:00+00:00', '2012-07-02 19:30:00+00:00',
               '2012-07-02 20:00:00+00:00', '2012-07-03 14:30:00+00:00',
               '2012-07-03 15:30:00+00:00', '2012-07-03 16:30:00+00:00',
               '2012-07-03 17:00:00+00:00', '2012-07-05 14:30:00+00:00',
               '2012-07-05 15:30:00+00:00', '2012-07-05 16:30:00+00:00',
               '2012-07-05 17:30:00+00:00', '2012-07-05 18:30:00+00:00',
               '2012-07-05 19:30:00+00:00', '2012-07-05 20:00:00+00:00',
               '2012-07-06 14:30:00+00:00', '2012-07-06 15:30:00+00:00',
               '2012-07-06 16:30:00+00:00', '2012-07-06 17:30:00+00:00',
               '2012-07-06 18:30:00+00:00', '2012-07-06 19:30:00+00:00',
               '2012-07-06 20:00:00+00:00', '2012-07-09 14:30:00+00:00',
               '2012-07-09 15:30:00+00:00', '2012-07-09 16:30:00+00:00',
               '2012-07-09 17:30:00+00:00', '2012-07-09 18:30:00+00:00',
               '2012-07-09 19:30:00+00:00', '2012-07-09 20:00:00+00:00',
               '2012-07-10 14:30:00+00:00', '2012-07-10 15:30:00+00:00',
               '2012-07-10 16:30:00+00:00', '2012-07-10 17:30:00+00:00',
               '2012-07-10 18:30:00+00:00', '2012-07-10 19:30:00+00:00',
               '2012-07-10 20:00:00+00:00'],
              dtype='datetime64[ns, UTC]', freq=None)



CONTRIBUTING¶

All improvements and additional (and corrections) in the form of pull requests
are welcome. This package will grow in value and correctness the more eyes are
on it.

To add new functionality please include tests which are in standard pytest
format.

Use pytest to run the test suite.


FUTURE¶

This package is open sourced under the MIT license. Everyone is welcome to add
more exchanges or OTC markets, confirm or correct the existing calendars, and
generally do whatever they desire with this code.


UPDATES¶

 * Updates


MARKETS & EXCHANGES¶

 * Calendar Status
   * Equity Market Calendars
   * Futures Calendars
   * Bond Market Calendars
   * Exchange Calendars Package


PACKAGE CONTENTS¶

 * pandas_market_calendars
   * pandas_market_calendars package


EXAMPLES¶

 * Calendars
   * Basic Usage
   * Customizations
   * Advanced Usage
 * Helpers
   * Date Range
   * Merge schedules
   * Use holidays in numpy
   * Trading Breaks


NEW MARKET OR EXCHANGE¶

 * New Market or Exchange


INDICES AND TABLES¶

 * Index
 * Module Index
 * Search Page

Next

--------------------------------------------------------------------------------

© Copyright 2016, Ryan Sheftel Revision 447ff90e.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions latest stable Downloads HTML On Read the Docs Project Home Builds
Downloads On GitHub View Edit Search


--------------------------------------------------------------------------------

Hosted by Read the Docs · Privacy Policy