轻量级量化回测框架 - PTrade API本地实现
完整模拟PTrade平台API,策略可无缝迁移。详情参考:ptradeAPI
| SimTradeLab | PTrade | |
|---|---|---|
| 速度 | 快100–160倍 | 基准 |
| 启动 | 亚秒级(数据常驻内存) | 分钟级 |
| API覆盖 | 62个回测/研究API | 全平台 |
| 策略迁移 | 零代码修改 | 零代码修改 |
| 运行环境 | 本地、免费、开源 | 云端、授权 |
核心能力:
- ✅ 62个API — 股票日/分钟线回测场景100%覆盖
- ⚡ 100-160倍性能提升 — 本地回测比PTrade平台快100-160倍
- 🚀 数据常驻内存 — 单例模式,首次加载后常驻,二次运行秒级启动
- 💾 多级智能缓存 — LRU缓存(MA/VWAP/复权/历史数据),命中率>95%
- 🧠 智能数据加载 — AST静态分析策略代码,按需加载数据,节省内存
- 🔧 生命周期控制 — 7个生命周期阶段,严格模拟PTrade的API调用限制
- 📊 完整统计报告 — 收益、风险(夏普/索提诺/卡玛)、交易明细、FIFO分红税、CSV导出
- 🔌 多市场支持 — 内置 A 股 / 美股市场配置,自动适配交易规则(T+1、涨跌停、手数、手续费)
- 🌐 国际化 — 回测输出支持中文/英文/德文
SimTradeDesk 是基于 SimTradeLab 打造的专业桌面应用 — 无需编程。
| 功能 | SimTradeLab(本仓库) | SimTradeDesk |
|---|---|---|
| 目标用户 | 开发者 & 量化工程师 | 所有交易者 |
| 操作界面 | Python API | 桌面 GUI |
| 策略编辑 | 代码编辑器 | 内置语法高亮编辑器 |
| 可视化 | PNG 图表 | 交互式实时图表 |
| 数据管理 | 手动配置 | 一键下载与更新 |
| 参数调优 | 编写代码 | 可视化优化器 |
pip install simtradelab
# 可选:技术指标(需要系统级 ta-lib)
pip install simtradelab[indicators]
# 可选:参数优化器
pip install simtradelab[optimizer]数据获取: 使用 SimTradeData 获取A股和美股历史数据。
运行回测:
from simtradelab.backtest.runner import BacktestRunner
from simtradelab.backtest.config import BacktestConfig
config = BacktestConfig(
# --- 必填 ---
strategy_name='my_strategy', # 策略文件夹名(strategies/ 下的目录名)
start_date='2024-01-01', # 回测开始日期
end_date='2024-12-31', # 回测结束日期
# --- 资金与市场 ---
# initial_capital=100000.0, # 初始资金(必须 > 0)
# market='CN', # 市场: 'CN'(A股) | 'US'(美股)
# broker_profile='auto', # 券商API口径: 'auto' | 'guosheng' | 'dongguan' | 'shanxi'
# t_plus_1=None, # T+1覆盖: None=市场默认(CN=True, US=False)
# benchmark_code='', # 基准代码,空串=市场默认基准
# --- 频率 ---
# frequency='1d', # K线频率: '1d'(日线) | '1m'(分钟线)
# --- 路径 ---
# data_path='~/.simtradelab/data', # 行情数据目录
# strategies_path='./strategies', # 策略根目录
# --- 性能 ---
# enable_multiprocessing=True, # 启用多进程数据加载
# num_workers=None, # 进程数(None=自动, 必须 >= 1)
# use_data_server=True, # 使用内存数据服务(单例模式)
# --- 输出 ---
# enable_charts=True, # 生成PNG图表
# enable_logging=True, # 写入日志文件
# enable_export=False, # 导出交易明细CSV
# --- 沙箱与国际化 ---
# sandbox=True, # PTrade沙箱模式: 限制import和内置函数
# locale='auto', # 日志语言: 'zh' | 'en' | 'de'(自动:CN市场→zh,其他→系统语言)
# optimization_mode=False, # 优化模式: 跳过策略校验/数据分析/日志配置(由优化器管理)
# --- 入口文件 ---
# strategy_file='backtest.py', # 入口文件: 'backtest.py' | 'live.py'
)
runner = BacktestRunner()
report = runner.run(config=config)62个回测/研究API — 股票回测场景100%覆盖。
| 类别 | API |
|---|---|
| 交易 | order, order_target, order_value, order_target_value, cancel_order, get_positions, get_trades |
| 数据 | get_price, get_history, get_fundamentals, get_stock_info |
| 板块 | get_index_stocks, get_industry_stocks, get_stock_blocks |
| 指标 | get_MACD, get_KDJ, get_RSI, get_CCI |
| 配置 | set_benchmark, set_commission, set_slippage, set_universe, set_parameters |
| 生命周期 | initialize, before_trading_start, handle_data, after_trading_end |
双许可证 模式:
- AGPL-3.0 — 免费用于开源项目和个人研究。查看 LICENSE | 中文说明
- 商业许可证 — 用于闭源/商业产品。查看 LICENSE-COMMERCIAL.md | 中文说明 或联系 kayou@duck.com
- 🐛 报告问题
- 💻 实现缺失的API功能
- 📚 完善文档
详见 CONTRIBUTING.md。
SimTradeLab 是社区独立开发的开源回测框架,灵感来源于 PTrade 的事件驱动设计。不包含 PTrade 的源代码、商标或受保护内容,不隶属于 PTrade。用户需自行确保合规。

