
数据获取库
yfinance
yfinance 是一个轻量级库,用于从 Yahoo Finance 下载历史市场数据。它支持股票、指数、期货和外汇,提供 OHLCV(开盘、最高、最低、收盘、成交量)数据。安装简单:pip install yfinance。使用方法:
import yfinance as yf
data = yf.download("AAPL", start="2023-01-01", end="2023-12-31")
print(data.head())
ccxt
ccxt 是一个加密货币交易库,支持 100+ 交易所。对于期货和股票,它提供实时行情和交易接口。安装:pip install ccxt。示例:
import ccxt
binance = ccxt.binance()
ohlcv = binance.fetch_ohlcv("BTC/USDT", "1d")
akshare
akshare 是一个专注于中国市场的金融数据接口库,覆盖 A 股、港股、美股、期货、期权等。数据源包括东方财富、新浪财经等。安装:pip install akshare。示例:
import akshare as ak
stock_zh_a_hist = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20230101", end_date="20231231")
print(stock_zh_a_hist.head())
数据处理与计算库
pandas
pandas 是数据分析和处理的核心库,用于数据清洗、转换、合并和聚合。它提供 DataFrame 结构,方便时间序列操作。安装:pip install pandas。常用操作:

import pandas as pd
df = pd.read_csv("data.csv")
df["returns"] = df["close"].pct_change()
df["ma20"] = df["close"].rolling(20).mean()
numpy
numpy 提供高效的数值计算,用于数组运算和数学函数。安装:pip install numpy。在技术指标计算中常用:
import numpy as np
log_returns = np.log(df["close"] / df["close"].shift(1))
volatility = np.std(log_returns) * np.sqrt(252)
技术分析库
TA-Lib
TA-Lib 是技术指标计算的标准库,包含 150+ 指标:MACD、RSI、布林带、移动平均线等。安装需要编译,Windows 可用 pip install ta-lib(需预装 C 库)。使用示例:
import talib
close = df["close"].values
rsi = talib.RSI(close, timeperiod=14)
macd, signal, hist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
pandas-ta
pandas-ta 是基于 pandas 的技术分析库,扩展了更多指标,安装简单:pip install pandas-ta。
import pandas_ta as ta
df.ta.macd(append=True)
df.ta.rsi(append=True)
回测与交易框架
backtrader
backtrader 是一个功能强大的回测框架,支持策略编写、数据馈送、执行引擎和可视化。安装:pip install backtrader。基本结构:
import backtrader as bt
class MyStrategy(bt.Strategy):
def next(self):
if self.data.close[0] > self.sma[0]:
self.buy()
cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
data = bt.feeds.YahooFinanceData(dataname="AAPL")
cerebro.adddata(data)
cerebro.run()
zipline
zipline 是 Quantopian 开发的事件驱动回测库,适合股票和期货,支持实时数据(需配置)。安装:pip install zipline。
可视化库
matplotlib
matplotlib 是最基础的绘图库,用于绘制价格图表、指标和回测结果。安装:pip install matplotlib。绘制 K 线图:
import matplotlib.pyplot as plt
import mpl_finance as mpf
fig, ax = plt.subplots()
mpf.candlestick_ohlc(ax, df[['date', 'open', 'high', 'low', 'close']].values, width=0.6)
plt.show()
plotly
plotly 提供交互式图表,适合 Web 端展示。安装:pip install plotly。示例:
import plotly.graph_objects as go
fig = go.Figure(data=[go.Candlestick(x=df["date"], open=df["open"], high=df["high"], low=df["low"], close=df["close"])])
fig.show()
实时数据与交易接口
websocket-client
websocket-client 用于连接交易所的 WebSocket 接口,获取实时行情。安装:pip install websocket-client。
ib_insync
ib_insync 是 Interactive Brokers 的 API 封装,支持股票、期货和期权交易。安装:pip install ib_insync。
机器学习和预测库
scikit-learn
scikit-learn 用于构建预测模型,如回归、分类。安装:pip install scikit-learn。
tensorflow / pytorch
深度强化学习用于量化交易,安装:pip install tensorflow 或 pip install torch。
其他实用库
requests
requests 用于 HTTP 请求,从 API 获取数据。
beautifulsoup4
beautifulsoup4 用于网页抓取,从静态网站提取数据。
schedule
schedule 用于定时任务,比如定时获取数据或运行策略。
环境管理
virtualenv / conda
推荐使用虚拟环境隔离依赖,避免版本冲突。
jupyter
jupyter 用于交互式开发和测试,方便快速原型。
上述库覆盖了数据获取、数据处理、技术分析、回测、可视化和交易执行。根据具体需求,选择合适的库组合。开发时注意库的兼容性和版本更新,定期维护。