Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions LLM.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ QuantTradeAI is a comprehensive machine learning framework for quantitative trad
## Core Architecture

### Key Components
- **Data Layer**: `src/data/` - Data fetching, caching, validation
- **Feature Engineering**: `src/features/` - Technical indicators, custom features
- **ML Models**: `src/models/` - Ensemble classifiers, hyperparameter optimization
- **Backtesting**: `src/backtest/` - Trade simulation, performance metrics
- **Risk Management**: `src/trading/` - Stop-loss, position sizing
- **Utilities**: `src/utils/` - Metrics, visualization, configuration
- **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
1. Fetch OHLCV data (YFinance/AlphaVantage)
Expand Down Expand Up @@ -72,8 +72,8 @@ make test # pytest testing

### Data Loading
```python
from src.data.loader import DataLoader
from src.data.processor import DataProcessor
from quanttradeai.data.loader import DataLoader
from quanttradeai.data.processor import DataProcessor

# Initialize components
loader = DataLoader("config/model_config.yaml")
Expand All @@ -87,7 +87,7 @@ df_labeled = processor.generate_labels(df_processed)

### Model Training
```python
from src.models.classifier import MomentumClassifier
from quanttradeai.models.classifier import MomentumClassifier

# Initialize and train
classifier = MomentumClassifier("config/model_config.yaml")
Expand All @@ -97,7 +97,7 @@ classifier.train(X, y)

### Backtesting
```python
from src.backtest.backtester import simulate_trades, compute_metrics
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics

# Simulate trades
df_trades = simulate_trades(df_labeled)
Expand Down Expand Up @@ -139,7 +139,7 @@ except ValueError as e:

### Configuration Validation
```python
from src.utils.config_schemas import ModelConfigSchema
from quanttradeai.utils.config_schemas import ModelConfigSchema
ModelConfigSchema(**config) # Validates configuration
```

Expand Down Expand Up @@ -203,7 +203,7 @@ def test_complete_pipeline():

### Feature Engineering
```python
from src.features.technical import sma, ema, rsi, macd
from quanttradeai.features.technical import sma, ema, rsi, macd

# Generate technical indicators
df['sma_20'] = sma(df['Close'], 20)
Expand All @@ -213,15 +213,15 @@ macd_df = macd(df['Close'])

### Risk Management
```python
from src.trading.risk import apply_stop_loss_take_profit
from quanttradeai.trading.risk 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
```python
from src.utils.metrics import classification_metrics, sharpe_ratio
from quanttradeai.utils.metrics import classification_metrics, sharpe_ratio

# Calculate metrics
metrics = classification_metrics(y_true, y_pred)
Expand Down
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
.PHONY: format format-check lint test pipeline

format:
poetry run black src/
poetry run black quanttradeai/

format-check:
poetry run black --check src/
poetry run black --check quanttradeai/

lint:
poetry run flake8 src/
poetry run flake8 quanttradeai/

test:
poetry run pytest

pipeline:
poetry run quanttradeai train -c config/model_config.yaml

12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ poetry run quanttradeai evaluate -m models/trained/AAPL

```
QuantTradeAI/
├── src/ # Core framework
├── quanttradeai/ # Core framework
│ ├── data/ # Data loading & processing
│ ├── features/ # Technical indicators
│ ├── models/ # ML models & training
Expand Down Expand Up @@ -111,9 +111,9 @@ poetry run quanttradeai evaluate -m models/trained/AAPL
### Python API

```python
from src.data.loader import DataLoader
from src.data.processor import DataProcessor
from src.models.classifier import MomentumClassifier
from quanttradeai.data.loader import DataLoader
from quanttradeai.data.processor import DataProcessor
from quanttradeai.models.classifier import MomentumClassifier

# Initialize components
loader = DataLoader("config/model_config.yaml")
Expand Down Expand Up @@ -153,10 +153,10 @@ poetry install --with dev
poetry run pytest

# Format code
poetry run black src/
poetry run black quanttradeai/

