Skip to main content
Fynance logo

Fynance

Python versions PyPI PyPI status CI License
Documentation Coverage Docstring coverage Downloads


Pure-Python package (Numba-accelerated kernels) providing machine learning, econometric and statistical tools for financial analysis and backtesting of trading strategies.

Installation

pip install fynance

From source:

git clone https://github.com/ArthurBernard/Fynance.git
cd Fynance
pip install -e ".[dev]"

The build is pure-Python — there is no compile step (numerical kernels are Numba @njit, JIT-compiled on first call).

Architecture

A complete, layered ML/DL backtesting tool — data → features → signal → portfolio → backtest → metrics — composed through typing.Protocol seams. numpy is the lingua franca; PyTorch is confined to fynance.models. Each piece is usable standalone; fynance.strategy.Strategy is an optional orchestrator.

2.0 is a breaking release. See doc/MIGRATION-2.0.md for the import-path map (e.g. fynance.algorithms → fynance.portfolio, performance metrics → fynance.metrics).

Subpackages

Core fynance.core — PriceSeries value object (thin, numpy-backed) and the pipeline protocols (DataSource, FeatureTransform, SignalModel, Allocator, CostModel, Metric); executable conformance/causality checks (check_conforms, assert_causal) and duck-typed pandas/polars seams (from_pandas/to_pandas).

Data fynance.data — file adapters (load for CSV/Parquet → PriceSeries), alignment/resampling, no-lookahead temporal splits (train_test_split, walk_forward, combinatorial-purged combinatorial_purged_cv) and vendor-agnostic intraday session utilities (session_mask/session_id/split_sessions).

Features fynance.features — technical indicators (Bollinger, RSI, MACD, ROC, realized volatility, rolling skew/kurtosis/autocorr, …), OHLCV indicators (ATR, ADX, Williams %R, OBV, VWAP), a causal GARCH(1,1) conditional-volatility feature, momentums (SMA, EMA, WMA) and adaptive windows, NaN-aware cross-sectional operators (cs_rank/cs_zscore/cs_neutralize, …), pairwise rolling stats (roll_corr/roll_beta, cross_corr), fractional differentiation (fracdiff), AFML labeling (triple_barrier, meta_labels, uniqueness weights), scaling (incl. rolling rank), statistics, feature engineering (multi-resolution, Granger causality) and market-regime detection.

Metrics fynance.metrics — performance/evaluation metrics (Sharpe, Sortino, Calmar, drawdown, …) and a one-call summary; tail risk (VaR/CVaR/CDaR, tail dependence), benchmark-relative metrics (alpha, beta, tracking error, information ratio, capture), factor evaluation (quantile returns, rolling IC, IC decay), and turnover/exposure and per-trade analytics.

Signal fynance.signal — prediction → position mappers (sign, threshold, rank, vol-targeting) and a model+mapper pipeline.

Portfolio fynance.portfolio — allocation (ERC, HRP, IVP, MDP, MVP, plus risk-budgeting RBP) with an opt-in cov= seam over conditioned covariance estimators (Ledoit-Wolf, EWMA, factor, Marchenko-Pastur denoising); risk attribution, an exposure-constraints overlay (project_weights), rebalancing policies (calendar/band/turnover-cap, lot discretization) and sizing (fractional Kelly, single-series and book-level volatility targeting, transaction costs).

Backtest fynance.backtest — vectorized engine (backtest: positions + returns/prices + cost → BacktestResult), cost models (ProportionalCost, the non-linear MarketImpactCost, per-bar HoldingCost and CompositeCost stacking) and capacity analysis (capacity_curve, breakeven_fee).

Plot fynance.plot — composable matplotlib figures and one-call tearsheet and factor_tearsheet reports.

Models fynance.models — econometric models (MA, ARMA, ARMA-GARCH, plus GJR/EGARCH kernels) and PyTorch nets (MLP, RNN, GRU, LSTM, MultiHeadAttention, TCN, Transformer), a direction+magnitude stacking ensemble, RegimeMoE (regime-conditioned mixture-of-experts), objective-aligned training with cross-asset pretraining, distributional QuantileModel, uncertainty wrappers (DeepEnsemble, MCDropout), causal conformal intervals, purged walk-forward hyperparameter search, differentiable losses (Sharpe, Sortino, Calmar, Omega, directional, hybrid, pinball), and robust-training utilities.

Estimator fynance.estimator — volatility-model MLE: fit_volatility fits GARCH / GJR-GARCH / EGARCH with Gaussian or Student-t innovations, returning a VolatilityResult (AIC/BIC, conditional vol, forecast, simulate).

Strategy fynance.strategy — optional orchestrator composing the maillons end-to-end, with single-run and walk-forward evaluation.

Research fynance.research — data-agnostic experiment harness: Experiment (serializable run record), run_experiment (seeded, cost-aware, walk-forward), write_report (portable markdown + tearsheet PNG + notebook), synthetic data generators (gbm, regime_switching) and overfitting guards (permutation and block bootstrap, deflated Sharpe, PBO/CSCV, walk-forward MDA feature importance). Results are written only to a caller-provided output_dir — fynance never stores them itself.

Quick start

import numpy as np
import fynance as fy

# 1. Data — load a CSV/Parquet file, or build a PriceSeries directly
prices = fy.PriceSeries(100 * np.cumprod(1 + np.random.randn(750) * 0.01))

# 2. Compose a strategy: momentum feature -> position -> backtest with costs
strat = fy.Strategy(
    features=lambda p: np.sign(np.diff(p, prepend=p[0])),
    signal=lambda x: x,
    cost=fy.ProportionalCost(fee=0.0005),
)
result = strat.run(prices)

# 3. Evaluate and report
print(result.summary())     # Sharpe, Sortino, Calmar, max drawdown, ...
fig = fy.tearsheet(result)  # one-call performance report

See Notebooks/quickstart_v2.ipynb for the full runnable tour (data, features, walk-forward, reporting). An optional Streamlit playground ships under apps/playground/ (pip install -e ".[ui]" && streamlit run apps/playground/app.py).

Metadata

Release files for fynance 2.13.1

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

Source distribution (sdist)

Source distribution for fynance 2.13.1
File Size Uploaded
fynance-2.13.1.tar.gz 426.2 kB Details

Built distribution (wheel)

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

Total release size: 968.1 kB

Release files / fynance-2.13.1.tar.gz

Download URL fynance-2.13.1.tar.gz
Size 426.2 kB
Tags Source
SHA-256 checksum
How to use checksums
63aefa56d66a46c67422ed01eb8702749c0db2dbe92a5464b4516a7d178c4ad1
BLAKE2b-256 checksum
How to use checksums
c0425e11b17513e5739f88863991b2e311409ad831beea5fd120c71a84203553
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release files / fynance-2.13.1-py3-none-any.whl

Download URL fynance-2.13.1-py3-none-any.whl
Size 541.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
55af7eed527d05fdddbd3948b9785aeacc1027a4861fc8805522aa93e377bd33
BLAKE2b-256 checksum
How to use checksums
0a65212695039fada2e7a1bcf0e233e310ceb018c0cc558c54c21d8c2002525e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.13.1 This release

2 release files

2.11.2

2 release files

2.11.1

2 release files

2.11.0

2 release files

2.10.2

2 release files

2.10.1

2 release files

2.10.0

2 release files

2.9.0

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

4 release files

1.6.0

4 release files

1.5.0

4 release files

1.4.0

4 release files

1.3.4

4 release files

1.3.3

4 release files

1.3.2

4 release files

1.3.1

4 release files

1.1.0

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.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