Awesome Systematic Trading 详细部署教程

1. 项目简介

Awesome Systematic Trading 是一个精选的系统化交易(量化交易)资源集合库,汇集了用于研究、开发和运行系统化交易策略的优质论文、软件、书籍、文章等资源。该项目由 paperswithbacktest 团队维护,包含 108 个用于研究和实际交易的库和包,以及 4,843 篇已复现的论文策略。

核心特点:

  • 完整的资源索引:涵盖回测框架、交易机器人、技术指标、投资组合优化、数据源、经纪商 API 等多个类别
  • 实证复现结果:每个策略都附带实测的夏普比率等性能指标
  • 持续更新:社区驱动的资源集合,定期更新维护

注意:该项目本身是一个资源集合库(Awesome List),不是一个可直接运行的软件。因此,本教程主要讲解如何搭建用于量化交易的开发环境,以及如何使用相关的配套工具。

2. 环境准备

2.1 系统要求

根据官方开发环境文档,推荐使用以下配置:

组件 用途 说明
Git 版本控制 用于克隆和管理仓库
Miniconda Python 环境管理 推荐使用 Miniconda 管理 Python 环境
VSCode 集成开发环境 推荐使用 VSCode 作为 IDE
Python 运行环境 推荐 Python 3.8+

2.2 安装前置依赖

安装 Git:

1
2
3
4
5
6
7
8
# Ubuntu/Debian
sudo apt install git

# macOS
brew install git

# Windows
# 从 https://git-scm.com/download/win 下载安装

安装 Miniconda:

从 Miniconda 官网下载对应系统的安装包并安装。

安装 VSCode:

从 VSCode 官网下载安装,并安装以下扩展:

  • Python 扩展
  • Jupyter 扩展(如需使用 Notebook)

3. 获取项目

3.1 克隆仓库

1
2
git clone https://github.com/paperswithbacktest/awesome-systematic-trading.git
cd awesome-systematic-trading

3.2 创建 Python 环境

该项目使用 Miniconda 管理 Python 环境:

1
2
3
4
5
# 创建 conda 环境
conda create -n systrade python=3.8

# 激活环境
conda activate systrade

4. 配置开发环境

4.1 VSCode 配置

该仓库包含预配置的 VSCode 配置文件:

settings.json 配置:

  • editor.formatOnSave:设置为 true,保存文件时自动格式化代码
  • python.defaultInterpreterPath:指向 Miniconda Python 解释器路径

launch.json 配置:

  • 配置名称:“Current file”
  • 调试器类型:debugpy
  • 调试程序:当前打开的文件
  • Python 解释器路径:指向 Miniconda Python

4.2 选择 Python 解释器

在 VSCode 中选择正确的 Python 解释器:

  1. Ctrl+Shift+P(macOS 为 Cmd+Shift+P
  2. 输入 “Python: Select Interpreter”
  3. 选择 conda 环境中的解释器

5. 安装核心依赖包

该项目涉及多个 Python 包用于系统化交易实现:

5.1 基础依赖

1
2
3
4
5
# 数据分析和计算
conda install pandas numpy matplotlib scikit-learn

# 或者使用 pip
pip install pandas numpy matplotlib scikit-learn

5.2 交易相关库

1
2
3
4
5
6
7
8
# 投资组合和风险分析
pip install pyfolio quantstats

# 技术分析指标
pip install ta-lib

# 回测框架
pip install backtrader

5.3 推荐工具库

根据项目资源列表,以下库值得安装:

类别 推荐库 用途
回测框架 vectorbt 基于 pandas/numpy 的快速回测
回测框架 zipline 事件驱动回测系统
回测框架 backtesting.py 轻量级回测框架
事件驱动 vnpy 开源量化交易系统框架
数据源 yfinance Yahoo Finance 数据获取
数据源 AkShare 中国股票数据接口
投资组合 PyPortfolioOpt 投资组合优化
风险分析 pyfolio 投资组合和风险分析

6. 运行策略示例

6.1 浏览策略文件

仓库中的策略实现位于 static/strategies/ 目录下,包含以下示例策略:

策略名称 类型 说明
FED Model 宏观经济指标 使用收益率差距预测市场回报
FX Carry Trade 外汇套利 外汇套利交易策略
Value Factor CAPE Effect 价值策略 基于 CAPE 比率选择最低估值国家
Crude Oil Predicts Equity Returns 宏观经济指标 利用原油价格预测股票回报
Momentum Rotational System 动量策略 资产类别动量轮动

6.2 运行策略

在 VSCode 中运行策略:

  1. 打开 static/strategies/ 目录下的策略文件
  2. F5 使用调试器运行
  3. 在调试控制台中观察结果

注意:这些示例策略基于 QuantConnect 平台实现,继承自 QCAlgorithm 基类。如需在本地运行,可能需要适配相应的回测框架。

7. 使用 PWB Toolbox(推荐)

paperswithbacktest 团队开发了 pwb-toolbox 工具包,提供数据集、策略模板、执行模块和性能分析功能。

7.1 安装

1
pip install pwb-toolbox

需要 Python 3.10 或更高版本。

7.2 配置数据集访问

1
2
3
4
5
# 方式一:使用 PWB API Key
export PWB_API_KEY=your_api_key

# 方式二:登录 HuggingFace(数据集托管平台)
huggingface-cli login

7.3 加载数据集

1
2
3
4
5
6
7
8
9
import pwb_toolbox.datasets as pwb_ds

# 获取股票价格数据
df = pwb_ds.get_pricing(["AAPL", "MSFT", "GOOGL"])

# 加载不同资产类别数据集
df = pwb_ds.load_dataset("Bonds-Daily-Price")
df = pwb_ds.load_dataset("Stocks-Daily-Price")
df = pwb_ds.load_dataset("Cryptocurrencies-Daily-Price")

7.4 运行回测

1
2
3
4
5
6
7
8
9
10
11
import pwb_toolbox.backtesting as pwb_bt

# 运行投资组合回测
daily_nav_df = pwb_bt.run_portfolio(
strategies,
leverage=2,
initial_cash=100_000.0
)

# 生成报告
pwb_bt.generate_reports(daily_nav_df, reports_path)

8. 常见问题与解决方案

8.1 Python 解释器未找到

问题:VSCode 无法找到 Python 解释器。

解决方案:确保 Miniconda 已安装,且 settings.json 中的路径与系统匹配。

8.2 缺少依赖包

问题:运行时提示缺少包。

解决方案:使用 conda 或 pip 安装缺失的包:

1
2
3
conda install package_name
# 或
pip install package_name

8.3 调试不工作

问题:F5 无法启动调试。

解决方案:验证 launch.json 配置,确保 debugpy 已安装。

9. 部署架构总结

环节 工具/配置 说明
环境管理 Miniconda Python 3.8+ 环境
IDE VSCode 含预配置的调试设置
核心依赖 pandas/numpy/backtrader 数据分析和回测
数据访问 pwb-toolbox 多资产类别数据集
策略示例 static/strategies/ 基于论文的实现

需要注意的是,Awesome Systematic Trading 本质上是一个资源导航项目,部署工作的核心是搭建能够运行其推荐工具和策略的开发环境。你可以通过 Miniconda + VSCode 搭建基础环境,再配合 pwb-toolbox 获取数据和运行回测。建议从项目中的策略示例开始,逐步探索 108 个推荐库,构建适合自己的量化交易工具链。