
回测框架库
做量化交易,回测是第一步。你需要一个能模拟历史行情的工具。Backtrader是Python里最流行的回测库之一,支持股票、期货、外汇等多种品种。它允许你写策略类,用next方法处理每根K线。Backtrader内置了经纪商模拟,可以设置佣金、滑点。策略跑完,它自动生成收益曲线、夏普比率、最大回撤。
vn.py是国内量化圈的老牌项目。它不只是回测,更是一套完整的交易系统。vn.py连接了CTP、飞马、中泰XTP等期货和股票接口。你可以在同一套代码里做回测、实盘、风控。vn.py的图形界面让手动交易和自动交易都能兼顾。

Zipline是Quantopian留下的回测引擎,后来被社区维护。它适合做多因子选股,内置了Pipeline机制,方便处理股票横截面数据。Zipline对期货支持弱一些,但股票回测效率很高。
数据获取与处理库
量化交易离不开数据。股票数据可以用Tushare、AkShare、Baostock。Tushare需要积分,但数据全面,包括日线、分钟线、财务数据。AkShare完全免费,爬取新浪、东方财富的公开数据,股票期货都覆盖。Baostock提供历史K线,适合回测。
期货数据更专业。你可以用vn.py的CTP接口订阅实时行情,历史数据可以从交易所官网下载,或者用RQData。RQData是米筐的数据库,支持股票、期货、期权,数据质量高,但收费。
数据处理用Pandas和NumPy。Pandas处理时间序列,重采样、滚动计算、对齐索引。NumPy做矩阵运算,计算技术指标时速度更快。
技术指标与统计库
TA-Lib是技术指标的金标准。它用C语言实现,Python封装后速度极快。你调用talib.SMA、talib.RSI、talib.MACD,一行代码算出指标。TA-Lib支持超过150种指标,股票期货通用。
Statsmodels用于统计建模。你做协整检验、卡尔曼滤波、ARIMA预测,Statsmodels都有。它和Pandas无缝集成,适合做配对交易、统计套利。
Scikit-learn做机器学习。你用随机森林预测期货价格方向,用聚类分析股票板块。Scikit-learn的API统一,fit、predict、transform三步走。
实盘交易接口库
股票实盘,你可以用easytrader。它模拟券商客户端,支持华泰、银河、同花顺。easytrader操作Windows窗口,自动填单。期货实盘,vn.py的CTP接口最稳定。CTP是上期技术的交易接口,国内期货公司都支持。
如果你做数字货币,ccxt库连接了上百家交易所。但股票期货交易,ccxt不适用。
代码示例 用Backtrader回测双均线策略
import backtrader as bt
class DualMa(bt.Strategy):
params = (('fast', 5), ('slow', 20),)
def __init__(self):
self.fast_ma = bt.indicators.SMA(self.data.close, period=self.p.fast)
self.slow_ma = bt.indicators.SMA(self.data.close, period=self.p.slow)
self.crossover = bt.indicators.CrossOver(self.fast_ma, self.slow_ma)
def next(self):
if not self.position:
if self.crossover > 0:
self.buy(size=1)
elif self.crossover < 0:
self.close()
cerebro = bt.Cerebro()
data = bt.feeds.GenericCSVData(dataname='rb.csv', dtformat='%Y-%m-%d', datetime=0, open=1, high=2, low=3, close=4, volume=5, openinterest=-1)
cerebro.adddata(data)
cerebro.addstrategy(DualMa)
cerebro.broker.setcash(100000)
cerebro.run()
print('最终资金: %.2f' % cerebro.broker.getvalue())
这段代码用螺纹钢期货日线数据,5日均线上穿20日均线买入,下穿卖出。回测结果直接打印资金曲线。
选择库的三个原则
第一,看你的交易频率。高频交易用vn.py加C++扩展。中低频用Backtrader或Zipline。第二,看你的数据源。股票用Tushare加Pandas,期货用CTP加vn.py。第三,看你的策略复杂度。简单均线用TA-Lib,机器学习用Scikit-learn。
量化交易没有万能库。组合使用才是常态。Backtrader回测,vn.py实盘,TA-Lib算指标,Pandas洗数据。这套组合能覆盖股票期货的大部分场景。