Markowitzify
Markowitzify will implement a variety of portfolio and stock/cryptocurrency analysis methods to optimize portfolios or trading strategies. The two primary classes are "portfolio" and "stonks."
Install / Use
/learn @DemetersSon83/MarkowitzifyAbout this skill
Quality Score
0/100
Category
Development & EngineeringSupported Platforms
Universal
Tags
asset-managementasset-managerassets-managementbacktesting-trading-strategiesclustering-algorithmcryptocurrency-exchangesfinancehurst-exponentmachine-learning-algorithmsmarkowitzmarkowitz-modelmarkowitz-portfoliomonte-carlo-simulationportfolio-optimizationquantitive-financerelative-strength-indexsharpe-ratiostock-analysisstock-portfolio-managertrading-strategies
README
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"prefersyfinanceif installed, otherwisepandas_datareader.
build_TSP()(depends on external endpoint availability).import_portfolio(input_path, filename="portfolio.csv", dates_kw="date")markowitz()→ setsp.optimalNCO()/optimize_nco()→ setsp.ncohurst(),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.
