Quant-Analysis-example: Advanced Quantitative Trading Framework
π Project Overview
Quant-Analysis-example is a sophisticated Python-based quantitative trading research platform that combines traditional financial analysis with cutting-edge generative AI techniques. This project demonstrates my expertise in financial engineering, machine learning, and algorithmic trading, developed as part of my transition from electrical engineering research to quantitative finance. The framework provides a comprehensive toolkit for strategy development, back-testing, and performance analytics, serving as a robust foundation for systematic trading research.
This project reflects my passion for both theoretical foundations and practical applications in quantitative finance, incorporating techniques from my PhD research on graph neural networks and time series analysis into financial market prediction. The framework is designed to be accessible yet powerful, suitable for both educational purposes and serious quantitative research.
β¨ Key Features
-
π§ Flexible Back-Testing Engine: A event-driven back-testing system that supports multiple asset classes and timeframes, with customizable commission models and slippage simulation .
- π Comprehensive Technical Analysis: Implementation of 20+ technical indicators including:
- Moving Average Convergence Divergence (MACD)
- Relative Strength Index (RSI)
- Bollinger Bands
- Average True Range (ATR)
- And many moreβ¦
-
π€ Generative AI Integration: Incorporation of state-of-the-art time series forecasting models including the recently developed Kronos model for financial time series prediction, leveraging techniques from my research in graph neural networks and adaptive machine learning.
-
π Automated Data Pipeline: Seamless integration with Yahoo Finance API for real-time and historical market data retrieval, with support for multiple data formats and caching mechanisms.
- β‘ Multiple Trading Strategies: Implemented various trading approaches including:
- Mean reversion strategies
- Trend following algorithms
- Breakout strategies
- AI-driven signal generation
- π Performance Analytics: Comprehensive performance metrics with:
- Sharpe ratio and Sortino ratio calculations
- Drawdown analysis
- Benchmark-relative performance
- Risk-adjusted return metrics
π Technology Stack
| Category | Technologies |
|---|---|
| Programming Languages | Python 3.8+ |
| Data Processing | Pandas, NumPy, yFinance |
| Machine Learning | PyTorch, Scikit-learn |
| Visualization | Matplotlib, Seaborn, Plotly |
| Development Tools | Jupyter Notebook, Git, Docker |
| Cloud Platforms | AWS (SageMaker, EC2, S3) |
π¦ Installation and Getting Started
Prerequisites
python >= 3.8
pip >= 20.0
Installation
Clone the repository and install dependencies:
git clone https://github.com/Yechang618/Quant-Analysis-example.git
cd Quant-Analysis-example
pip install -r requirements.txt
Basic Usage
from quant_analysis import BacktestEngine, DataHandler
# Initialize data handler
data_handler = DataHandler(symbols=["AAPL", "MSFT"], start_date="2020-01-01")
# Initialize backtest engine
engine = BacktestEngine(
strategy=MeanReversionStrategy,
data_handler=data_handler,
initial_capital=100000,
commission=0.001
)
# Run backtest
results = engine.run()
engine.generate_report()
π― Usage Examples
Example 1: Basic Back-testing
# Simple moving average crossover strategy
class SMACrossover(Strategy):
def init(self):
self.short_ma = self.I(ta.sma, self.data.Close, 20)
self.long_ma = self.I(ta.sma, self.data.Close, 50)
def next(self):
if crossover(self.short_ma, self.long_ma):
self.buy()
elif crossover(self.long_ma, self.short_ma):
self.sell()
Example 2: AI-Driven Forecasting
# Using generative AI for price forecasting
forecaster = KronosForecaster(
input_dim=10,
hidden_dim=64,
output_dim=1,
num_layers=3
)
forecaster.train(training_data)
predictions = forecaster.predict(test_data)
Example 3: Performance Analysis
# Generate performance report
analytics = PerformanceAnalytics(portfolio_returns)
print(f"Sharpe Ratio: {analytics.sharpe_ratio()}")
print(f"Max Drawdown: {analytics.max_drawdown()}")
print(f"Sortino Ratio: {analytics.sortino_ratio()}")
# Plot performance
visualization = VisualizationEngine()
visualization.plot_equity_curve(results)
visualization.plot_drawdown(results)
π Project Structure
Quant-Analysis-example/
β
βββ data/ # Data management module
β βββ handlers/ # Data handlers for different sources
β βββ processors/ # Data preprocessing and feature engineering
β
βββ strategies/ # Trading strategies
β βββ mean_reversion/ # Mean reversion strategies
β βββ trend_following/ # Trend following strategies
β βββ ai_driven/ # AI-powered strategies
β
βββ backtest/ # Back-testing engine
β βββ engine.py # Main back-testing engine
β βββ performance.py # Performance analytics
β
βββ models/ # AI/ML models
β βββ traditional_ml/ # Traditional machine learning models
β βββ generative_ai/ # Generative AI models for time series
β
βββ utils/ # Utility functions
β βββ indicators.py # Technical indicators
β βββ visualization.py # Visualization tools
β
βββ examples/ # Example notebooks and scripts
βββ tests/ # Test suite
βββ docs/ # Documentation
π€ Contributing
This project welcomes contributions from the community! Whether youβre interested in fixing bugs, improving documentation, or adding new features, please feel free to submit issues and pull requests. The project follows standard GitHub contribution guidelines including:
- Using issue templates for bug reports and feature requests
- Following PEP 8 coding standards for Python code
- Providing comprehensive tests for new features
- Updating documentation accordingly
For major changes, please open an issue first to discuss what you would like to change.
π License
This project is licensed under the MIT License - see the LICENSE file for details. This permissive license allows for academic and commercial use, with appropriate attribution.
π Contact
Chang Ye
- Email: chang.ye@my.cityu.edu.hk
- LinkedIn: www.linkedin.com/in/ye-chang
- GitHub: github.com/Yechang618
Feel free to reach out if you have any questions, suggestions, or collaboration ideas! Iβm always interested in discussing quantitative finance, machine learning applications in trading, or potential research collaborations.