Skip to main content

A Python package for quantitative finance

Project description

SquareQuant

A professional-grade Python package for financial risk analysis, advanced portfolio metrics, and investment visualization with a focus on performance and usability.

Features

Data Management

  • Seamless download and integration with Yahoo Finance data
  • Flexible data filtering and preprocessing utilities
  • Configurable date ranges and interval selection

Risk Metrics

  • Standard Metrics:
    • Sharpe & Sortino Ratios
    • Volatility & Semi-Deviation
    • Maximum Drawdown (MDD) & Average Drawdown
    • Value at Risk (VaR) & Conditional Value at Risk (CVaR)
  • Advanced Metrics:
    • Mean Absolute Deviation (MAD)
    • Ulcer Index
    • Entropic Risk Measure (ERM)
    • Entropic Value at Risk (EVaR)
    • Conditional Drawdown at Risk (CDaR)
    • Entropic Drawdown at Risk (EDaR)

Visualization

  • Interactive risk metrics dashboards
  • Correlation matrix heatmaps
  • Drawdown analysis charts
  • Return distribution visualization
  • Risk contribution analysis
  • Portfolio weight allocation diagrams

Implementation Advantages

  • Memory-efficient vectorized calculations
  • Dual API approaches: functional & object-oriented
  • Configurable window sizes for all metrics
  • Minimal external dependencies

Installation

pip install squarequant

Quick Start Guide

import squarequant as sq
import matplotlib.pyplot as plt

# Download stock data
tickers = ["AAPL", "MSFT", "GOOGL"]
config = sq.DownloadConfig(
    start_date="2020-01-01",
    end_date="2023-01-01",
    interval="1d"
)
data = sq.download_tickers(tickers, config)

# Calculate risk metrics
assets = ["AAPL_Close", "MSFT_Close", "GOOGL_Close"]

# Sharpe ratio with a 1-year rolling window
sharpe_ratios = sq.sharpe(data, assets, window=252)

# Plot the results
plt.figure(figsize=(12, 8))
sharpe_ratios.plot()
plt.title("Rolling Sharpe Ratios")
plt.show()

Advanced Usage Examples

Multiple Risk Metrics Visualization

# Create a visualization of multiple risk metrics
sq.plot_rolling_metrics(
    data=data,
    assets=assets,
    metrics=['sharpe', 'vol', 'mdd', 'var'],
    windows={'vol': 20, 'mdd': 252}
)
plt.show()

Risk Comparison Dashboard

# Create a risk comparison dashboard
sq.plot_risk_comparison(
    data=data,
    assets=assets,
    risk_metrics=['vol', 'mdd', 'var', 'cvar', 'semidev', 'ulcer'],
)
plt.show()

Performance Metrics Table

# Generate a performance metrics table
sq.plot_performance_metrics(
    data=data,
    assets=assets,
    risk_free=0.02,  # 2% risk-free rate
)
plt.show()

Object-Oriented Interface

SquareQuant provides an object-oriented interface for more advanced use cases:

from squarequant.core.metrics import EntropicValueAtRisk

# Create an EVaR calculator
calculator = EntropicValueAtRisk(
    data=data,
    assets=assets,
    alpha=0.95,  # 95% confidence level
    window=252,
    start="2021-01-01",
    end="2022-01-01"
)

# Calculate EVaR
evar_values = calculator.calculate()

Configuration Options

Custom Risk-Free Rate

# Using a constant value
sharpe_ratios = sq.sharpe(data, assets, freerate_value=0.02)

# Using a column in your data
sharpe_ratios = sq.sharpe(data, assets, freerate="TREASURY_YIELD")

Custom Confidence Levels

# Calculate VaR with 99% confidence
var_values = sq.var(data, assets, confidence=0.99)

Documentation

For full documentation, visit https://squarequant.readthedocs.io

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Author

Gabriel Bosch

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

squarequant-0.1.0.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

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

squarequant-0.1.0-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: squarequant-0.1.0.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for squarequant-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4a3948bf0a8855dbd2a2dda7997e928880d601dedec0337e42664a2f71667ce7
MD5 df77c7f3090e98ae8ede5012efeb3fed
BLAKE2b-256 ef962af11a3e863ce2d91ef0689eff7b7c9ec06cfbb2bf327d0992c98cc1731d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: squarequant-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for squarequant-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36656bef74ec690f1dd68b6a5916b4b544be3a9f3a7bf7f4b9ede352c9afd823
MD5 92b400b010a4fc9f2c3923ff44e73ea7
BLAKE2b-256 7b2aa2301300511a3cc1fb0660c1fdbfb5d855b537b0dc71bcfa669804d20b11

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