SquareQuant

Professional-grade financial risk metrics and portfolio analysis

PyPI version Python License

What is SquareQuant?

SquareQuant is a comprehensive Python library for quantitative finance that provides institutional-grade risk metrics, performance analysis, and visualization tools. Designed for both industry professionals and quantitative researchers, it offers a powerful yet intuitive interface for portfolio analysis and risk management.

Key Features

📊 Extensive Risk Metrics

  • Standard Metrics: Sharpe ratio, Sortino ratio, volatility, maximum drawdown

  • Advanced Risk Measures: historical and parametric Value at Risk (VaR), Conditional Value at Risk (CVaR), Entropic Risk Measure (ERM), Conditional Drawdown at Risk (CDaR)

  • Drawdown Analysis: Maximum drawdown, average drawdown, Ulcer Index

  • Advanced Statistics: Semi-deviation, mean absolute deviation, and more

📈 Data Integration & Management

  • Seamless integration with financial market data sources

  • Efficient handling of time series with proper alignment and validation

  • Custom date range filtering and data transformation

🔍 Visualization Tools

  • Portfolio weight allocation charts

  • Risk contribution analysis

  • Returns distribution visualization

  • Correlation heatmaps

  • Drawdown comparison tools

  • Rolling metric dashboards

⚡ Performance Optimized

  • Memory-efficient vectorized calculations

  • Optimized for large datasets and extended time series

  • Batch processing capabilities for resource-intensive operations

Quick Example

import pandas as pd
import squarequant as sq

# Download data
config = sq.DownloadConfig(start_date='2020-01-01', end_date='2023-01-01')
data = sq.download_tickers(['AAPL', 'MSFT', 'GOOGL', 'AMZN'], config)

# Calculate risk metrics
assets = ['AAPL', 'MSFT', 'GOOGL', 'AMZN']
sharpe_ratio = sq.sharpe(data, assets)
volatility = sq.vol(data, assets)
max_drawdown = sq.mdd(data, assets)

# Visualize risk comparison
sq.plot_risk_comparison(data, assets, risk_metrics=['vol', 'mdd', 'var', 'semidev'])

Who Should Use SquareQuant?

  • Portfolio Managers: Monitor and analyze portfolio risk across multiple dimensions

  • Quant Researchers: Implement and validate complex risk models

  • Risk Analysts: Generate comprehensive risk reports with detailed visualizations

  • Financial Advisors: Provide clients with advanced risk insights and portfolio analysis

  • Students & Academics: Learn and apply quantitative finance concepts with production-grade tools

Getting Started

Installation

pip install squarequant

Basic Usage

import pandas as pd
import matplotlib.pyplot as plt
import squarequant as sq

# Set up configuration and download data
config = sq.DownloadConfig(start_date='2022-01-01', end_date='2023-01-01')
data = sq.download_tickers(['AAPL', 'MSFT', 'GOOGL'], config)

# Calculate risk metrics
assets = ['AAPL', 'MSFT', 'GOOGL']
volatility = sq.vol(data, assets)

# Generate visualization
fig, ax = plt.subplots(figsize=(10, 6))
sq.plot_rolling_metrics(data, assets, metrics=['vol', 'mdd'])
plt.show()

Roadmap

SquareQuant is actively being developed with the following modules planned for upcoming releases:

Release

Expected Date

Features

v0.2.0

Q2 2025

Monte Carlo Simulation Module
• Scenario generation
• Risk factor simulation
• Portfolio stress testing

v0.3.0

Q3 2025

Portfolio Optimization Tools
• Mean-variance optimization
• Risk parity allocation
• Factor-based optimization

v0.4.0

Q4 2025

Pricing Module
• Options pricing
• Fixed income valuation
• Derivatives modeling

Stay tuned for these exciting additions! We welcome community feedback on prioritizing these features.

Indices and Tables