A Python library for Automated extraction of relevant features from OHLCV time series data. Designed to help quantitative researchers and traders quickly generate a massive set of highly predictive features from basic pricing and volume data.
- Automated Validation & Cleaning: Built-in verification processes that ensure input OHLCV records don't contain logical errors, missing records, or erroneous overlaps (such as incorrect High/Low bounds).
- Vectorized Execution: Under the hood, feature extraction heavily uses vectorized
pandasandnumpyfunctions alongsidepandas-tato ensure lightning-fast execution times, even when handling millions of rows. - Broad Feature Sets: Automatically extracts everything from time signatures and candlestick geometries to advanced fractal mathematics like the Hurst Exponent.
- CLI Included: Ships with an easy-to-use Command Line Interface (
autofcholv) for users who want to run extractions in a terminal.
It is recommended to use a virtual environment (venv).
pip install autofcholvuv is an extremely fast Python package manager. Install it first if you haven't:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | shThen install the library:
uv add autofcholvOr run it in an isolated environment without installing:
uvx autofcholv# Clone the repository
git clone https://github.com/tempusoneps/autofcholv.git
cd autofcholv
# Install via pip
pip install .
# Or via uv
uv sync
# For development mode (pip)
pip install -e .[dev]
# For development mode (uv)
uv sync --dev- Python >= 3.12
pandasnumpypandas_tapython-dotenv
After installing, the autofcholv command is immediately available in your terminal.
autofcholv extract input.csv --output my_features.csvOptions:
input: Path to your input OHLCV CSV file. It must containDate,Open,High,Low,Close, andVolumecolumns.--output,-o: The path where the output features CSV will be saved (default:output_features.csv).--no-progress: Disable the extraction progress bar.
autofcholv generate-config --path config.jsonOptions:
--path,-p: Path to save the generated JSON config file (default:config.json).
This creates a config file pre-filled with all default configuration values. Edit it to customise feature behaviour (e.g. ONE_DAY_BARS=49, SELECTED_TIME_FRAME=15m).
--version,-v: Print library version.--help,-h: Show help message.
You can easily use autofcholv directly in Jupyter Notebooks or Python scripts:
import pandas as pd
from autofcholv import extract_features, load_config
# 1. Load your OHLCV data into a Pandas DataFrame
# It is important that index is a DatetimeIndex and columns are correctly named
df = pd.read_csv("historic_data.csv", index_col="Date", parse_dates=True)
# 2. Run the extraction pipeline
config = load_config("config.json")
features_df = extract_features(df, config=config)
# 3. View the results
print(features_df.tail())autofcholv loads configuration into a typed Config object:
- Config file - a JSON or YAML file passed explicitly via the API (
load_config(path)) or CLI (--config)..envfiles are not supported. - Default config file -
config.default.json(searched in the current working directory, then packaged library defaults) is loaded automatically if no config file is specified. - Built-in defaults - fallback defaults from the
Configdataclass are applied if no config file is found.
SELECTED_TIME_FRAME: 15m
ONE_DAY_BARS: 49
MICRO_LOOKBACK: 5
SHORT_LOOKBACK: 10
MEDIUM_LOOKBACK: 20
LONG_LOOKBACK: 50
MACRO_LOOKBACK: 100Please refer to the Pipeline Overview for a comprehensive list of all generated features.
Please refer to the Extracted Features Catalog for a comprehensive list of all generated features.