Skip to content

Commit 7a31538

Browse files
authored
Merge pull request #24 from AKKI0511/refactor-package-structure-for-imports
Rename core package
2 parents 8f5fa9f + c23a98e commit 7a31538

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+107
-169
lines changed

LLM.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ QuantTradeAI is a comprehensive machine learning framework for quantitative trad
77
## Core Architecture
88

99
### Key Components
10-
- **Data Layer**: `src/data/` - Data fetching, caching, validation
11-
- **Feature Engineering**: `src/features/` - Technical indicators, custom features
12-
- **ML Models**: `src/models/` - Ensemble classifiers, hyperparameter optimization
13-
- **Backtesting**: `src/backtest/` - Trade simulation, performance metrics
14-
- **Risk Management**: `src/trading/` - Stop-loss, position sizing
15-
- **Utilities**: `src/utils/` - Metrics, visualization, configuration
10+
- **Data Layer**: `quanttradeai/data/` - Data fetching, caching, validation
11+
- **Feature Engineering**: `quanttradeai/features/` - Technical indicators, custom features
12+
- **ML Models**: `quanttradeai/models/` - Ensemble classifiers, hyperparameter optimization
13+
- **Backtesting**: `quanttradeai/backtest/` - Trade simulation, performance metrics
14+
- **Risk Management**: `quanttradeai/trading/` - Stop-loss, position sizing
15+
- **Utilities**: `quanttradeai/utils/` - Metrics, visualization, configuration
1616

1717
### Data Flow
1818
1. Fetch OHLCV data (YFinance/AlphaVantage)
@@ -72,8 +72,8 @@ make test # pytest testing
7272

7373
### Data Loading
7474
```python
75-
from src.data.loader import DataLoader
76-
from src.data.processor import DataProcessor
75+
from quanttradeai.data.loader import DataLoader
76+
from quanttradeai.data.processor import DataProcessor
7777

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

8888
### Model Training
8989
```python
90-
from src.models.classifier import MomentumClassifier
90+
from quanttradeai.models.classifier import MomentumClassifier
9191

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

9898
### Backtesting
9999
```python
100-
from src.backtest.backtester import simulate_trades, compute_metrics
100+
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
101101

102102
# Simulate trades
103103
df_trades = simulate_trades(df_labeled)
@@ -139,7 +139,7 @@ except ValueError as e:
139139

140140
### Configuration Validation
141141
```python
142-
from src.utils.config_schemas import ModelConfigSchema
142+
from quanttradeai.utils.config_schemas import ModelConfigSchema
143143
ModelConfigSchema(**config) # Validates configuration
144144
```
145145

@@ -203,7 +203,7 @@ def test_complete_pipeline():
203203

204204
### Feature Engineering
205205
```python
206-
from src.features.technical import sma, ema, rsi, macd
206+
from quanttradeai.features.technical import sma, ema, rsi, macd
207207

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

214214
### Risk Management
215215
```python
216-
from src.trading.risk import apply_stop_loss_take_profit
216+
from quanttradeai.trading.risk import apply_stop_loss_take_profit
217217

218218
# Apply risk rules
219219
df_with_risk = apply_stop_loss_take_profit(df, stop_loss_pct=0.02)
220220
```
221221

222222
### Performance Metrics
223223
```python
224-
from src.utils.metrics import classification_metrics, sharpe_ratio
224+
from quanttradeai.utils.metrics import classification_metrics, sharpe_ratio
225225

226226
# Calculate metrics
227227
metrics = classification_metrics(y_true, y_pred)

Makefile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
.PHONY: format format-check lint test pipeline
22

33
format:
4-
poetry run black src/
4+
poetry run black quanttradeai/
55

66
format-check:
7-
poetry run black --check src/
7+
poetry run black --check quanttradeai/
88

99
lint:
10-
poetry run flake8 src/
10+
poetry run flake8 quanttradeai/
1111

1212
test:
1313
poetry run pytest
1414

1515
pipeline:
1616
poetry run quanttradeai train -c config/model_config.yaml
17+

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ poetry run quanttradeai evaluate -m models/trained/AAPL
4545

4646
```
4747
QuantTradeAI/
48-
├── src/ # Core framework
48+
├── quanttradeai/ # Core framework
4949
│ ├── data/ # Data loading & processing
5050
│ ├── features/ # Technical indicators
5151
│ ├── models/ # ML models & training
@@ -111,9 +111,9 @@ poetry run quanttradeai evaluate -m models/trained/AAPL
111111
### Python API
112112

113113
```python
114-
from src.data.loader import DataLoader
115-
from src.data.processor import DataProcessor
116-
from src.models.classifier import MomentumClassifier
114+
from quanttradeai.data.loader import DataLoader
115+
from quanttradeai.data.processor import DataProcessor
116+
from quanttradeai.models.classifier import MomentumClassifier
117117

118118
# Initialize components
119119
loader = DataLoader("config/model_config.yaml")
@@ -153,10 +153,10 @@ poetry install --with dev
153153
poetry run pytest
154154

155155
# Format code
156-
poetry run black src/
156+
poetry run black quanttradeai/
157157

158158
# Lint code
159-
poetry run flake8 src/
159+
poetry run flake8 quanttradeai/
160160
```
161161

162162
## 📄 License

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The [Quick Reference Guide](quick-reference.md) includes:
6969

