一个功能完整、模块化设计的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 # 多策略组合
- 双均线策略:基于短期均线上穿/下穿长期均线生成交易信号
- 布林带策略:利用价格波动带的突破信号进行交易
- MACD策略:通过MACD指标的金叉/死叉信号识别趋势反转
- 结合基本面因子(如市盈率、市净率)和技术因子(如RSI、动量)
- 通过因子权重配置优化选股逻辑
- 基于历史数据训练预测模型
- 支持决策树、随机森林、SVM等多种算法
- 自动学习市场模式并生成交易信号
- 安装依赖
pip install -r requirements.txt- 配置API密钥(实盘模式需要)
# 创建.env文件
cp .env.example .env
# 编辑.env文件,填入交易所API密钥# 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回测结果
- 生成资金曲线和交易记录
- 提供年化收益率、夏普比率、最大回撤等关键指标
- 可视化显示策略表现和信号点
# 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%)
- 固定止损:基于入场价格设置固定比例止损
- 移动止损:随着价格有利变动动态调整止损位
- 跟踪止损:根据市场波动自动调整止损水平
- 实时监控账户最大回撤
- 超过设定阈值时自动减少仓位或暂停交易
- 继承策略基类
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- 实现信号生成
- 使用技术指标计算交易信号
- 结合风险管理规则过滤信号
- 在main.py中配置
from strategies.my_custom_strategy import MyCustomStrategy
strategy_params = {
# 配置自定义策略参数
}
# 回测或实盘使用该策略回测完成后,会生成以下关键指标:
| 指标 | 说明 |
|---|---|
| 年化收益率 | 策略的年度化收益表现 |
| 夏普比率 | 风险调整后收益(越高越好) |
| 最大回撤 | 策略历史最大亏损比例 |
| 胜率 | 盈利交易占总交易的比例 |
| 盈亏比 | 平均盈利/平均亏损 |
| 总交易次数 | 策略执行的总交易数量 |
免责声明:本项目仅供学习和研究使用,不构成任何投资建议。实盘交易存在风险,使用本框架进行实盘交易请自行承担风险。