QSTrader:强大的开源量化交易回测框架

【免费下载链接】qstrader QuantStart.com - QSTrader backtesting simulation engine. 【免费下载链接】qstrader 项目地址: https://gitcode.com/gh_mirrors/qs/qstrader

QSTrader 是一个基于 Python 的开源量化交易回测框架,由 QuantStart 公司开发。该项目采用模块化设计理念,将信号生成、投资组合构建、风险管理、执行和模拟经纪账户等功能分离,为用户提供了一个高度可定制化的回测平台。

核心特性

QSTrader 具有以下核心特性:

  • 模块化设计:允许用户根据需要替换或扩展各个模块
  • 回测引擎:基于时间表驱动的回测引擎,支持长期和短期的股票和 ETF 交易策略
  • 性能统计:能够生成典型的"tearsheet"性能评估报告,并支持通过 JSON 导出统计数据
  • 开源免费:采用 MIT 许可证,完全免费且无限制,适用于研究和商业应用

安装方法

QSTrader 支持 Python 3.9、3.10、3.11 和 3.12 版本。推荐使用 conda 或 venv 创建虚拟环境进行安装:

# 使用 conda 创建环境
conda create -n backtest python==3.9
conda activate backtest
pip3 install qstrader

# 或者使用 venv
python -m venv backtest
source backtest/bin/activate
pip3 install qstrader

快速入门示例

QSTrader 提供了一个经典的 60/40 股票/债券投资组合回测示例。以下是一个简单的使用示例:

import os
import pandas as pd
import pytz

from qstrader.alpha_model.fixed_signals import FixedSignalsAlphaModel
from qstrader.asset.equity import Equity
from qstrader.asset.universe.static import StaticUniverse
from qstrader.data.backtest_data_handler import BacktestDataHandler
from qstrader.data.daily_bar_csv import CSVDailyBarDataSource
from qstrader.statistics.tearsheet import TearsheetStatistics
from qstrader.trading.backtest import BacktestTradingSession

# 设置回测时间范围
start_dt = pd.Timestamp('2003-09-30 14:30:00', tz=pytz.UTC)
end_dt = pd.Timestamp('2019-12-31 23:59:00', tz=pytz.UTC)

# 构建策略资产和 universe
strategy_symbols = ['SPY', 'AGG']
strategy_assets = ['EQ:%s' % symbol for symbol in strategy_symbols]
strategy_universe = StaticUniverse(strategy_assets)

# 设置数据源
csv_dir = os.environ.get('QSTRADER_CSV_DATA_DIR', '.')
data_source = CSVDailyBarDataSource(csv_dir, Equity, csv_symbols=strategy_symbols)
data_handler = BacktestDataHandler(strategy_universe, data_sources=[data_source])

# 构建固定信号 Alpha 模型(60% SPY, 40% AGG)
strategy_alpha_model = FixedSignalsAlphaModel({'EQ:SPY': 0.6, 'EQ:AGG': 0.4})

# 运行策略回测
strategy_backtest = BacktestTradingSession(
    start_dt,
    end_dt,
    strategy_universe,
    strategy_alpha_model,
    rebalance='end_of_month',
    long_only=True,
    cash_buffer_percentage=0.01,
    data_handler=data_handler
)
strategy_backtest.run()

项目结构

QSTrader 采用清晰的模块化结构,主要包含以下核心模块:

  • alpha_model:信号生成模块,包括固定信号和单一信号模型
  • asset:资产定义模块,支持股票、现金等资产类型
  • broker:经纪商模拟模块,包含费用模型和投资组合管理
  • data:数据处理模块,支持 CSV 数据源和回测数据处理器
  • execution:订单执行模块,包含市场订单等执行算法
  • portcon:投资组合构建模块,包含优化器和订单规模计算
  • signals:信号处理模块,支持动量、移动平均等信号类型
  • statistics:统计模块,生成性能报告和 tearsheet

最新更新

根据 CHANGELOG.md 文件,QSTrader 的最新版本 0.3.0 主要更新包括:

  • 更新依赖包以支持 numpy v2.0.0
  • 修复了多处 NaN 值处理问题
  • 更新了测试套件以确保兼容性

使用建议

对于想要开始使用 QSTrader 的用户,建议:

  1. 从简单的示例策略开始,如 examples/sixty_forty.py
  2. 逐步理解各个模块的功能和接口
  3. 根据需要定制或扩展特定模块
  4. 利用提供的测试用例来验证自定义功能

QSTrader 的模块化设计使其成为学习和实践量化交易策略的理想平台,无论是学术研究还是实际交易策略开发,都能提供强大的支持。

【免费下载链接】qstrader QuantStart.com - QSTrader backtesting simulation engine. 【免费下载链接】qstrader 项目地址: https://gitcode.com/gh_mirrors/qs/qstrader

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