Skip to main content

finpie

A Python library for quantitative finance, providing tools for data handling, analysis, and trading strategies.

Installation

Regular Installation

pip install finpie

Development Setup

  1. Create a virtual environment:

    # Windows
    python -m venv venv
    
    # Linux/MacOS
    python3 -m venv venv
    
  2. Activate the virtual environment:

    # Windows
    .\venv\Scripts\activate
    
    # Linux/MacOS
    source venv/bin/activate
    
  3. Install in development mode:

    # Install in development mode with all dependencies
    pip install -e .
    
    # Install with development tools
    pip install -e ".[dev]"
    
    # Install with notebook support
    pip install -e ".[notebooks]"
    
    # Install with both development tools and notebook support
    pip install -e ".[dev,notebooks]"
    
  4. Running Jupyter Notebooks:

    # Start Jupyter
    jupyter notebook
    
    # Navigate to the finpie/notebooks directory
    # Open the desired notebook (e.g., data_examples.ipynb)
    

Quick Start

Examples

1. Fetching and Displaying Time Series Data

from finpie.datasource.service import DataService

data_service = DataService.create_default_service()

symbol = "WIN$N"  # Change to your desired symbol
start_date = "2022-01-01"
end_date = "2022-01-10"
interval = "1m"  # 1-minute data

ts_object = data_service.get_close_prices(
    symbol=symbol,
    source='mt5',
    start_date=start_date,
    end_date=end_date,
    interval=interval
)

print(ts_object.data.head())  # Display the first rows of the time series

2. Statistical and Technical Analytics

from finpie.analytics import Statistical, Technical
from finpie.data import TimeSeries

# Assume ts_object is a TimeSeries as above
stat = Statistical(ts_object, column='close')
tech = Technical(ts_object, column='close')

# Statistical analytics
zscore = stat.zscore(window=20)
half_life = stat.half_life()
hurst = stat.hurst_exponent()

# Technical analytics
rsi = tech.rsi(window=14)
macd = tech.macd()

print('Z-score:', zscore.tail())
print('RSI:', rsi.tail())

3. LLM-based Market Forecasting

import torch
import pandas as pd
from finpie.analytics.llm import LLMForecaster, MarketTokenizer
from finpie.data.timeseries import TimeSeries

# Load your time series data (example: from a parquet file)
ts = TimeSeries(pd.read_parquet('finpie/notebooks/win_returns.parquet'))
ret = ts.returns(intraday_only=True)
returns = ret.data[(ret.data.index.hour >= 10) & (ret.data.index.hour < 17)]

# Initialize and train the LLM forecaster
forecaster = LLMForecaster()
forecaster.build_dataset(returns['close'])
forecaster.build_model()
forecaster.train()

# Generate predictions for the next 5 periods
data_prompt = torch.tensor(
    MarketTokenizer.series_to_tokens(
        returns['close'].iloc[-60:],
        forecaster.vocab_size
    )[0],
    dtype=torch.long
).unsqueeze(0)
predicted_tokens = forecaster.fit(data_prompt, steps=5)
predicted_returns = MarketTokenizer.tokens_to_values(
    predicted_tokens, forecaster.bins
)
print('Predicted returns:', predicted_returns)

4. Fetching Fundamentals Data

from finpie.datasource.sources.schemas.status_invest import FundamentalsParams
from finpie.datasource.sources.status_invest import StatusInvestSource

si = StatusInvestSource()
params = FundamentalsParams(max_pe_ratio=10, items_per_page=15)
fundamentals = si.get_fundamentals(params)
print(fundamentals.head())

Project Structure

finpie/
├── data/           # Data handling module
├── analytics/      # Analytics and modeling module
├── datasource/     # Data request module
├── notebooks/      # Usage examples and tutorials
└── docs/           # Documentation

Features

  • Time Series Management

    • Flexible data structure with metadata support
    • Built-in data validation and alignment
    • Support for various frequencies and resampling
    • Comprehensive statistical calculations
  • Statistical Analysis

    • Z-score calculations
    • Mean reversion metrics (half-life, Hurst exponent)
    • Moving average analysis
    • Trading signal generation
  • Specialized Time Series

    • Ratio analysis for pair trading
    • Spread analysis for statistical arbitrage
    • Multi-time series for portfolio analysis

Contributing

Contributions are welcome! Please feel free to submit a Pull Request :).

License

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

Metadata

Release files for finpie 0.1.32

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for finpie 0.1.32
File Size Uploaded
finpie-0.1.32.tar.gz 48.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for finpie 0.1.32
File Interpreter ABI Platform
finpie-0.1.32-py3-none-any.whl Python 3 none any Details

Total release size: 99.1 kB

Release files / finpie-0.1.32.tar.gz

Download URL finpie-0.1.32.tar.gz
Size 48.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b1ecad7143c621d76ae3224b66c069fb5197e350bfd17aadbc9a4e5f5e986f1b
BLAKE2b-256 checksum
How to use checksums
f3632cf055e07abb8703f9c03a023f691a4ded8a7a176dd10383a16930f4c53c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.6

Release files / finpie-0.1.32-py3-none-any.whl

Download URL finpie-0.1.32-py3-none-any.whl
Size 50.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68814a505ea492645643944493b2bb47f26bfcc2d8355586be8ea3082d8c19ee
BLAKE2b-256 checksum
How to use checksums
88b55803a5c540ca6ca93f979903cbc598a54ed112740936465c98a8b7af0caa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.6

Release history Release notifications | RSS feed

This release

0.1.32 This release

2 release files

0.1.31

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page