Skip to main content

A lightweight Python library for python utilities for holidays, dates, options and other tools

Project description

ohlcutils

ohlcutils is a Python library designed for financial data analysis, focusing on OHLC (Open-High-Low-Close) data. It provides a comprehensive set of tools for calculating indicators, resampling data, and performing advanced market data transformations.


Features

  • Indicators: A wide range of technical indicators, including moving averages, beta calculations, and trend analysis.
  • Data Resampling: Flexible utilities for changing timeframes and aligning data.
  • Support and Resistance: Tools for identifying key levels in market data.
  • Beta and Ratio Adjustments: Functions for adjusting OHLC data based on benchmarks or beta values.
  • Supertrend and VWAP: Built-in implementations of popular trading indicators.

Installation

Clone the repository and install the required dependencies:

git clone https://github.com/your-repo/ohlcutils.git
cd ohlcutils
pip install -r requirements.txt

Modules Overview

Below is a list of available functions in each module. For detailed usage, use the help(function_name) command in Python.

indicators Module

  • align_dataframes_on_common_dates(dataframes)
  • calculate_beta(md, md_benchmark, col="close", window=252)
  • get_heikin_ashi(md, len2_ha=10)
  • degree_slope(md, window, columns, prefix="deg", method="simple")
  • average_band(md, size=100, ema=9, columns={"high": "high", "low": "low", "close": "close"})
  • trend(md, bars=1, columns={"high": "high", "low": "low"})
  • range_filter(md, per=100, mult=3, columns={"close": "asettle"})
  • t3ma(md, len=5, volume_factor=0.7, columns={"close": "close"})
  • bextrender(md, short_period=5, long_period=20, rsi_period=15, t3_ma_len=5, t3_ma_volume_factor=0.7, columns={"close": "close"})
  • vwap(md, periods=21, columns={"price": "close", "volume": "volume"})
  • calc_rolling(x, periods, indicator, column_name="rolling")
  • hilega_milega(md, rsi_days=9, ma_days=21, ema_days=3, columns={"price": "close"})
  • supertrend(md, atr_period=14, multiplier=3.0, columns={"high": "high", "low": "low", "close": "close"})
  • calc_sr(md, columns={"high": "ahigh", "low": "alow"})
  • srt(md, days=124, columns={"price": "close"})

data Module

  • get_linked_symbols(short_symbol, complete=False)
  • get_split_info(short_symbol)
  • load_symbol(symbol, **kwargs)
  • change_timeframe(md, dest_bar_size, bar_start_time_in_min="15min", exchange="NSE", label="left", fill="ffill", ...)
  • calculate_ratio_bars(md, md_benchmark, open_col="aopen", high_col="ahigh", low_col="alow", close_col="asettle")
  • calculate_beta_adjusted_bars(md, md_benchmark, beta_calc_days=252, open_col="aopen", high_col="ahigh", low_col="alow", close_col="asettle")

Example Usage

Calculate Beta

from ohlcutils.indicators import calculate_beta
import pandas as pd

# Load market data
md = pd.read_csv("market_data.csv", parse_dates=["date"], index_col="date")
md_benchmark = pd.read_csv("benchmark_data.csv", parse_dates=["date"], index_col="date")

# Calculate rolling beta
beta = calculate_beta(md, md_benchmark, col="close", window=252)
print(beta)

Resample Data

from ohlcutils.data import change_timeframe

# Resample market data to 1-hour bars
resampled_data = change_timeframe(md, dest_bar_size="1H", exchange="NSE", label="left", fill="ffill")
print(resampled_data)

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

ohlcutils-0.1.2.dev1.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ohlcutils-0.1.2.dev1-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file ohlcutils-0.1.2.dev1.tar.gz.

File metadata

  • Download URL: ohlcutils-0.1.2.dev1.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.16

File hashes

Hashes for ohlcutils-0.1.2.dev1.tar.gz
Algorithm Hash digest
SHA256 0cf07da8920e32ea2e98bf3d09ddf794a873999454837a030b37d9198520c8c6
MD5 35b0932962235ebfa0f4b2d55915aa97
BLAKE2b-256 612809f5adae780ba1d3463ffef5fad9910490207aca3331a1dfd7d412bdf103

See more details on using hashes here.

File details

Details for the file ohlcutils-0.1.2.dev1-py3-none-any.whl.

File metadata

  • Download URL: ohlcutils-0.1.2.dev1-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.16

File hashes

Hashes for ohlcutils-0.1.2.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3310240a0c949b439ceef1c33a68e7ac3fbeb026fee88bc7d455b9f8a2cfc32
MD5 f54fe5de7a09a6af2290915523081d3c
BLAKE2b-256 cd50f59e2f479326fe9f2e3740ff67362cb3a15a645a69242fdcb93c434b5718

See more details on using hashes here.

Supported by

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