Skip to main content

Create a local DB with the term structure of the Brazilian CDI curve (data from B3).

Project description

B3 CDI Curve by Fluxonaut

This package is a collection of Python scripts that extracts, consolidates and interpolates data from the Brazilian CDI Curve provided on the B3 Exchange web site. It allows you to produce a historical data series for any given duration (considering it respects the maximum available duration). It stores all the term structure of the CDI curve in a local SQLite database as well.

Setup and usage

Just install from PyPI as shown below.

pip install b3-cdi-curve

Now just import it to your project. The package exposes two methods, sync_db() and create_time_series(duration: int). Below you can find a basic usage example and a more detailed explanation.

import b3cdi

# Create and/or update local DB
b3cdi.sync_db()

# Create time series for the desired duration (in days)
b3cdi.create_time_series(360)

Creating database

sync_db

This method loops through all the dates between the beginning of the series and the last working day looking for the prices on the B3 web site. It then generates and saves a local SQLite database (located on ./output/cdi.db).

The first run takes around two and half hours to build the database and it takes around 1.35 GB of disk space.

After it runs once, it'll check for the last inserted date, so it'll look only for working days after the last update. This keeps the database updated for each time you run the code.

create_time_series

create_time_series(duration: int)

This method queries the local database to produce a Pandas DataFrame with the historical series of the requested duration. It then saves it as a CSV file on the ./output/ folder. The parameter of the method is where you input your desired duration (e.g. 360).

Contributing

Pull requests are welcome. Please open an issue first to discuss what you would like to change.

To-do

  • Tests
  • Optimize db size

Fluxonaut

This code was made possible by the amazing people working at Fluxonaut who dedicated their free time to help the community. Please be sure to check our our website at https://fluxonaut.com.

License

This project is under the MIT license.

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

b3-cdi-curve-1.2.0.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

b3_cdi_curve-1.2.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file b3-cdi-curve-1.2.0.tar.gz.

File metadata

  • Download URL: b3-cdi-curve-1.2.0.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.4

File hashes

Hashes for b3-cdi-curve-1.2.0.tar.gz
Algorithm Hash digest
SHA256 c30ec1932b838de20962abb67410a74d7306c2569190ef0c73a92caea53c7e47
MD5 3c1933436505948060889313e9e87536
BLAKE2b-256 45654baa3f44bee3724f90ee97a4997cd9762c85c60efbbf1f851e04bdc39235

See more details on using hashes here.

File details

Details for the file b3_cdi_curve-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: b3_cdi_curve-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.4

File hashes

Hashes for b3_cdi_curve-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1b455d5ee7af4ed651068d6917fcf9f6a0b20435508ae8480a5f52e458f82202
MD5 487610578d1517b86a80dc5bef59e436
BLAKE2b-256 d68835c25ae0c1b60ba1295492bc6e405015a80edfeb0913da8d3375e1dcdd11

See more details on using hashes here.

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