# Lint code
poetry run flake8 src/
poetry run flake8 quanttradeai/
```

## 📄 License
Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The [Quick Reference Guide](quick-reference.md) includes:

```
QuantTradeAI/
├── src/
├── quanttradeai/
│ ├── main.py # CLI entry point
│ ├── data/ # Data processing
│ │ ├── loader.py # Data fetching and caching
Expand Down
10 changes: 5 additions & 5 deletions docs/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ Complete API documentation for QuantTradeAI.

### Basic Workflow
```python
from src.data.loader import DataLoader
from src.data.processor import DataProcessor
from src.models.classifier import MomentumClassifier
from quanttradeai.data.loader import DataLoader
from quanttradeai.data.processor import DataProcessor
from quanttradeai.models.classifier import MomentumClassifier

# Initialize components
loader = DataLoader("config/model_config.yaml")
Expand All @@ -54,8 +54,8 @@ classifier.train(X, y)

### Advanced Usage
```python
from src.backtest.backtester import simulate_trades, compute_metrics
from src.trading.risk import apply_stop_loss_take_profit
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
from quanttradeai.trading.risk import apply_stop_loss_take_profit

# Backtest with risk management
df_with_risk = apply_stop_loss_take_profit(df_labeled, stop_loss_pct=0.02)
Expand Down
14 changes: 7 additions & 7 deletions docs/api/backtesting.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Simulates trades using label signals.

**Example:**
```python
from src.backtest.backtester import simulate_trades
from quanttradeai.backtest.backtester import simulate_trades

# Simulate trades with stop-loss and take-profit
df_with_trades = simulate_trades(df, stop_loss_pct=0.02, take_profit_pct=0.04)
Expand All @@ -40,7 +40,7 @@ Calculates basic performance metrics for a strategy.

**Example:**
```python
from src.backtest.backtester import compute_metrics
from quanttradeai.backtest.backtester import compute_metrics

# Calculate performance metrics
metrics = compute_metrics(df_with_trades, risk_free_rate=0.02)
Expand All @@ -53,7 +53,7 @@ print(f"Max Drawdown: {metrics['max_drawdown']:.4f}")

### Basic Backtesting
```python
from src.backtest.backtester import simulate_trades, compute_metrics
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics

# Simulate trades
df_trades = simulate_trades(df_labeled)
Expand All @@ -68,8 +68,8 @@ print(f"Max Drawdown: {metrics['max_drawdown']:.2%}")

### Backtesting with Risk Management
```python
from src.backtest.backtester import simulate_trades, compute_metrics
from src.trading.risk import apply_stop_loss_take_profit
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
from quanttradeai.trading.risk import apply_stop_loss_take_profit

