Skip to main content

Markowitzify

Markowitzify is a lightweight Python library for portfolio optimization (portfolio) and technical-analysis helpers (stonks).

It includes:

  • Portfolio analytics: Markowitz optimization, NCO optimization, Sharpe ratio, Hurst exponent, Monte Carlo simulation, trend scan.
  • Stonks analytics: Fractal indicator, Bollinger bands, RSI, signal generation, and basic strategy backtesting.

Installation

pip install markowitzify

For local development:

pip install -e ".[dev]"

Optional market-data provider extras:

pip install -e ".[data]"

Quickstart (offline-safe)

import numpy as np
import pandas as pd
import markowitzify
import helper_monkey as hm

rng = np.random.default_rng(42)
returns = rng.normal(0.0005, 0.01, size=(200, 4))
prices = 100 * np.exp(np.cumsum(returns, axis=0))
df = pd.DataFrame(prices, columns=["AAA", "BBB", "CCC", "DDD"])

p = markowitzify.portfolio()
p.portfolio = df
p.cov = hm.cov_matrix(df)

p.markowitz()
print(p.optimal)

p.NCO()
print(p.nco)

API Overview

portfolio

p = markowitzify.portfolio(API_KEY=None, verbose=False)

Key methods/attributes:

  • build_portfolio(TKR_list, time_delta, end_date=None, datareader=True, provider="auto")
    • provider="auto" prefers yfinance if installed, otherwise pandas_datareader.
  • build_TSP() (depends on external endpoint availability).
  • import_portfolio(input_path, filename="portfolio.csv", dates_kw="date")
  • markowitz() → sets p.optimal
  • NCO() / optimize_nco() → sets p.nco
  • hurst(), sharpe_ratio(), simulate(), trend()

stonks

s = markowitzify.stonks("AAPL", provider="auto")

Key methods/attributes:

  • fractal()
  • bollinger()
  • RSI()
  • signal()
  • strategize()

Testing / Contributing

Run checks locally:

ruff check .
pytest -q

Notes and limitations

  • External market APIs/providers may change or break over time.
  • Tests are intentionally offline and do not rely on Yahoo/MarketStack/TSP network calls.
  • MarketStack-based portfolio building requires a valid API key.

Metadata

Release files for markowitzify 0.1.0

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

Source distribution (sdist)

Source distribution for markowitzify 0.1.0
File Size Uploaded
markowitzify-0.1.0.tar.gz 21.6 kB Details

Built distribution (wheel)

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

Total release size: 41.6 kB

Release files / markowitzify-0.1.0.tar.gz

Download URL markowitzify-0.1.0.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c77922ddaadffa8cc7a28b37576fb2446dfcfc2c073909a528891f6bcae93c36
BLAKE2b-256 checksum
How to use checksums
a20992bf8063261178189ff7a9cd3a0f0ca8e820baf94bf5a552c1ce5b36fcc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / markowitzify-0.1.0-py3-none-any.whl

Download URL markowitzify-0.1.0-py3-none-any.whl
Size 19.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a8a4bacded00cb4e8840ee8970294b845eedc43695ddebf93607b0b708dfe08
BLAKE2b-256 checksum
How to use checksums
d73e126747c74775dccc232f17405dc99ec2d3298d76fe9e61a7e1575fd383bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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