在量化交易中,Python 因其强大的数据处理能力、丰富的库生态系统和优秀的可扩展性,成为最受欢迎的编程语言之一。以下是量化交易常用的核心 Python 库,按功能分类整理:
学习
pandas
+
numpy
基础使用
yfinance
或
akshare
获取数据用
pandas-ta
添加技术指标用
matplotlib
或
mplfinance
画图分析用
backtrader
或
vectorbt
做策略回测进阶:引入
scikit-learn
做因子建模实盘尝试:通过
vn.py
或
ccxt
接入交易
一、基础数据处理与分析
- pandas 用途:处理时间序列数据、行情数据、财务数据等。
特点:支持 DataFrame 和 Series,适合表格型数据操作。内置时间序列支持(如
,resample
,rolling
)。shift
典型应用:df['returns'] = df['close'].pct_change()
df.resample('D').last() - numpy 用途:高效数值计算,数组运算。
特点:提供多维数组对象
,性能远高于原生列表。支持广播、向量化操作,提升计算效率。ndarray
二、数据可视化
- matplotlib 最基础的绘图库,适合绘制 K 线图、收益曲线、回撤图等。
示例:import matplotlib.pyplot as plt
plt.plot(df['close'])
plt.title("Price Chart")
plt.show() - seaborn 基于 matplotlib 的高级统计图表库,美观易用。
适合相关性热力图、分布图等。 - plotly / mplfinance
mplfinance:专门用于绘制专业级 K 线图(OHLC、蜡烛图)。
示例:import mplfinance as mpf
mpf.plot(df, type='candle', volume=True)
plotly:交互式图表,适合构建动态策略监控面板。
三、金融数据获取
- yfinance 免费获取 Yahoo Finance 数据(股票、ETF、指数等)。
示例:import yfinance as yf
data = yf.download("AAPL", start="2020-01-01", end="2024-01-01") - tushare / baostock(A股专用)
tushare:提供中国股市的行情、基本面、宏观经济数据(需注册 token)。
baostock:免费 A 股数据接口,无需付费,适合初学者。 - akshare 开源免费的中文金融数据接口,覆盖股票、基金、期货、债券、加密货币等。
示例:import akshare as ak
stock_zh_a_daily = ak.stock_zh_a_daily(symbol="sh600000")
四、策略开发与技术分析
- ta-lib(Technical Analysis Library)经典技术指标库:MACD、RSI、布林带、KDJ、均线等。
安装注意:需先安装 C 库或使用
的 Python 封装(推荐用ta-lib
包)。TA-Lib
示例:import talib
close = df['close'].values
rsi = talib.RSI(close, timeperiod=14) - pandas-ta 纯 Python 实现的技术分析库,依赖少,易安装。
支持超过 130 个指标,API 更友好。
示例:import pandas_ta as ta
df.ta.rsi(length=14, append=True)
五、回测框架(Backtesting)
- backtrader 功能强大、灵活的回测引擎,支持多资产、多时间帧、事件驱动。
支持自定义策略、手续费、滑点、仓位管理。
示例:import backtrader as bt
class MyStrategy(bt.Strategy):
def next(self):
if self.data.close[0] > self.sma[0]:
self.buy() - zipline(由 Quantopian 开发)支持美国市场历史数据回测,结构严谨。
可与 Jupyter Notebook 集成,适合研究型策略。缺点:对 A 股支持较弱。 - vectorbt 基于 NumPy 和 Pandas 构建,速度快,适合高频或参数扫描。
支持向量化回测(非事件驱动),适合简单策略快速验证。
示例:import vectorbt as vbt
entries = close > close.rolling(20).mean()
pf = vbt.Portfolio.from_signals(close, entries, exits)
print(pf.total_return())
六、机器学习 & 预测建模
- scikit-learn:用于特征工程、分类/回归模型(如预测涨跌、聚类选股)。
- 常见应用:
- SVM、随机森林判断趋势方向
- PCA 降维处理
- K-Means 聚类分析板块轮动
- statsmodels:时间序列分析,如 ARIMA、GARCH、OLS 回归、协整检验。
- 适用于配对交易、均值回归策略建模。
- xgboost / lightgbm / catboost:高性能梯度提升树模型,常用于因子挖掘和价格预测。
- tensorflow / pytorch:深度学习模型(LSTM、Transformer),用于高频预测、情绪分析等高级场景。
七、实时交易与连接券商 API
- ccxt:连接全球多个加密货币交易所(如 Binance、OKX、Coinbase)。
- 统一 API 接口,方便实现跨平台交易。
- vn.py(中文社区主流):开源量化交易平台框架,支持:
- 股票、期货、期权、数字货币
- 多种券商/交易所接入(盈透、SimNow、华宝等)
- 支持实盘交易、风控模块、GUI 界面
- alpaca-trade-api / ib_insync:
- alpaca:美股免佣金 API,适合自动化交易。
- ib_insync:连接 Interactive Brokers(盈透证券),支持全球市场。
八、辅助工具
| 库名 | 用途 |
|
/ |
|
处理时区和时间戳 |
|
记录交易日志 |
|
/ |
|
保存训练好的模型 |
|
连接数据库存储历史数据 |
|
/ |
|
定时任务执行 |
推荐学习路径(新手 → 进阶)
学习
pandas + numpy 基础 使用 yfinance 或 akshare 获取数据 用 pandas-ta 添加技术指标 用 matplotlib 或 mplfinance 画图分析 用 backtrader 或 vectorbt 做策略回测 进阶:引入 scikit-learn 做因子建模 实盘尝试:通过 vn.py 或 ccxt 接入交易
推荐资源
GitHub 项目:
vn.py
backtrader
akshare
书籍:
《Python for Finance》—— Yves Hilpisch
《量化交易:如何建立自己的算法交易事业》—— Ernest Chan


雷达卡


京公网安备 11010802022788号







