Skip to main content

Deterministic portfolio quant core: risk, performance, optimization, and tax.

Project description

finkritq

Deterministic portfolio quant core: risk, performance, optimization, and tax analytics over holdings you supply. Pure numpy and scipy, no agent or web dependency. This is the open core of the finkrit stack, published on its own for use as a standalone library.

Install

pip install finkritq              # core: numpy + scipy
pip install "finkritq[data]"      # adds the live yfinance market data provider

What it does

  • Risk: volatility, variance, semivariance, downside deviation, drawdown and maximum drawdown, value at risk and conditional value at risk, beta, marginal and component contribution to risk, forward return range.
  • Performance: total and annualized return, Sharpe, Sortino, Calmar, information ratio, Jensen's alpha, contribution to return, net of fees, time and money weighted return, Brinson attribution.
  • Optimization: mean variance weights (minimum variance, maximum Sharpe, target return), long only and box constrained, Ledoit-Wolf shrinkage, rebalancing to a target or a policy.
  • Tax: tax lots, tax-loss harvest candidates, tax-aware rebalancing.

Quickstart

from datetime import date
from decimal import Decimal

from finkritq.asset import Stock
from finkritq.datatype import Currency, Exchange
from finkritq.portfolio import Portfolio, Position, TaxLot
from finkritq.anal.risk import portfolio_volatility

stock = Stock(ticker="AAPL", currency=Currency.USD, exchange=Exchange.NASDAQ, company_name="Apple Inc")
lot = TaxLot(id="lot-1", quantity=Decimal("100"), cost_per_share=Decimal("150"), acquired=date(2022, 1, 3))
portfolio = Portfolio(id="p1", name="Demo", positions=[Position(id="pos-1", asset=stock, lots=(lot,))])

Feed it your own price history, or install the data extra to pull live daily closes through the bundled provider.

Runnable demo

python -m finkritq              # seeded, offline synthetic market
python -m finkritq real NVDA KO PG --benchmark SPY --years 3    # needs [data]

License

Apache-2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finkritq-0.1.0.tar.gz (109.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finkritq-0.1.0-py3-none-any.whl (104.5 kB view details)

Uploaded Python 3

File details

Details for the file finkritq-0.1.0.tar.gz.

File metadata

  • Download URL: finkritq-0.1.0.tar.gz
  • Upload date:
  • Size: 109.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for finkritq-0.1.0.tar.gz
Algorithm Hash digest
SHA256 38465c8412c6752e22664aeb1889ee12ce07b05099d4fba7319d4bbc97d8ee8e
MD5 2b7fa068c9fd6a7305b7ad864ab9e2f6
BLAKE2b-256 862ce4c309fa0fdd9837b4618e858e2c854c0e68509537effc4d0d8cc61d099e

See more details on using hashes here.

File details

Details for the file finkritq-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: finkritq-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 104.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for finkritq-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2160f5101fadd2852a9067e8ba3408f1991e70dcebe44905f8abf31858e7d7c
MD5 0ee7394e645710e2c51e80193f0403da
BLAKE2b-256 135bdc7cd597db631bbe86fcc3eeddbd1bc9c18f5848ca7576f5f77f2bfca9b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page