Skip to content

developmentmachine/Stock-Trade

Repository files navigation

量化交易系统 (Quantitative Trading System)

🚀 现代化的量化交易平台 - 为初学者设计的完整解决方案

Python FastAPI React Docker License

📋 项目概述

这是一个面向量化交易初学者的现代化交易系统,集成了数据获取、策略开发、回测分析、风险管理和实盘交易等完整功能。采用最新的技术栈和最佳实践,提供专业级的量化交易体验。

🎯 核心特性

  • 🔄 实时数据获取: 支持多数据源(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

1. 克隆项目

git clone <your-repo-url>
cd Stock-Trade

2. 环境配置

创建环境变量文件:

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

3. 使用Docker启动(推荐)

# 启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f backend

4. 手动安装(开发环境)

后端设置

# 安装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 8000

前端设置

cd frontend

# 安装依赖
npm install

# 启动开发服务器
npm run dev

5. 访问应用

📖 使用指南

数据获取

系统支持多种数据源,默认使用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):
        # 计算仓位
        pass

回测分析

from 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

📊 监控与运维

系统监控

日志管理

# 查看应用日志
docker-compose logs -f backend

# 查看特定服务日志
docker-compose logs -f postgres

🤝 贡献指南

我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细信息。

开发流程

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📝 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

感谢以下开源项目和服务:

📞 支持与反馈

🗺️ 路线图

  • 基础架构和数据管道
  • 市场数据获取和存储
  • 策略开发框架
  • 回测引擎
  • 风险管理系统
  • 实盘交易执行
  • 机器学习集成
  • 移动端应用
  • 云端部署方案

⭐ 如果这个项目对你有帮助,请给我们一个星标!

Happy Trading! 📈

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published