Skip to content
View ArturSepp's full-sized avatar

Block or report ArturSepp

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ArturSepp/README.md

Artur Sepp

Quantitative Researcher & Open-Source Author | Risk Magazine Quant of the Year 2024

Focused on systematic strategies, portfolio optimisation, stochastic volatility modelling, and robust statistical methods. Currently Global Head of Quantitative Analytics at LGT Private Banking. Co-originator of the Robust Optimisation of Strategic and Active Asset Allocation (ROSAA) framework and the Karasinski-Sepp log-normal beta stochastic volatility model.

For publications, speaking, and full background → artursepp.com

Website LinkedIn Twitter Google Scholar SSRN ORCID


For contributors: OSS documentation authoring standard covers article templates, authorship, equations, references, and reproducible analytics across the packages.

For bounded starter tasks, review expectations and automation-assisted contributions, see contributing to the OSS portfolio stack.

Python Packages

Over 20 years of building quantitative models — across equity, credit and rates derivatives on the sell-side, a systematic CTA, market-neutral crypto/DeFi, and now multi-asset private banking — one pattern holds: volatility regimes migrate across asset classes, and models that feel robust fail at the worst moment. These open-source packages are my working answer, spanning the full quant workflow from market data — prices, fundamentals and point-in-time option chains — to signal generation, factor modelling, and portfolio construction, through to performance measurement of private assets.

Developed alongside my published research, these packages provide runnable implementations of the methods described in the papers.

New to the ecosystem? Start with qis for analytics and reporting, optimalportfolios for portfolio construction, or stochvolmodels for volatility modelling.

For three offline paths using released packages, see first workflows for the OSS portfolio stack: supplied weights to a factsheet, constrained allocation, and sparse factor estimation.

Package Overview

Package Concept Version Stars Forks Total
Downloads
Portfolio Construction, Factor Models, Backtest Reporting
QuantInvestStrats (qis) · Docs Performance analytics, backtesting and factsheets Stars Forks Total downloads
OptimalPortfolios (optimalportfolios) · Docs Portfolio optimisation and rolling backtests Stars Forks Total downloads
factorlasso (factorlasso) · Docs Sparse loading estimation and factor covariance Stars Forks Total downloads
FactorModels (factormodels) · Docs Factor construction, point-in-time risk and GLS premia Stars Forks Total downloads
Volatility and Option Modelling
StochVolModels (stochvolmodels) · Docs Stochastic volatility pricing and calibration Stars Forks Total downloads
OptionChainAnalytics (option-chain-analytics) · Docs Point-in-time option-chain data and queries Stars Forks Total downloads
VanillaOptionPricers (vanilla-option-pricers) · Docs Vectorised BSM and Bachelier pricing Stars Forks Total downloads
Dynamic Trading Strategies
TrendFollowingSystems (trendfollowing) · Docs Closed-form trend-following analytics Stars Forks Total downloads
GoalBasedAllocation (goal-based-allocation) · Docs Goal-based allocation with wealth floors Stars Forks Total downloads
Illiquid Private Assets
privateassets (privateassets) · Docs Multi-factor PME for private assets Stars Forks Total downloads
Data
BloombergFetch (bbg-fetch) · Docs Bloomberg data in pandas DataFrames Stars Forks Total downloads

Stars, forks and versions use live badges. Total downloads use Pepy dashboard counts, refreshed daily and rounded to thousands (K); counts below 1,000 are shown in full. Last successful download refresh (UTC): Download counts updated.


Research Workflows

The packages support two complementary research workflows. Arrows show supplied inputs, results or analytics; they do not imply a package import dependency.

1. Multiasset portfolio optimisation and strategies

factormodels defines and constructs the financial factor model, calls factorlasso to estimate loadings and covariance, and exposes completed model outputs for downstream use. optimalportfolios consumes supplied covariance and return inputs. privateassets can use constructed factor histories and estimates fund exposures from cash flows and NAVs. trendfollowing uses QIS directly for strategy analytics. QIS also provides risk analysis, backtesting and reporting across the workflow. See the FM handoff to OP and QIS and private-asset workflow.

