🚀 现代化的量化交易平台 - 为初学者设计的完整解决方案
这是一个面向量化交易初学者的现代化交易系统,集成了数据获取、策略开发、回测分析、风险管理和实盘交易等完整功能。采用最新的技术栈和最佳实践,提供专业级的量化交易体验。
- 🔄 实时数据获取: 支持多数据源(Yahoo Finance、Alpha Vantage等)
- 📊 策略开发框架: 灵活的策略开发和参数优化
- 🧪 回测引擎: 高精度历史数据回测和性能分析
- ⚡ 风险管理: 实时风险监控和控制机制
- 🤖 机器学习集成: 支持深度学习和强化学习策略
- 📈 实时监控: 全面的交易监控和可视化面板
- 🔒 安全可靠: 企业级安全设计和错误处理
┌─────────────────────────────────────────────────────────────────┐
│ Frontend (React) │
├─────────────────────────────────────────────────────────────────┤
│ API Gateway (FastAPI) │
├─────────────────────────────────────────────────────────────────┤
│ Data Service │ Strategy Service │ Execution Service │ Risk Mgmt │
├─────────────────────────────────────────────────────────────────┤
│ Message Queue (Redis/RabbitMQ) │
├─────────────────────────────────────────────────────────────────┤
│ PostgreSQL │ InfluxDB │ Redis Cache │
└─────────────────────────────────────────────────────────────────┘
- Python 3.11+: 主要开发语言
- FastAPI: 现代异步Web框架
- SQLAlchemy: ORM和数据库操作
- Celery: 分布式任务队列
- Redis: 缓存和消息代理
- PostgreSQL: 主数据库
- InfluxDB: 时序数据存储
- React 18: 用户界面框架
- TypeScript: 类型安全开发
- Tailwind CSS: 现代CSS框架
- Chart.js: 数据可视化
- React Query: 状态管理
- Pandas: 数据处理
- NumPy: 数值计算
- PyTorch: 深度学习
- scikit-learn: 机器学习
- TA-Lib: 技术分析指标
- Python 3.11+
- Node.js 18+
- Docker & Docker Compose
- Git
git clone <your-repo-url>
cd Stock-Trade创建环境变量文件:
cp .env.example .env编辑 .env 文件,配置必要的环境变量:
# 数据库配置
DATABASE_URL=postgresql+asyncpg://quant_user:quant_password@localhost:5432/quant_trading
REDIS_URL=redis://localhost:6379/0
# API密钥(可选)
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key
POLYGON_API_KEY=your_polygon_key
# 安全配置
SECRET_KEY=your-super-secret-key-change-this-in-production# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f backend# 安装Poetry(Python依赖管理)
curl -sSL https://install.python-poetry.org | python3 -
# 安装后端依赖
poetry install
# 激活虚拟环境
poetry shell
# 启动数据库服务
docker-compose up -d postgres redis influxdb
# 运行数据库迁移
alembic upgrade head
# 启动后端服务
uvicorn backend.app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev- 前端应用: http://localhost:3000
- API文档: http://localhost:8000/docs
- API管理: http://localhost:8000/redoc
系统支持多种数据源,默认使用Yahoo Finance(免费):
# 获取历史数据
curl -X GET "http://localhost:8000/api/v1/market-data/historical/AAPL?start_date=2023-01-01&end_date=2023-12-31"
# 获取实时数据
curl -X GET "http://localhost:8000/api/v1/market-data/realtime/AAPL"创建自定义交易策略:
from app.strategies.base import BaseStrategy
from app.models.market_data import MarketData
class MyStrategy(BaseStrategy):
def __init__(self, config):
super().__init__(config)
self.name = "我的策略"
async def generate_signals(self, data: MarketData):
# 实现你的策略逻辑
pass
async def calculate_positions(self, signals):
# 计算仓位
passfrom app.services.backtest_service import BacktestService
# 创建回测实例
backtest = BacktestService()
# 运行回测
results = await backtest.run_backtest(
strategy=MyStrategy(),
symbol="AAPL",
start_date="2023-01-01",
end_date="2023-12-31",
initial_capital=100000
)
# 分析结果
print(f"总收益率: {results.total_return:.2%}")
print(f"夏普比率: {results.sharpe_ratio:.2f}")
print(f"最大回撤: {results.max_drawdown:.2%}")stock-trade/
├── backend/ # 后端应用
│ ├── app/
│ │ ├── api/ # API路由
│ │ ├── core/ # 核心配置
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务逻辑
│ │ ├── strategies/ # 交易策略
│ │ └── utils/ # 工具函数
│ ├── tests/ # 测试文件
│ └── Dockerfile
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── components/ # React组件
│ │ ├── hooks/ # 自定义hooks
│ │ ├── pages/ # 页面组件
│ │ └── services/ # API服务
│ └── package.json
├── data/ # 数据文件
│ ├── raw/ # 原始数据
│ ├── processed/ # 处理后数据
│ └── models/ # ML模型
├── notebooks/ # Jupyter notebooks
├── scripts/ # 部署脚本
├── memory-bank/ # 项目文档
├── docker-compose.yml
└── README.md
# 后端测试
cd backend
pytest
# 前端测试
cd frontend
npm test
# 集成测试
docker-compose -f docker-compose.test.yml up --abort-on-container-exit# 生成测试覆盖率报告
pytest --cov=app --cov-report=html
# 查看报告
open htmlcov/index.html- Prometheus: 指标收集 (http://localhost:9090)
- Grafana: 可视化监控 (http://localhost:3001)
- 健康检查: http://localhost:8000/health
# 查看应用日志
docker-compose logs -f backend
# 查看特定服务日志
docker-compose logs -f postgres我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细信息。
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
感谢以下开源项目和服务:
- FastAPI - 现代Python Web框架
- React - 用户界面库
- Yahoo Finance - 免费金融数据
- TA-Lib - 技术分析库
- 📧 Email: support@quanttrading.com
- 💬 讨论: GitHub Discussions
- 🐛 问题报告: GitHub Issues
- 📚 文档: 项目文档
- 基础架构和数据管道
- 市场数据获取和存储
- 策略开发框架
- 回测引擎
- 风险管理系统
- 实盘交易执行
- 机器学习集成
- 移动端应用
- 云端部署方案
⭐ 如果这个项目对你有帮助,请给我们一个星标!
Happy Trading! 📈