FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Original HTTPS Page]

ArturSepp (Artur Sepp) · GitHub

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.

Close all issues, pull requests, and discussions opened by this user Content in all repositories owned by your account will be closed.
Add an optional note
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


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 ten 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. Together, the repositories have received more than 1,000 stars and 189 forks.

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

Package Overview

Package Concept Version Stars Forks Monthly
Downloads
Total
Downloads
Portfolio Construction, Factor Models, Backtest Reporting
QuantInvestStrats (qis) Performance analytics, backtesting and factsheets 617 71 19k 199k
OptimalPortfolios (optimalportfolios) Portfolio optimisation and rolling backtests 93 38 10k 65k
factorlasso (factorlasso) Sparse factor models with sign-constrained LASSO 25 5 10k 29k
Volatility and Option Modelling
StochVolModels (stochvolmodels) Stochastic volatility pricing and calibration 234 48 3k 30k
OptionChainAnalytics (option-chain-analytics) Point-in-time option-chain data and queries 2 1 2k 17k
VanillaOptionPricers (vanilla-option-pricers) Vectorised BSM and Bachelier pricing 14 9 2k 7k
Dynamic Trading Strategies
TrendFollowingSystems (trendfollowing) Closed-form trend-following analytics 23 6 1k 2k
GoalBasedAllocation (goal-based-allocation) Goal-based allocation with wealth floors 12 2 837 2k
Illiquid Private Markets
privateassets (privateassets) Multi-factor PME for private assets 4 1 902 1k
Data
BloombergFetch (bbg-fetch) Bloomberg data in pandas DataFrames 19 8 2k 40k

Stars, forks and download counts are refreshed automatically by a GitHub Action; the version badge is live.


One Research Workflow

The packages compose into a single research workflow — market data → analytics and reporting → factor models → portfolio construction — with an options branch where vanilla pricing and point-in-time chains feed stochastic volatility modelling:

flowchart LR
    fl["`**factorlasso**
    factor models & covariances`"]
    qis["`**qis**
    analytics & reporting`"]
    oca["`**option-chain-analytics**
    point-in-time option chains`"]
    vop["`**vanilla-option-pricers**
    BSM & Bachelier pricing`"]
    bbg["`**bbg-fetch**
    Bloomberg data`"] --> qis
    bbg ~~~ fl
    bbg ~~~ oca
    bbg ~~~ vop
    fl --> op["`**optimalportfolios**
    portfolio construction & backtesting`"]
    qis --> op
    fl --> pa["`**privateassets**
    private-asset PME`"]
    qis --> pa
    qis --> tf["`**trendfollowing**
    trend-following systems`"]
    oca --> svm["`**stochvolmodels**
    stochastic volatility models`"]
    vop --> svm
    qis --> svm
Loading

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


Package Features

Portfolio Construction, Factor Models, Backtest Reporting

factorlasso estimates the sparse factor model and the factor covariance; optimalportfolios consumes them — together with the qis analytics engine — for portfolio construction and backtesting.

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)

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 Markets

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.

pip install bbg-fetch

Features:

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

Pinned Loading

  1. QuantInvestStrats QuantInvestStrats Public

    qis - performance analytics, portfolio backtesting, risk analysis, and factsheet reporting in Python.

    Python 622 72

  2. OptimalPortfolios OptimalPortfolios Public

    Production-quality multi-asset portfolio optimisation and rolling backtesting in Python

    Python 93 38

  3. factorlasso factorlasso Public

    factorlasso is a Python library for sparse multi-output factor-model estimation with sign constraints, prior-centred shrinkage, data-driven grouped penalties, and consistent factor covariance assem…

    Python 26 6

  4. StochVolModels StochVolModels Public

    Python implementation of pricing analytics and Monte Carlo simulations for stochastic volatility models including log-normal SV model, Heston

    Python 234 48

  5. TrendFollowingSystems TrendFollowingSystems Public

    trendfollowing — closed-form trend-following analytics, reference system implementations, and reproducible futures evidence in Python for quantitative researchers and practitioners.

    Python 23 6

  6. BloombergFetch BloombergFetch Public

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

    Python 19 8


Back | FazBrowse Home | New Git URL