Multiasset workflow: QIS feeds FM and, through a separate arrow, TF. FL sits above FM and supplies statistical estimation. FM supplies risk and return inputs to OP and factor histories to privateassets. OP, privateassets and TF occupy the final column.

2. Option valuation and volatility modelling

Vanilla pricing, point-in-time option chains and QIS analytics feed stochastic volatility valuation and calibration.

Option valuation workflow: option-chain-analytics, vanilla-option-pricers and QIS each feed stochvolmodels.

Optional market data: bbg-fetch supplies Bloomberg market data for either workflow. The stack is data-provider independent: packages accept supplied data, and bbg-fetch is optional throughout.

goal-based-allocation is a standalone research library within the broader ecosystem.


Package Features

Portfolio Construction, Factor Models, Backtest Reporting

qis supplies shared analytics; factormodels constructs the financial factor model and coordinates statistical estimation through factorlasso. optimalportfolios consumes prepared risk and return inputs for portfolio construction.

qis provides Python tools for financial-data visualisation, performance reporting, and quantitative-strategy analysis. It is the analytics and reporting engine behind optimalportfolios, trendfollowing and option-chain-analytics.

pip install qis

Features:

  • Backtesting engine for externally computed weights with provided instrument price, carry and cost data
  • Performance reporting and factsheets: risk-adjusted tables, benchmark regressions and attribution, for multi-asset, strategy, strategy vs benchmark and multi-strategy
  • Visualisation layer for financial time series built on matplotlib/seaborn

OptimalPortfolios (optimalportfolios)

Implementation of optimisation analytics for constructing and backtesting optimal portfolios in Python. Companion code to Sepp (2023) and Sepp, Ossa & Kastenholz (2026).

pip install optimalportfolios

Features:

  • Risk budgeting, alpha-focused and benchmark-constrained optimisers
  • Backtesting frameworks for roll-forward analysis with handling of incomplete and missing data
  • Performance attribution

factorlasso (factorlasso)

Sparse factor model estimation with sign-constrained LASSO, prior-centred regularisation, hierarchical clustering group LASSO (HCGL) and factor-clustering group LASSO (FCGL), with integrated factor covariance assembly. Companion code to Sepp, Ossa & Kastenholz (2026) and Sepp, Hansen & Kastenholz (2026).

pip install factorlasso

