QuantTradeAI - LLM Agent Guide
QuantTradeAI is a comprehensive machine learning framework for quantitative trading strategies. The codebase implements momentum trading using ensemble models (Logistic Regression, Random Forest, XGBoost) with advanced feature engineering and backtesting capabilities.
QuantTradeAI - LLM Agent Guide
Project Overview
QuantTradeAI is a comprehensive machine learning framework for quantitative trading strategies. The codebase implements momentum trading using ensemble models (Logistic Regression, Random Forest, XGBoost) with advanced feature engineering and backtesting capabilities.
Core Architecture
Key Components
- Data Layer:
quanttradeai/data/- Data fetching, caching, validation - Feature Engineering:
quanttradeai/features/- Technical indicators, custom features - ML Models:
quanttradeai/models/- Ensemble classifiers, hyperparameter optimization - Backtesting:
quanttradeai/backtest/- Trade simulation, performance metrics - Risk Management:
quanttradeai/trading/- Stop-loss, position sizing - Utilities:
quanttradeai/utils/- Metrics, visualization, configuration
Data Flow
- Fetch OHLCV data (YFinance/AlphaVantage)
- Generate technical indicators (SMA, EMA, RSI, MACD, etc.)
- Create custom features (momentum score, volatility breakout)
- Generate trading labels (forward returns)
- Train ensemble models with hyperparameter optimization
- Backtest with risk management
- Evaluate performance metrics
Development Guidelines
Code Quality Standards
- Testing: All new code MUST have unit tests
- Formatting: Use Black for code formatting
- Linting: Use flake8 for code quality
- Type Hints: Include type annotations for all functions
Pre-commit Requirements
# Run all quality checks
make format # Black formatting
make lint # flake8 linting
make test # pytest testing
Dependency Management
- CRITICAL: Use Poetry CLI for ALL dependency changes
- NEVER manually edit
pyproject.tomldependencies - ALWAYS use:
poetry add package-nameorpoetry add --group dev package-name - REMOVE dependencies with:
poetry remove package-name
Testing Requirements
- Unit tests for all new functions/classes
- Integration tests for data pipelines
- Performance tests for critical paths
- Test coverage > 80%
Key Technologies
Core Dependencies
- Python 3.11+ - Main language
- Poetry - Dependency management
- pandas/numpy - Data manipulation
- scikit-learn - ML algorithms
- XGBoost - Gradient boosting
- Optuna - Hyperparameter optimization
- yfinance - Market data
- pandas-ta - Technical indicators
Configuration
- YAML - Configuration files
- Pydantic - Configuration validation
- joblib - Model persistence
API Structure
Data Loading
from quanttradeai import DataLoader, DataProcessor
# Initialize components
loader = DataLoader("config/model_config.yaml")
processor = DataProcessor("config/features_config.yaml")
# Fetch and process data
data_dict = loader.fetch_data()
df_processed = processor.process_data(df)
df_labeled = processor.generate_labels(df_processed)
Model Training
from quanttradeai import MomentumClassifier
# Initialize and train
classifier = MomentumClassifier("config/model_config.yaml")
X, y = classifier.prepare_data(df_labeled)
classifier.train(X, y)
Evaluation & Splitting
- CLI training performs time‑aware splits using
data.test_startand optionaldata.test_endinconfig/model_config.yaml. If unset, the lasttraining.test_sizefraction is used chronologically (no shuffle). - Hyperparameter tuning uses
TimeSeriesSplit(n_splits=training.cv_folds)to prevent look‑ahead bias during CV.
Backtesting
from quanttradeai import simulate_trades, compute_metrics
# Simulate trades
df_trades = simulate_trades(df_labeled)
metrics = compute_metrics(df_trades)
Configuration Files
Model Configuration (config/model_config.yaml)
- Data parameters (symbols, date ranges, caching)
- Model hyperparameters (LR, RF, XGBoost)
- Training settings (test size, CV folds)
- Trading parameters (position sizing, risk)
Feature Configuration (config/features_config.yaml)
- Technical indicator parameters
- Feature preprocessing settings
- Feature selection methods
- Pipeline steps
Error Handling Patterns
Data Validation
# Validate data quality
is_valid = loader.validate_data(data_dict)
if not is_valid:
raise ValueError("Data validation failed")
Model Training
try:
classifier.train(X, y)
except ValueError as e:
logger.error(f"Training error: {e}")
# Check data shapes and class distribution
Configuration Validation
from quanttradeai.utils.config_schemas import ModelConfigSchema
ModelConfigSchema(**config) # Validates configuration
Performance Considerations
Memory Management
- Use smaller data types for large datasets
- Process data in batches for memory efficiency
- Cache intermediate results appropriately
Computational Optimization
- Vectorized operations over loops
- Parallel processing for multiple assets
- GPU acceleration for model training (future)
Testing Patterns
Unit Tests
def test_data_loader():
loader = DataLoader("config/model_config.yaml")
data = loader.fetch_data()
assert len(data) > 0
assert all(isinstance(df, pd.DataFrame) for df in data.values())
Integration Tests
def test_complete_pipeline():
# Test end-to-end workflow
loader = DataLoader()
processor = DataProcessor()
classifier = MomentumClassifier()
data = loader.fetch_data()
df = processor.process_data(data['AAPL'])
df_labeled = processor.generate_labels(df)
X, y = classifier.prepare_data(df_labeled)
classifier.train(X, y)
predictions = classifier.predict(X)
assert len(predictions) == len(y)
Documentation Standards
Code Documentation
- Docstrings for all public functions
- Type hints for all parameters
- Usage examples in docstrings
- Clear parameter descriptions
API Documentation
- Update
docs/api/files for new functions - Include parameter types and return values
- Provide usage examples
- Document error conditions
Common Patterns
Feature Engineering
from quanttradeai.features import technical as ta
# Generate technical indicators
df['sma_20'] = ta.sma(df['Close'], 20)
df['rsi'] = ta.rsi(df['Close'], 14)
macd_df = ta.macd(df['Close'])
Risk Management
from quanttradeai import apply_stop_loss_take_profit
# Apply risk rules
df_with_risk = apply_stop_loss_take_profit(df, stop_loss_pct=0.02)
Performance Metrics
from quanttradeai.utils.metrics import classification_metrics, sharpe_ratio
# Calculate metrics
metrics = classification_metrics(y_true, y_pred)
sharpe = sharpe_ratio(returns, risk_free_rate=0.02)
Troubleshooting
Common Issues
- Data Loading Failures: Check network connectivity, API limits
- Memory Issues: Reduce data size, use batching
- Model Training Errors: Check data quality, class balance
- Configuration Errors: Validate YAML syntax, required fields
Debugging Steps
- Check logs for error messages
- Validate input data quality
- Test individual components
- Verify configuration parameters
LLM Sentiment Analysis
LiteLLM provides a unified interface for scoring text sentiment. Enable it through config/features_config.yaml:
sentiment:
enabled: true
provider: openai
model: gpt-3.5-turbo
api_key_env_var: OPENAI_API_KEY
Set the corresponding API key:
export OPENAI_API_KEY="sk-..."
Switch providers by editing provider, model, and api_key_env_var. The data pipeline automatically adds a sentiment_score column during the generate_sentiment step.
For CLI and Python examples see docs/llm-sentiment.md.
Future Development Areas
High Priority
- Real-time data streaming
- Advanced risk management
- Multi-timeframe support
Medium Priority
- GPU acceleration
- Microservices architecture
- Advanced NLP features
- Reinforcement learning
Low Priority
- Quantum computing integration
- Blockchain connectivity
- Multi-modal AI
- Federated learning
Resources
Documentation
External Libraries
Testing & Quality
Commit Guidelines
Before Committing
- Run
make format- Format code with Black - Run
make lint- Check code quality with flake8 - Run
make test- Execute all tests - Update documentation if needed
- Add/update tests for new functionality
Commit Messages
- Use conventional commit format
- Be descriptive and concise
- Reference issues when applicable
- Example:
feat: add new technical indicator for momentum
Pull Request Requirements
- All tests must pass
- Code coverage > 80%
- Documentation updated
- No linting errors
- Clear description of changes
Emergency Procedures
Breaking Changes
- Maintain backward compatibility when possible
- Use deprecation warnings for removed features
- Update documentation immediately
- Notify team of breaking changes
Critical Bugs
- Create hotfix branch immediately
- Add regression tests
- Deploy fix as soon as possible
- Document the issue and solution
Remember: Always test thoroughly, follow coding standards, and maintain documentation. This codebase is used for financial applications - accuracy and reliability are paramount.
Related Documents
Design Document: BharatSeva AI
BharatSeva AI is a multi-agent orchestration system built on AWS using Amazon Bedrock Agents with Claude 3.5 Sonnet as the foundation model. The system deploys 10 AI agents (1 Master Orchestrator + 9 Specialist Agents) to assist India's informal sector workers in navigating government schemes across three domains: PM Vishwakarma (artisan credit), PMFBY (crop insurance), and BOCW (construction worker welfare).
OpenClaw Enterprise Transformation Plan
Transform OpenClaw from a single-user personal AI assistant into a **dual-mode platform** that is simultaneously:
Qwen Image and Edit: Open-sourcing and Local GGUF Generations with Lightning
Daniel Sandner, for article on https://sandner.art/
Qwen3-TTS — Model Reference
Models: `Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice` and `Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice`