Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Python量化交易框架

一个功能完整、模块化设计的Python量化交易框架,支持策略开发、回测验证、实盘部署和风险管理,涵盖趋势跟踪、多因子、机器学习等多种策略类型,适用于加密货币和传统金融市场。

🌟 项目特点

  • 模块化架构:各功能模块完全解耦,易于扩展和维护
  • 双回测引擎:同时支持Backtrader专业回测和自定义轻量化回测框架
  • 多交易所支持:通过CCXT集成全球主流交易所,支持实盘与测试网环境
  • 完善的风险管理:包含仓位控制、动态止损、最大回撤监控等功能
  • 多样化策略:支持趋势跟踪、多因子、机器学习等多种策略类型
  • 实时监控:实盘交易时提供实时仓位和资产监控
  • 灵活配置:支持通过配置文件和命令行参数快速调整策略

🛠️ 技术栈

  • 核心语言:Python 3.10+
  • 数据处理:pandas, numpy, yfinance
  • 回测引擎:backtrader
  • 交易所接口:ccxt
  • 机器学习:scikit-learn
  • 可视化:matplotlib
  • 配置管理:python-dotenv
  • 任务调度:schedule

📁 项目结构

python-quant-trading-framework/
├── .gitignore                  # Git忽略文件
├── README.md                   # 项目说明文档
├── STRUCTURE.md                # 项目结构详细说明
├── requirements.txt            # 依赖包清单
├── main.py                     # 主程序入口(回测/实盘切换)
├── data_utils/                 # 数据工具模块
│   ├── __init__.py
│   └── data_loader.py          # 数据获取与预处理
├── strategies/                 # 策略模块
│   ├── __init__.py
│   ├── base_strategy.py        # 策略基类
│   ├── trend_strategies.py     # 趋势跟踪策略(双均线、布林带、MACD等)
│   ├── multi_factor_strategy.py# 多因子策略
│   └── ml_strategies.py        # 机器学习策略
├── backtest/                   # 回测模块
│   ├── __init__.py
│   ├── backtrader_engine.py    # Backtrader回测引擎
│   └── custom_backtester.py    # 自定义回测框架
├── risk_management/            # 风险管理模块
│   ├── __init__.py
│   ├── risk_manager.py         # 风险控制体系
│   └── stop_loss.py            # 止损策略
├── live_trading/               # 实盘交易模块
│   ├── __init__.py
│   ├── trading_client.py       # 交易接口封装
│   ├── strategy_engine.py      # 策略执行引擎
│   └── monitor.py              # 监控与告警系统
└── advanced/                   # 进阶功能模块
    ├── __init__.py
    ├── high_freq.py            # 高频交易相关(订单簿分析)
    └── multi_strategy.py       # 多策略组合

📊 策略类型

1. 趋势跟踪策略

  • 双均线策略:基于短期均线上穿/下穿长期均线生成交易信号
  • 布林带策略:利用价格波动带的突破信号进行交易
  • MACD策略:通过MACD指标的金叉/死叉信号识别趋势反转

2. 多因子策略

  • 结合基本面因子(如市盈率、市净率)和技术因子(如RSI、动量)
  • 通过因子权重配置优化选股逻辑

3. 机器学习策略

  • 基于历史数据训练预测模型
  • 支持决策树、随机森林、SVM等多种算法
  • 自动学习市场模式并生成交易信号

🚀 快速开始

环境搭建

  1. 安装依赖
pip install -r requirements.txt
  1. 配置API密钥(实盘模式需要)
# 创建.env文件
cp .env.example .env
# 编辑.env文件,填入交易所API密钥

1. 回测模式

示例:双均线策略回测

# main.py中的回测配置示例
strategy_params = {
    'fast_window': 5,    # 短期均线窗口
    'slow_window': 20,   # 长期均线窗口
    'risk_pct': 0.02     # 每笔交易风险百分比
}

results = run_backtest(
    strategy=DoubleMaStrategy,
    symbol="MSFT",
    start_date="2020-01-01",
    end_date="2023-01-01",
    **strategy_params
)

运行回测

python main.py --backtest

回测结果

  • 生成资金曲线和交易记录
  • 提供年化收益率、夏普比率、最大回撤等关键指标
  • 可视化显示策略表现和信号点

2. 实盘模式

示例:BTC/USDT实盘交易

# main.py中的实盘配置示例
strategy_params = {
    'fast_window': 5,
    'slow_window': 20,
    'risk_pct': 0.02
}

engine = LiveTradingEngine(
    strategy_params=strategy_params,
    trading_client=trading_client,
    symbols=["BTC/USDT", "ETH/USDT"],  # 交易对列表
    interval="1m"  # 时间间隔
)

运行实盘

python main.py --live

实盘特点

  • 支持多交易对同时监控
  • 实时计算技术指标和生成信号
  • 自动执行交易订单
  • 实时监控资产余额和持仓情况

🎛️ 风险管理

仓位控制

  • 基于风险百分比的仓位计算
  • 单笔交易风险不超过总资产的设定比例(默认2%)

止损策略

  • 固定止损:基于入场价格设置固定比例止损
  • 移动止损:随着价格有利变动动态调整止损位
  • 跟踪止损:根据市场波动自动调整止损水平

回撤监控

  • 实时监控账户最大回撤
  • 超过设定阈值时自动减少仓位或暂停交易

🔧 策略开发指南

创建自定义策略

  1. 继承策略基类
from strategies.base_strategy import BaseStrategy

class MyCustomStrategy(BaseStrategy):
    def __init__(self, params):
        super().__init__(params)
        # 初始化策略参数

    def generate_signal(self, data):
        # 实现交易信号生成逻辑
        # 返回1: 买入, -1: 卖出, 0: 无信号
        return signal
  1. 实现信号生成
  • 使用技术指标计算交易信号
  • 结合风险管理规则过滤信号
  1. 在main.py中配置
from strategies.my_custom_strategy import MyCustomStrategy

strategy_params = {
    # 配置自定义策略参数
}

# 回测或实盘使用该策略

📈 回测结果分析

回测完成后,会生成以下关键指标:

指标 说明
年化收益率 策略的年度化收益表现
夏普比率 风险调整后收益(越高越好)
最大回撤 策略历史最大亏损比例
胜率 盈利交易占总交易的比例
盈亏比 平均盈利/平均亏损
总交易次数 策略执行的总交易数量

免责声明:本项目仅供学习和研究使用,不构成任何投资建议。实盘交易存在风险,使用本框架进行实盘交易请自行承担风险。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages