
书籍推荐
Python与量化实战类
Python金融大数据分析(Yves Hilpisch)从数据获取、清洗到回测框架搭建,覆盖股票与期货的因子计算、风险评估。书中代码演示使用pandas、NumPy、matplotlib,适合构建多品种策略。
量化投资以Python为工具(蔡立耑)侧重技术指标与统计套利,提供期货跨期、跨品种套利的完整案例。读者能学到如何用statsmodels做协整检验,用backtrader回测。

Python机器学习与量化交易(张浩)将随机森林、LSTM应用于股票价格预测和期货波动率建模,代码可直接运行。
策略与理论经典
主动投资组合管理(Richard Grinold)提出Alpha与风险模型框架,是股票多因子和期货管理期货策略的理论基石。
宽客人生(Emanuel Derman)从物理学家转型华尔街宽客的视角,讲述衍生品定价与风险管理的实战教训。
波动率交易(Euan Sinclair)专注期权与期货波动率策略,包含大量Python实现。
统计套利(Andrew Pole)从配对交易到期货价差回归,提供完整的数学推导与交易规则。
期货与衍生品专题
期货市场技术分析(John Murphy)系统讲解期货图表形态、持仓量与资金管理。
期权、期货及其他衍生产品(John Hull)是定价与对冲的权威教材,量化工程师必备。
商品期货量化交易(李强)聚焦国内期货市场,涵盖CTP接口、tick级回测与高频因子。
程序语言推荐
Python
量化金融最流行语言。库生态完整:pandas处理时间序列,NumPy加速矩阵运算,scikit-learn做机器学习,statsmodels做统计检验,zipline/backtrader用于回测,ccxt连接期货交易所。开发效率高,适合中低频股票与期货策略。以下代码用Python计算期货主力合约的ATR止损。
import pandas as pd
import numpy as np
df = pd.read_csv('rb_main.csv')
df['tr'] = np.maximum(df['high'] - df['low'],
np.maximum(abs(df['high'] - df['close'].shift()),
abs(df['low'] - df['close'].shift())))
df['atr'] = df['tr'].rolling(14).mean()
df['stop'] = df['close'] - 2 * df['atr']
print(df[['close','atr','stop']].tail())
R
统计分析与可视化极强,quantmod、TTR、PerformanceAnalytics包提供期货数据下载、技术指标和回测报告。适合学术研究中的因子有效性检验。
C++
低延迟期货交易与高频策略首选。需要手动管理内存,使用Boost、QuickFIX连接交易所,搭配Python做原型验证。
Julia
新兴高性能语言,语法接近Python,速度接近C。QuantLib.jl、JuliaDB适合大规模期货回测。
MATLAB
金融工具箱提供期货定价、风险管理函数,但商业授权昂贵,逐步被开源替代。
股票与期货的量化工具链
数据源:股票用Tushare、AkShare,期货用CTP、飞马。
回测引擎:股票用Backtrader、Vectorbt,期货用vn.py、PyAlgoTrade。
执行接口:股票用easytrader,期货用vn.py对接CTP。
风控模块:单品种止损、组合VaR、期货保证金监控。
学习路径建议
先掌握Python基础与pandas,再读Python金融大数据分析,随后用backtrader复现股票双均线策略。转向期货时,读商品期货量化交易,理解tick数据与保证金制度。之后学习主动投资组合管理构建多因子模型。最终根据策略频率选择C++或Julia优化性能。
常见错误与规避
股票策略忽略停牌与涨跌停,期货策略忽略主力合约换月。回测过拟合表现为夏普比率过高但实盘亏损,解决方法是样本外测试与滚动窗口。期货杠杆放大回撤,必须加入动态仓位管理。Python的GIL限制多线程高频,改用多进程或C++扩展。
代码示例:期货跨期套利信号
import pandas as pd
df1 = pd.read_csv('rb2401.csv')
df2 = pd.read_csv('rb2405.csv')
spread = df1['close'] - df2['close']
zscore = (spread - spread.rolling(60).mean()) / spread.rolling(60).std()
signal = pd.Series(0, index=spread.index)
signal[zscore > 2] = -1
signal[zscore < -2] = 1
print(signal.value_counts())
以上书籍与语言组合能支撑股票、期货量化策略从研究到实盘。Python作为主力语言,C++处理延迟敏感任务,R与Julia辅助统计研究。