Features:

  • Sign-constrained LASSO and Group LASSO via CVXPY, with prior-centred regularisation (shrink toward β₀, not zero)
  • Hierarchical Clustering Group LASSO (HCGL) and Factor-Clustering Group LASSO (FCGL) with auto-discovered groups
  • NaN-aware estimation for variables with different history lengths
  • Consistent factor covariance assembly (Σ_y = β Σ_x β' + D), scikit-learn compatible API (fit / predict / score)

FactorModels (factormodels)

Multiasset factor construction and point-in-time risk models built on qis and factorlasso, with GLS factor premia and capital market assumption diagnostics.

pip install factormodels

Features:

  • Factor definitions and construction from tradable baskets, tracked indices and observed levels
  • Completed model snapshots with labelled loadings, factor, residual and asset covariance, information cutoffs and provenance
  • GLS factor premia inferred from supplied forecasts, with uncertainty and capital market assumption diagnostics
  • Prepared outputs for portfolio optimisation and export to QIS risk analytics; see the completed model guide

Volatility and Option Modelling

StochVolModels (stochvolmodels)

Python implementation of pricing analytics and Monte Carlo simulations for stochastic volatility models including the Karasinski-Sepp log-normal beta SV model and the Heston model. Companion code to Sepp & Rakhmonov (2023) and Sepp & Rakhmonov (2025).

pip install stochvolmodels

Features:

  • Karasinski-Sepp log-normal beta SV model, with the Heston model as benchmark
  • Factor Heath-Jarrow-Morton framework for rates with log-normal stochastic volatility
  • Analytical valuation of European call and put options, and Monte Carlo simulations

VanillaOptionPricers (vanilla-option-pricers)

Python implementation of vectorised pricers and implied volatility fitters for vanilla options under Black-Scholes-Merton and Bachelier models. The pricing kernel of option-chain-analytics.

pip install vanilla-option-pricers

Features:

  • Black-Scholes-Merton log-normal and Bachelier normal option pricing
  • Vectorised implied volatility fitters
  • Numba-accelerated implementation

OptionChainAnalytics (option-chain-analytics)

Point-in-time option-chain containers, feed normalisation, chain reconstruction, queries and visualisation. The public data-container layer for empirical option research: pricing and implied-volatility inversion are delegated to vanilla-option-pricers, time-series and plotting utilities to qis.

pip install option-chain-analytics

Features:

  • Timezone-aware point-in-time containers (OptionsDataDFs, SlicesChain, ExpirySlice) with exact-time chain reconstruction and no look-ahead
  • Provider adapters behind optional extras — CBOE fitted chains, Deribit/Tardis crypto histories, ThetaData EOD equity/ETF reports, Bloomberg via bbg-fetch — normalised to one schema with resumable Parquet caches
  • ATM-volatility and delta-skew queries, rolling vol and skew time series, and multi-page PDF chain reports

Dynamic Trading Strategies

TrendFollowingSystems (trendfollowing)

Replication package for The Science and Practice of Trend-Following Systems. Companion code to Sepp & Lucic (2026).

pip install trendfollowing

Features:

  • Closed-form expected return, Sharpe ratio, skewness, and turnover of trend-following systems under white noise, AR(1), and ARFIMA processes, verified by Monte Carlo
  • Three complete system implementations: European, American, and Time Series Momentum (TSMOM)
  • 84-contract futures dataset spanning 1959–2026

GoalBasedAllocation (goal-based-allocation)

Analytical Laplace-transform framework for dynamic mean-variance portfolio allocation under regime-switching jump-diffusions with absorbing wealth floors. Companion code to Sepp (2026).

pip install goal-based-allocation

Features:

  • Riccati ODE system for MV-optimal policy with regime-dependent coefficients
  • Terminal wealth density decomposition (survived + floor atom + overshoot), with exact buy-and-hold moments via matrix exponential
  • Investment opportunity set construction with endogenous de-risking glide paths, validated against a Monte Carlo simulator

Illiquid Private Assets

privateassets (privateassets)

Multi-factor, money-weighted PME for private-asset cash flows: generalises Direct Alpha, KS-PME and GPME from a single benchmark to a tradable multi-factor deflator, with the classical measures shipped alongside for comparison on the same cash flows.

pip install privateassets

Features:

  • Fund reporting to alpha in one call: NAV-implied returns → AR(1) unsmoothing with bootstrap bias correction → sign-constrained factor betas → multi-factor deflator → per-vintage and capital-weighted alpha with bootstrap intervals
  • Point-in-time covariance with no look-ahead, enforced by tests; provenance (versions, seed, specification) travels with every result
  • Classical single-benchmark measures (Direct Alpha, KS-PME, GPME) alongside the multi-factor versions

Data

BloombergFetch (bbg-fetch)

bbg-fetch retrieves Bloomberg prices, implied volatilities, option chains, and fundamentals into pandas DataFrames through blpapi. It is an optional data source for the provider-independent analytics stack.

pip install bbg-fetch

Features:

  • Prices, implied vols, option chains and fundamentals
  • Direct blpapi integration

Pinned Loading

  1. QuantInvestStrats QuantInvestStrats Public

    Performance analytics, portfolio backtesting, risk analysis, and factsheet reporting in Python

    Python 643 77

  2. OptimalPortfolios OptimalPortfolios Public

    Production multi-asset portfolio construction and rolling backtesting in Python

    Python 99 43

  3. factorlasso factorlasso Public

    Sparse multi-output factor-model estimation with sign constraints, prior-centered shrinkage, data-driven grouped penalties, and consistent factor covariance assembly

    Python 29 8

  4. StochVolModels StochVolModels Public

    Fourier-transform pricing, Monte Carlo validation, and calibration of European options under stochastic-volatility models in Python

    Python 239 51

  5. TrendFollowingSystems TrendFollowingSystems Public

    Closed-form trend-following analytics, reference system implementations, and reproducible futures evidence in Python for quantitative researchers and practitioners

    Python 32 8

  6. BloombergFetch BloombergFetch Public

    Bloomberg Desktop API request/response data in pandas DataFrames for quantitative research

    Python 20 9