Skip to main content

A portfolio management tool with built-in state-of-the-art portfolio optimization algorithms, with extensibility for different use cases for both institutes and retail traders.

Project description

TiPortfolio

A portfolio management tool with built-in state-of-the-art portfolio optimization algorithms, with extensibility for different use cases for both institutes and retail traders.

Installation

pip install tiportfolio

# For interactive Plotly charts:
pip install tiportfolio[interactive]

# For Equal Risk Contribution (ERC) weighting:
pip install tiportfolio[erc]

Quick Start

import tiportfolio as ti

# 1. Fetch data (Yahoo Finance by default, or Alpaca if API keys are set)
data = ti.fetch_data(["QQQ", "BIL", "GLD"], start="2019-01-01", end="2024-12-31")

# 2. Define strategy using the algo stack: Signal → Select → Weigh → Action
portfolio = ti.Portfolio(
    "monthly_equal_weight",
    [
        ti.Signal.Monthly(),    # WHEN to rebalance
        ti.Select.All(),        # WHAT to include
        ti.Weigh.Equally(),     # HOW MUCH to allocate
        ti.Action.Rebalance(),  # EXECUTE trades
    ],
    ["QQQ", "BIL", "GLD"],
)

# 3. Run backtest
result = ti.run(ti.Backtest(portfolio, data))

# 4. View results
result.summary()       # key metrics: Sharpe, CAGR, max drawdown, etc.
result.plot()          # equity curve + drawdown chart

Requirements

  • Python 3.10+
  • pandas, numpy, matplotlib

Data fetching uses Yahoo Finance by default. For Alpaca, set ALPACA_API_KEY and ALPACA_API_SECRET in your environment (see .env.example).

Development

uv sync
uv run python -m pytest

License

Apache 2.0

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

tiportfolio-1.0.0.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

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

tiportfolio-1.0.0-py3-none-any.whl (49.0 kB view details)

Uploaded Python 3

File details

Details for the file tiportfolio-1.0.0.tar.gz.

File metadata

  • Download URL: tiportfolio-1.0.0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tiportfolio-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2496aad1cad19a28783d0f9c73b52c2b181a2d7eb9bbb5d26271be0c71f028c2
MD5 7e3d142e8cb08654e6fa8358046beb88
BLAKE2b-256 2d879e79c1c7f67ca375f964ad4e61193e33e316e379ff51993450e7fc207b5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tiportfolio-1.0.0.tar.gz:

Publisher: publish.yml on TradeInsight-Info/TiPortfolio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tiportfolio-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: tiportfolio-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 49.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tiportfolio-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bdca41c8dec6e41273f4be5b031a37738e9634142e91f911bbe21ba4bab85ab0
MD5 4da4f128283c350ba90a9ed12c450ba3
BLAKE2b-256 f33e882966cf47feb7b7c38cb790e7966897d8b5fe7eeafe88278b35163539c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tiportfolio-1.0.0-py3-none-any.whl:

Publisher: publish.yml on TradeInsight-Info/TiPortfolio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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