7070
```
7171
QuantTradeAI/
72-
├── src/
72+
├── quanttradeai/
7373
│ ├── main.py # CLI entry point
7474
│ ├── data/ # Data processing
7575
│ │ ├── loader.py # Data fetching and caching

docs/api/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ Complete API documentation for QuantTradeAI.
3232

3333
### Basic Workflow
3434
```python
35-
from src.data.loader import DataLoader
36-
from src.data.processor import DataProcessor
37-
from src.models.classifier import MomentumClassifier
35+
from quanttradeai.data.loader import DataLoader
36+
from quanttradeai.data.processor import DataProcessor
37+
from quanttradeai.models.classifier import MomentumClassifier
3838

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

5555
### Advanced Usage
5656
```python
57-
from src.backtest.backtester import simulate_trades, compute_metrics
58-
from src.trading.risk import apply_stop_loss_take_profit
57+
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
58+
from quanttradeai.trading.risk import apply_stop_loss_take_profit
5959

6060
# Backtest with risk management
6161
df_with_risk = apply_stop_loss_take_profit(df_labeled, stop_loss_pct=0.02)

docs/api/backtesting.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Simulates trades using label signals.
1818

1919
**Example:**
2020
```python
21-
from src.backtest.backtester import simulate_trades
21+
from quanttradeai.backtest.backtester import simulate_trades
2222

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

4141
**Example:**
4242
```python
43-
from src.backtest.backtester import compute_metrics
43+
from quanttradeai.backtest.backtester import compute_metrics
4444

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

5454
### Basic Backtesting
5555
```python
56-
from src.backtest.backtester import simulate_trades, compute_metrics
56+
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
5757

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

6969
### Backtesting with Risk Management
7070
```python
71-
from src.backtest.backtester import simulate_trades, compute_metrics
72-
from src.trading.risk import apply_stop_loss_take_profit
71+
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
72+
from quanttradeai.trading.risk import apply_stop_loss_take_profit
7373

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

9292
### Multi-Asset Backtesting
9393
```python
94-
from src.backtest.backtester import simulate_trades, compute_metrics
94+
from quanttradeai.backtest.backtester import simulate_trades, compute_metrics
9595

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

167167
### Stop-Loss and Take-Profit
168168
```python
169-
from src.trading.risk import apply_stop_loss_take_profit
169+
from quanttradeai.trading.risk import apply_stop_loss_take_profit
170170

171171
# Apply different risk management scenarios
172172
scenarios = [

docs/api/data.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Handles data fetching, caching, and validation for multiple financial instrument
1414

1515
**Example:**
1616
```python
17-
from src.data.loader import DataLoader
17+
from quanttradeai.data.loader import DataLoader
1818

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

9898
**Example:**
9999
```python
100-
from src.data.datasource import YFinanceDataSource
100+
from quanttradeai.data.datasource import YFinanceDataSource
101101

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

116116
**Example:**
117117
```python
118-
from src.data.datasource import AlphaVantageDataSource
118+
from quanttradeai.data.datasource import AlphaVantageDataSource
119119

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

136136
**Example:**
137137
```python
138-
from src.data.processor import DataProcessor
138+
from quanttradeai.data.processor import DataProcessor
139139

140140
# Initialize processor
141141
processor = DataProcessor("config/features_config.yaml")

docs/api/features.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Calculates Simple Moving Average.
1717

1818
**Example:**
1919
```python
20-
from src.features.technical import sma
20+
from quanttradeai.features.technical import sma
2121

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

3737
**Example:**
3838
```python
39-
from src.features.technical import ema
39+
from quanttradeai.features.technical import ema
4040

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

5656
**Example:**
5757
```python
58-
from src.features.technical import rsi
58+
from quanttradeai.features.technical import rsi
5959

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

7777
**Example:**
7878
```python
79-
from src.features.technical import macd
79+
from quanttradeai.features.technical import macd
8080

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

102102
**Example:**
103103
```python
104-
from src.features.technical import stochastic
104+
from quanttradeai.features.technical import stochastic
105105

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

128128
**Example:**
129129
```python
130-
from src.features.custom import momentum_score
130+
from quanttradeai.features.custom import momentum_score
131131

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

150150
**Example:**
151151
```python
152-
from src.features.custom import volatility_breakout
152+
from quanttradeai.features.custom import volatility_breakout
153153

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

160160
### Moving Averages
161161
```python
162-
from src.features.technical import sma, ema
162+
from quanttradeai.features.technical import sma, ema
163163

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

171171
### Momentum Indicators
172172
```python
173-
from src.features.technical import rsi, macd, stochastic
173+
from quanttradeai.features.technical import rsi, macd, stochastic
174174

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

186186
### Custom Features
187187
```python
188-
from src.features.custom import momentum_score, volatility_breakout
188+
from quanttradeai.features.custom import momentum_score, volatility_breakout
189189

190190
# Generate custom features
191191
df['momentum_score'] = momentum_score(

docs/api/models.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Voting Classifier for momentum trading strategy using Logistic Regression, Rando
1313

1414
**Example:**
1515
```python
16-
from src.models.classifier import MomentumClassifier
16+
from quanttradeai.models.classifier import MomentumClassifier
1717

1818
# Initialize classifier
1919
classifier = MomentumClassifier("config/model_config.yaml")
@@ -178,7 +178,7 @@ xgb_params = {
178178

179179
### Complete Training Example
180180
```python
181-
from src.models.classifier import MomentumClassifier
181+
from quanttradeai.models.classifier import MomentumClassifier
182182
from sklearn.model_selection import train_test_split
183183

184184
# Initialize classifier

0 commit comments

Comments
 (0)