# Apply risk management rules
df_with_risk = apply_stop_loss_take_profit(
Expand All @@ -91,7 +91,7 @@ print(f"Max Drawdown: {metrics['max_drawdown']:.2%}")

### Multi-Asset Backtesting
```python
from src.backtest.backtester import simulate_trades, compute_metrics
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics

# Backtest multiple assets
results = {}
Expand Down Expand Up @@ -166,7 +166,7 @@ print(f"Average Loss: {losing_trades['strategy_return'].mean():.2%}")

### Stop-Loss and Take-Profit
```python
from src.trading.risk import apply_stop_loss_take_profit
from quanttradeai.trading.risk import apply_stop_loss_take_profit

# Apply different risk management scenarios
scenarios = [
Expand Down
8 changes: 4 additions & 4 deletions docs/api/data.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Handles data fetching, caching, and validation for multiple financial instrument

**Example:**
```python
from src.data.loader import DataLoader
from quanttradeai.data.loader import DataLoader

# Initialize with default configuration
loader = DataLoader("config/model_config.yaml")
Expand Down Expand Up @@ -97,7 +97,7 @@ DataSource implementation using the yfinance package.

**Example:**
```python
from src.data.datasource import YFinanceDataSource
from quanttradeai.data.datasource import YFinanceDataSource

# Initialize YFinance data source
data_source = YFinanceDataSource()
Expand All @@ -115,7 +115,7 @@ DataSource implementation for AlphaVantage API.

**Example:**
```python
from src.data.datasource import AlphaVantageDataSource
from quanttradeai.data.datasource import AlphaVantageDataSource

# Initialize with API key
data_source = AlphaVantageDataSource("YOUR_API_KEY")
Expand All @@ -135,7 +135,7 @@ Processes raw OHLCV data and generates required features for the trading strateg

**Example:**
```python
from src.data.processor import DataProcessor
from quanttradeai.data.processor import DataProcessor

# Initialize processor
processor = DataProcessor("config/features_config.yaml")
Expand Down
20 changes: 10 additions & 10 deletions docs/api/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Calculates Simple Moving Average.

**Example:**
```python
from src.features.technical import sma
from quanttradeai.features.technical import sma

# Calculate 20-period SMA
sma_20 = sma(df['Close'], 20)
Expand All @@ -36,7 +36,7 @@ Calculates Exponential Moving Average.

**Example:**
```python
from src.features.technical import ema
from quanttradeai.features.technical import ema

# Calculate 20-period EMA
ema_20 = ema(df['Close'], 20)
Expand All @@ -55,7 +55,7 @@ Calculates Relative Strength Index.

**Example:**
```python
from src.features.technical import rsi
from quanttradeai.features.technical import rsi

# Calculate 14-period RSI
rsi_14 = rsi(df['Close'], 14)
Expand All @@ -76,7 +76,7 @@ Calculates MACD indicator.

**Example:**
```python
from src.features.technical import macd
from quanttradeai.features.technical import macd

# Calculate MACD
macd_df = macd(df['Close'])
Expand All @@ -101,7 +101,7 @@ Calculates Stochastic Oscillator.

**Example:**
```python
from src.features.technical import stochastic
from quanttradeai.features.technical import stochastic

# Calculate Stochastic Oscillator
stoch_df = stochastic(df['High'], df['Low'], df['Close'])
Expand All @@ -127,7 +127,7 @@ Computes a simple momentum score from multiple indicators.

**Example:**
```python
from src.features.custom import momentum_score
from quanttradeai.features.custom import momentum_score

# Calculate momentum score
score = momentum_score(df['Close'], df['sma_20'], df['rsi'], df['macd'], df['macd_signal'])
Expand All @@ -149,7 +149,7 @@ Flags days when price breaks above the previous high plus a threshold.

**Example:**
```python
from src.features.custom import volatility_breakout
from quanttradeai.features.custom import volatility_breakout

# Calculate volatility breakout signals
breakout = volatility_breakout(df['High'], df['Low'], df['Close'])
Expand All @@ -159,7 +159,7 @@ breakout = volatility_breakout(df['High'], df['Low'], df['Close'])

### Moving Averages
```python
from src.features.technical import sma, ema
from quanttradeai.features.technical import sma, ema

# Generate multiple moving averages
periods = [5, 10, 20, 50, 200]
Expand All @@ -170,7 +170,7 @@ for period in periods:

### Momentum Indicators
```python
from src.features.technical import rsi, macd, stochastic
from quanttradeai.features.technical import rsi, macd, stochastic

# Generate momentum indicators
df['rsi'] = rsi(df['Close'], 14)
Expand All @@ -185,7 +185,7 @@ df['stoch_d'] = stoch_df['stoch_d']

### Custom Features
```python
from src.features.custom import momentum_score, volatility_breakout
from quanttradeai.features.custom import momentum_score, volatility_breakout

# Generate custom features
df['momentum_score'] = momentum_score(
Expand Down
4 changes: 2 additions & 2 deletions docs/api/models.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Voting Classifier for momentum trading strategy using Logistic Regression, Rando

**Example:**
```python
from src.models.classifier import MomentumClassifier
from quanttradeai.models.classifier import MomentumClassifier

# Initialize classifier
classifier = MomentumClassifier("config/model_config.yaml")
Expand Down Expand Up @@ -178,7 +178,7 @@ xgb_params = {

### Complete Training Example
```python
from src.models.classifier import MomentumClassifier
from quanttradeai.models.classifier import MomentumClassifier
from sklearn.model_selection import train_test_split

# Initialize classifier
Expand Down
Loading