量化投资全景
从数据到决策
一份系统、详实的量化投资学习指南。覆盖核心概念、经典策略模板与代码实战、风控技巧、国内监管注意事项,以及从入门到进阶的完整学习路径。
什么是量化投资?
量化投资是通过数学模型、统计分析和计算机技术进行投资决策的现代方法。核心公式:数据 + 模型 + 程序 + 交易。将投资逻辑写成可计算的规则,让程序客观、可重复地决定何时买、何时卖、风险如何控制。
量化投资 vs 传统投资
| 对比维度 | 量化投资 | 传统(主观)投资 |
|---|---|---|
| 决策依据 | 历史数据、统计规律、数学模型 | 经验、研报、消息、直觉 |
| 投资广度 | 广度优先(全市场多品种扫描) | 深度优先(少数股票/品种) |
| 执行方式 | 程序执行,纪律性强 | 人工下单,易受情绪影响 |
| 风险管理 | 基于模型的科学风险管理 | 基于经验的风险管理 |
| 情绪影响 | 无情绪影响 | 易受恐惧贪婪干扰 |
| 可验证性 | 历史回测可验证策略有效性 | 难复现,说不清为何赚 |
| 收益来源 | 统计套利、趋势、因子溢价 | 选股能力、择时眼光 |
发展历程
理论奠基
马科维茨投资组合理论、CAPM资本资产定价模型相继提出,为量化投资奠定理论基础。
大奖章传奇
詹姆斯·西蒙斯管理的大奖章基金年均收益率高达35%(考虑44%提成后超60%),远超巴菲特同期约20%的年复合回报。
国内起步
国内发行第一只量化产品,标志着中国量化投资起步。
对冲时代开启
沪深300股指期货上市,2012年被业内视为中国对冲基金元年。
量化超越主观
量化策略首度超越主观策略成为行业主导,百亿级量化私募数量首超传统主观多头私募,公私募量化合计规模接近2万亿元。AI正深刻改变因子挖掘与策略优化各环节。
四大核心要素
数据层
行情数据(OHLCV)、财务数据、资金流数据、另类数据(舆情、卫星图像等)。预处理含缺失值填充、复权处理、剔除ST/停牌股。
策略层
因子研究、信号生成、模型构建、回测验证。头部机构采用三层架构:因子挖掘 → 模型合成 → 执行管理。
执行层
订单管理、成本控制(手续费、滑点、冲击成本)、券商API对接(QMT/PTrade)、速度优化(FPGA、托管机房)。
风控层
仓位管理(单笔最大亏损2%)、止损机制(ATR止损)、黑名单机制、熔断机制、极端行情压力测试。
十大策略流派
统计套利
中高门槛利用资产间协整性,做多低估、做空高估,赌价差回归。70-80%交易在1-3天内完成价差收敛,收益与大盘涨跌无关。
趋势跟踪
适合入门相信"趋势是朋友",顺势交易。典型模型:双均线交叉、布林带突破、唐奇安通道。单边行情表现突出,盈亏比可达3:1。
均值回归
适合入门押注价格围绕均值波动,过度偏离时反向操作。典型模型:RSI超买超卖、KDJ、配对交易、Z-Score模型。适合震荡市。
高频交易
极高门槛微秒级速度捕捉极短期价差,依靠硬件优势获利。需投入千万级资金建设机房、FPGA芯片。仅限顶级量化私募和券商自营。
多因子模型
机构主流从海量数据中挖掘价值、成长、动量、质量、低波等因子打分选股。基于Transformer的深度学习模型可构建年化超额收益超19%的选股组合。
市场中性
中低频多空头寸使组合Beta约等于0,剥离市场波动,纯粹获取选股Alpha。2022年中性策略平均收益9.6%,年化波动率通常低于10%。
CTA策略
危机Alpha投资期货市场,核心是趋势跟踪。2020年3月股灾中CTA平均收益12%。与其他策略相关性低,适合配置10-20%仓位作为"保险"。
机器学习策略
前沿方向使用神经网络、强化学习挖掘非线性市场规律。典型应用:NLP情绪分析、Transformer深度选股、强化学习组合优化。过拟合风险高。
常用量化平台对比
| 平台 | 定位 | 费用 | 核心特点 | 适合人群 |
|---|---|---|---|---|
| 聚宽 JoinQuant | 国内最大在线量化平台 | 免费/200-500元月 | 用户超80万;200+因子库;Tick级回测;A股数据全 | 个人投资者、A股新手 |
| 米筐 RiceQuant | 专业级量化平台 | 免费/1999元年 | 支持期货/期权回测;可对接实盘;完善风控评估 | 期货散户、职业交易员 |
| 优矿 Uqer | 专业研究平台 | — | 400+量化因子库;风险模型与组合优化;Jupyter环境 | 有量化基础的研究者 |
| 迅投 QMT | 券商系实盘终端 | 50万-300万门槛 | 本地+云部署;Python/VBA;Tick级回测;全内存交易 | 有实盘需求的进阶者 |
| 恒生 PTrade | 云端自动交易 | 10万-50万门槛 | 云端7x24运行;零代码拖拽+Python模板;分钟级回测 | 无代码基础新手 |
| Backtrader | 开源回测框架 | 免费 | 多资产事件驱动;支持动态策略加载;Walk Forward优化 | 有编程基础的开发者 |
| vn.py | 全功能量化框架 | 免费 | 支持股票/期货/期权;从策略到实盘全流程;模块化 | 自主搭建系统的团队 |
| QuantConnect | 全球开源量化平台 | 免费/99美元月 | 支持美股/加密货币/外汇;开源社区活跃 | 做美股/加密货币的爱好者 |
Python 量化技术栈
数据处理核心
pandas 表格型金融数据numpy 高性能数值计算polars 大数据集高性能替代
技术指标库
TA-Lib 150+专业金融指标Pandas-TA 基于pandas的指标库
MACD、RSI、布林带一键生成
数据获取
tushare A股行情/财务数据akshare 全球市场免费数据yfinance 美股数据
回测框架
backtrader 经典事件驱动框架zipline Quantopian开源rqalpha 国产开源框架
可视化
matplotlib K线图/绩效曲线plotly 交互式图表mplfinance 金融K线专用
机器学习
scikit-learn 传统ML模型xgboost/lightgbm 梯度提升树QLib/FinRL AI量化前沿平台
必须掌握的关键指标
衡量每单位总风险的超额收益。>1.0优秀,>2.0顶级,>3需警惕过度优化
策略可能出现的最极端亏损。<20%为佳,越小越好
与市场波动无关的超额收益。Alpha>0 获得超额收益
相对于市场基准的敏感度。β=1同步,β>1放大波动
单位跟踪误差带来的超额收益,越大越好
夏普改进版,仅考虑下行风险,更合理
>50%为佳,但非绝对(趋势策略胜率低但盈亏比高)
衡量回撤风险下的收益效率,越高越好
经典策略模板与代码
六大经典量化策略的完整Python实现,基于Backtrader框架。每个策略包含原理说明、适用场景、完整代码、逐行解释及优缺点分析。
01 双均线交叉策略
量化交易的"Hello World"。利用短期均线和长期均线的交叉判断趋势方向。金叉买入,死叉卖出。
import backtrader as bt from datetime import datetime class DualMAStrategy(bt.Strategy): """双均线交叉策略:快均线上穿慢均线买入(金叉),下穿卖出(死叉)""" params = ( ('fast_period', 10), # 快均线周期 ('slow_period', 30), # 慢均线周期 ('position_size', 0.95), # 仓位比例 ) def __init__(self): # 计算短期简单移动平均线 self.fast_sma = bt.indicators.SMA( self.data.close, period=self.p.fast_period) # 计算长期简单移动平均线 self.slow_sma = bt.indicators.SMA( self.data.close, period=self.p.slow_period) # 交叉信号:>0为金叉,<0为死叉 self.crossover = bt.indicators.CrossOver( self.fast_sma, self.slow_sma) self.order = None def next(self): if self.order: return if not self.position: # 无持仓时:金叉买入 if self.crossover > 0: self.order = self.buy(size=self.p.position_size) else: # 有持仓时:死叉卖出 if self.crossover < 0: self.order = self.close() # ===== 回测配置 ===== cerebro = bt.Cerebro() cerebro.addstrategy(DualMAStrategy) data = bt.feeds.YahooFinanceData(dataname='AAPL', fromdate=datetime(2020, 1, 1), todate=datetime(2024, 12, 31)) cerebro.adddata(data) cerebro.broker.setcash(100000.0) cerebro.broker.setcommission(commission=0.001) cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name='sharpe') cerebro.addanalyzer(bt.analyzers.DrawDown, _name='drawdown') results = cerebro.run()
02 动量策略 (RSI + MACD)
基于"强者恒强"假设。MACD金叉且RSI处于强势区间(50-70)时买入,MACD死叉或RSI超买(>70)时卖出。
import backtrader as bt class MomentumStrategy(bt.Strategy): """动量策略: MACD金叉 + RSI强势区间(50-70)时买入""" params = ( ('rsi_period', 14), ('macd_fast', 12), ('macd_slow', 26), ('macd_signal', 9), ) def __init__(self): # 计算RSI指标 self.rsi = bt.indicators.RSI( self.data.close, period=self.p.rsi_period) # 计算MACD指标 self.macd = bt.indicators.MACD( self.data.close, period_me1=self.p.macd_fast, period_me2=self.p.macd_slow, period_signal=self.p.macd_signal) self.order = None def next(self): if self.order: return if not self.position: # 入场:MACD金叉 + RSI在50-70之间(强势但未超买) if (self.macd.macd[0] > self.macd.signal[0] and self.rsi[0] < 70 and self.rsi[0] > 50): self.order = self.buy() else: # 出场:MACD死叉 或 RSI超买(>70) if (self.macd.macd[0] < self.macd.signal[0] or self.rsi[0] > 70): self.order = self.close()
03 均值回归策略 (布林带 + RSI)
基于"价格围绕均值波动"规律。价格触及布林带下轨且RSI超卖(<30)时买入,触及上轨或RSI超买(>70)时卖出。
import backtrader as bt class MeanReversionStrategy(bt.Strategy): """均值回归: 布林带下轨+RSI超卖买入,上轨+RSI超买卖出""" params = ( ('period', 20), # 布林带周期 ('devfactor', 2), # 标准差倍数 ('position_size', 0.95), ) def __init__(self): # 计算布林带指标 self.bband = bt.indicators.BollingerBands( self.data.close, period=self.p.period, devfactor=self.p.devfactor) # RSI辅助确认 self.rsi = bt.indicators.RSI( self.data.close, period=14) self.order = None def next(self): if self.order: return if not self.position: # 入场:价格跌破下轨 且 RSI超卖(<30) if (self.data.close[0] < self.bband.lines.bot[0] and self.rsi[0] < 30): self.order = self.buy(size=self.p.position_size) else: # 出场:价格突破上轨 或 RSI超买(>70) if (self.data.close[0] > self.bband.lines.top[0] or self.rsi[0] > 70): self.order = self.close()
04 网格交易策略
将价格按固定间隔划分网格,价格每下跌一个网格买入,每上涨一个网格卖出。在震荡市中持续低买高卖。
import backtrader as bt class GridTradingStrategy(bt.Strategy): """网格交易:基准价上下按固定间距设置网格买卖""" params = ( ('grid_interval', 0.02), # 网格间距(2%) ('grid_volume', 100), # 每格交易量(股) ('max_grids', 10), # 最大网格层数 ) def __init__(self): self.base_price = None # 基准价格 self.last_grid_level = 0 # 上次网格层级 self.order = None def next(self): if self.order: return current_price = self.data.close[0] # 首次运行设置基准价格 if self.base_price is None: self.base_price = current_price self.order = self.buy(size=self.p.grid_volume) return # 计算当前网格层级 grid_level = int( (current_price - self.base_price) / (self.base_price * self.p.grid_interval)) if not self.position: # 价格下跌到新网格层则买入 if grid_level < self.last_grid_level: self.order = self.buy(size=self.p.grid_volume) self.last_grid_level = grid_level else: if grid_level > self.last_grid_level: # 价格上涨到新网格层则卖出 self.order = self.sell(size=self.p.grid_volume) self.last_grid_level = grid_level elif grid_level < self.last_grid_level: # 价格继续下跌,加仓(限制最大层数) if abs(grid_level) < self.p.max_grids: self.order = self.buy(size=self.p.grid_volume) self.last_grid_level = grid_level
05 配对交易策略 (Pairs Trading)
市场中性统计套利。寻找两只协整股票,当价差Z-score超过阈值时做空强势、做多弱势,等待价差回归获利。
import backtrader as bt class PairsTradingStrategy(bt.Strategy): """配对交易: Z-score超阈值开仓,回归0附近平仓""" params = dict( period=20, # Z-score计算窗口 threshold=2.0, # 开仓阈值 exit_threshold=0.5, # 平仓阈值 stake=10, # 每笔交易股数 ) def __init__(self): # data0=资产A, data1=资产B self.spread = self.data0.close - self.data1.close self.spread_sma = bt.indicators.SMA( self.spread, period=self.p.period) self.spread_std = bt.indicators.StandardDeviation( self.spread, period=self.p.period) # 计算Z-score self.zscore = ( self.spread - self.spread_sma ) / self.spread_std def next(self): if self.zscore[0] > self.p.threshold: # Z>2: 价差过大,A被高估 → 卖A买B self.sell(data=self.data0, size=self.p.stake) self.buy(data=self.data1, size=self.p.stake) elif self.zscore[0] < -self.p.threshold: # Z<-2: 价差过小,A被低估 → 买A卖B self.buy(data=self.data0, size=self.p.stake) self.sell(data=self.data1, size=self.p.stake) elif abs(self.zscore[0]) < self.p.exit_threshold: # Z回归至0附近,平仓获利 self.close(data=self.data0) self.close(data=self.data1)
06 海龟交易策略
经典趋势跟踪完整系统。价格突破20日最高价做多,基于ATR动态仓位管理,每上涨0.5 ATR加仓(最多4次),回落2 ATR止损。
import backtrader as bt class TurtleStrategy(bt.Strategy): """海龟交易: 突破入场 + ATR仓位管理 + 金字塔加仓""" params = ( ('long_period', 20), # 入场通道周期 ('short_period', 10), # 离场通道周期 ('atr_period', 14), # ATR周期 ('risk_percent', 0.01), # 每笔风险1% ) def __init__(self): self.order = None self.buyprice = 0 self.buy_size = 0 self.buy_count = 0 # 加仓次数 # 唐奇安通道 self.H_line = bt.indicators.Highest( self.data.high(-1), period=self.p.long_period) self.L_line = bt.indicators.Lowest( self.data.low(-1), period=self.p.short_period) # ATR计算 self.TR = bt.indicators.Max( (self.data.high(0) - self.data.low(0)), abs(self.data.close(-1) - self.data.high(0)), abs(self.data.close(-1) - self.data.low(0))) self.ATR = bt.indicators.SimpleMovingAverage( self.TR, period=self.p.atr_period) # 突破信号 self.buy_signal = bt.ind.CrossOver( self.data.close(0), self.H_line) def next(self): if self.order: return # 入场:突破上轨且空仓 if self.buy_signal > 0 and self.buy_count == 0: # 仓位 = 总资金×1% / ATR self.buy_size = self.broker.getvalue() * 0.01 / self.ATR self.buy_size = int(self.buy_size / 100) * 100 self.order = self.buy(size=self.buy_size) self.buyprice = self.data.close[0] self.buy_count = 1 # 加仓:每上涨0.5*ATR加仓,最多4次 elif (self.position.size > 0 and self.data.close[0] > self.buyprice + 0.5 * self.ATR[0] and self.buy_count < 4): self.order = self.buy(size=self.buy_size) self.buyprice = self.data.close[0] self.buy_count += 1 # 止损:回落2*ATR elif (self.position.size > 0 and self.data.close[0] < self.buyprice - 2 * self.ATR[0]): self.order = self.close() self.buy_count = 0
六大策略对比
| 策略 | 类型 | 适用市场 | 信号频率 | 复杂度 | 核心指标 |
|---|---|---|---|---|---|
| 双均线 | 趋势跟踪 | 趋势市 | 低 | 低 | SMA交叉 |
| 动量 | 趋势跟踪 | 波动市 | 中 | 中 | RSI + MACD |
| 均值回归 | 逆势交易 | 震荡市 | 中 | 中 | 布林带 + RSI |
| 网格交易 | 震荡套利 | 震荡市 | 高 | 低 | 价格网格 |
| 配对交易 | 统计套利 | 全市场 | 低 | 高 | Z-score |
| 海龟交易 | 趋势跟踪 | 强趋势市 | 低 | 高 | 唐奇安通道 + ATR |
回测六大陷阱
回测结果好不代表实盘能赚钱,但回测结果差一定说明策略有问题——先用回测做"一票否决"。
陷阱1: 未来函数
在回测中使用了"当时还无法获得"的信息。如用当日收盘价计算信号并在当日交易、使用未公布的财报数据、前复权价格陷阱。
检测方法:将策略信号向前偏移1-2天,如果收益大幅下降,则100%存在未来函数。
陷阱2: 幸存者偏差
回测中只使用当前还在上市的股票,忽略已退市股票。A股2000年以来已有超500只退市,忽略它们会虚高收益约12%。
正确做法:使用包含退市股票的完整历史数据集,使用历史成份股快照。
陷阱3: 过度拟合
策略过度学习历史噪声而非真实规律。参数对结果极其敏感,稍微改变参数收益就断崖式下跌。
应对:样本外测试、Walk-Forward分析、参数高原检验、限制参数不超过3个。
陷阱4: 忽略交易成本
未充分考虑手续费、滑点、冲击成本。A股佣金约万1.5-万3,印花税卖出单边0.05%,滑点0.05%-0.2%。
加入交易成本后策略收益大幅下降,说明对成本敏感,实盘很难盈利。
策略想法 → 历史回测 → 样本外测试 → 模拟盘交易(6-9个月) → 小资金实盘 → 正式上线。每个环节都不可跳过。
技巧与建议
从策略构建到风险管理的实战经验。核心原则:逻辑先行、数据驱动、纪律执行。不回测、不验证,绝不实盘。
构建有效策略的四原则
明确目标先行
在写代码之前先确定可接受的收益目标和最大回撤,避免"既要高收益又要零回撤"的混合目标导致策略毁灭。
经济逻辑优先
每一个入选因子/参数都必须有明确的金融逻辑支撑,而非单纯的数据拟合。能解释"为什么赚钱"比"历史赚了钱"更重要。
从简单到复杂
从经典策略(如双均线)切入,逐步加入复杂因子。通过回测发现参数敏感点,而非追求一次性完美。
贴近实盘场景
开发时就纳入换手率限制、滑点模拟、手续费等实际交易成本,避免回测收益虚高。
数据清洗关键要点
复权处理
除权除息导致的价格下跳会干扰均线等技术指标。需根据策略选择前复权或后复权,否则回测结果失真。
幸存者偏差
回测中只使用现存股票会严重偏差。A股2000年至今已有超500只退市,忽略它们会虚高收益约12%。
代码统一
不同数据源代码格式不一(如600519.SH vs sh600519),合并数据集时易出错,需统一命名规范。
停牌处理
停牌期间无法交易,需在回测中正确处理停牌日,避免在停牌日产生交易信号。
涨跌停处理
涨停时无法买入,跌停时无法卖出。回测需模拟涨跌停限制,否则收益虚高。
异常值剔除
对极端值进行Winsorize处理或3σ剔除,防止异常数据对因子IC计算和策略信号产生干扰。
风险管理体系
核心原则
分散投资:不把所有资金投入单一策略,构建低相关性投资组合
严格止损:设定明确止损线并严格执行,可用ATR动态止损
定期压力测试:模拟极端行情,保持现金仓位应对黑天鹅
多层级风控:盘前、盘中、盘后24小时实时预警及人工监督
关键指标预警
| 指标 | 健康范围 | 预警信号 |
|---|---|---|
| 年化收益率 | 与基准对比 | 超过30%需警惕 |
| 最大回撤 | <20% | >30%风险过高 |
| 夏普比率 | >1 | <0.5无效策略 |
| 换手率 | 与策略频率匹配 | 异常波动需检查 |
仓位与资金管理
等权重、风险平价(Risk Parity)是常用方法。初始实盘资金建议不超过总本金20%,严格避免杠杆操作。设置每日最大亏损限额,建立自动化监控报警机制。实盘过渡:先模拟盘运行1-3个月,初始实盘资金不超过总资金的10%。
避免过拟合的七种方法
样本外测试
将数据分为训练集和测试集,只在训练集优化,在测试集验证。
前向分析 (Walk-Forward)
滚动切分时间序列,在各局部区间验证泛化误差的方差稳定性。
单遍测试原则
一次优化一次验证,抵制多次调整参数的冲动。
蒙特卡洛模拟
对历史数据重采样生成大量模拟路径,检验策略统计稳健性。
限制参数空间
避免高维参数组合,优先选经济意义明确的参数,用L1/L2正则化。
多市场验证
同一逻辑在不同资产上是否一致有效,跨市场稳定性检验。
警惕未来函数
逐行检查所有特征计算是否只使用历史数据,避免信息泄露。
过拟合诊断信号
参数微调后收益剧烈波动;不同时段表现差异大;随机扰动数据后策略失效。
策略失效信号与应对
失效信号
回测收益曲线过度平滑或持续线性增长
策略实盘表现与回测预测严重不符
超额收益持续衰减、回撤突破历史极值
市场结构性变化(牛市/熊市切换)导致规律失效
应对方法
实时模拟交易(6-9个月)确认与回测预测相符
定期再训练机制:动态更新参数,保留核心逻辑
设置性能阈值:OOS夏普低于1.0则拒绝上线
向中低频转型:降换手率至40-60倍,深挖基本面因子
国内量化注意事项
做国内量化必须了解的监管环境、A股特殊性、平台选择、数据源对比及个人投资者门槛建议。
监管政策时间线
加强程序化交易报告
证监会发布加强程序化交易报告通知,强化对量化交易监管(背景为2023年8月市场波动引发对量化的关注)。
《证券市场程序化交易管理规定(试行)》发布
证监会正式发布,2024年10月8日起施行。总体思路:"趋利避害、突出公平、有效监管、规范发展"。
三大交易所发布实施细则征求意见稿
沪深北交易所分别发布《程序化交易管理实施细则(征求意见稿)》,细化四类异常交易行为,明确高频交易认定标准。
《程序化交易管理实施细则》正式实施
标志着国内量化行业进入规范发展时代。高频交易差异化收费落地,重点监控四类异常行为:瞬时申报速率异常、频繁瞬时撤单、频繁拉抬打压、短时间大额成交。
证监会座谈会两提"规范量化交易"
证监会连开两天座谈会,与会代表两次提出"进一步规范量化交易行为""规范发展量化交易和AI应用"。
报告管理:程序化交易投资者须真实、准确、完整、及时报告账户信息、资金规模、杠杆率、交易策略、最高申报速率等。高频交易从严监管:额外报告、提高交易费用等差异化管理。内外资一致原则:沪股通投资者参照适用。
A股市场特殊性
关键T+1交易制度
当日买入的股票次日才能卖出,限制了日内回转交易(融券标的除外),对高频策略构成根本约束。
关键涨跌停限制
主板±10%,创业板/科创板±20%(上市前5日不设限),ST股±5%。涨跌停导致无法成交、流动性枯竭。
融券限制
融券标的范围有限,2023年以来监管对融券做空持续收紧,对市场中性策略的对冲端影响较大。
退市制度
忽略退市股票会产生幸存者偏差,A股2000年以来已有超500只退市。回测必须包含退市股票。
散户占比高
市场情绪波动大、题材炒作频繁,量化资金高成交占比会直接影响个股短期走势。
程序化交易报告
客户须先向券商报告,经券商核查确认后方可进行程序化交易。
数据源选择对比
| 数据源 | 费用 | 覆盖市场 | 特点 | 适合人群 |
|---|---|---|---|---|
| Tushare Pro | 基础免费/高级需积分 | A股为主 | 数据规范,支持复权,稳定性高 | 个人开发者、学生 |
| AKShare | 完全免费 | 全球主流市场 | 覆盖面最广,但本质是爬虫聚合,稳定性弱 | 开源爱好者、原型开发 |
| Baostock | 纯免费 | A股、港股 | 准确性优于AKShare,无积分门槛 | 长周期回测 |
| Wind万得 | 年费数万-数十万 | 全市场最全 | 国内机构标准,数据质量顶级 | 券商、公募、大型私募 |
| Choice东方财富 | 年费几千元 | 全市场实时行情 | 个人用户性价比首选 | 进阶个人用户 |
新手优先用 Tushare + Baostock 组合练手,足够支撑日线级策略回测。做日内/高频策略必须升级到收费Level2数据。因子研究优先选聚宽/通联的付费因子库,能节省80%因子清洗时间。AKShare适合宏观数据获取,但工程稳定性需自行验收。部分爬取数据存在合规风险,实盘应选择持牌机构授权数据源。
国内量化行业现状(2025-2026)
2020年仅0.76万亿,5年增长超4倍
2025年7月首超主观私募
比主观私募高近9个百分点
约八成机构已完成AI模型训练
个人投资者门槛与建议
| 券商平台 | 资金门槛 | 特点 |
|---|---|---|
| 多数券商QMT/PTrade | 50-100万 | 主流选择,功能全面 |
| 国金证券等 | 最低10万 | 低门槛入门选择 |
| 专业投资者认证 | 300万以上 | 解锁更多交易权限 |
| 主流量化交易费率 | — | 万2.5-万3水平 |
新手入门可先购买指数增强基金(如易方达沪深300量化增强),年化跑赢指数约3-5%。进阶玩家在聚宽平台回测简单策略,验证有效性后再小仓实盘。初始实盘资金不超过总本金20%,严格避免杠杆。注意合规:国内非机构投资者使用API接口受限,高频交易可能触及监管红线。
后续学习路径
从入门到进阶的完整学习路线图,涵盖推荐书籍、在线课程、开源项目、量化比赛及职业发展路径。
四阶段学习路线图
第一阶段:基础搭建(1-2个月)
学习Python基础:掌握NumPy、Pandas数据处理库。了解金融市场基本产品和交易规则。安装量化平台:熟悉Backtrader、Zipline或聚宽等回测框架。数学基础:概率论、线性代数、统计学(假设检验、回归分析)。
第二阶段:策略实践(2-3个月)
实现简单策略:双均线交叉、布林带突破、RSI超买超卖。学习数据获取:使用Tushare、AKShare等开源数据接口。进行基础回测:评估策略收益和风险特征(夏普比率、最大回撤)。
第三阶段:进阶提升(3-6个月)
研究因子模型:价值因子、动量因子、质量因子。学习机器学习应用:随机森林、XGBoost预测股价。了解实盘对接:券商API接口和交易系统。掌握风控层:动态止损、仓位管理(ATR指标、风险平价)。
第四阶段:工程部署(持续)
实盘部署:VN.PY事件引擎配置、日志系统搭建、异常报警。策略迭代SOP流程,持续复盘优化。关注AI前沿:深度学习因子挖掘、强化学习交易执行、NLP情绪分析。
推荐书籍
入门阶段
《量化投资策略的技术与实践》
丁鹏 · 覆盖策略设计、回测验证、实盘要点
《打开量化投资的黑箱》
里什·纳兰 · 讲机构怎么做量化,完整流程
《量化投资:以Python为工具》
电子工业出版社 · Python量化入门实战
《Python量化交易实战》
机械工业出版社 · 从零到一的实战指南
进阶阶段
Active Portfolio Management
Grinold & Kahn · 量化组合管理圣经
Quantitative Trading
Ernest Chan · 经典教材,策略经实盘验证
Advances in Financial Machine Learning
Marcos López de Prado · ML在量化中的应用
Python for Finance
Yves Hilpisch · 金融编程权威参考
在线课程与资源
免费优质课程
Coursera: Machine Learning(吴恩达)、Financial Engineering and Risk Management(哥大)、Machine Learning for Trading(佐治亚理工)
edX: 量化金融基础、Python金融分析
B站: "小市值量化"系列教程
QuantConnect: Learning Center(配套回测平台)
付费高性价比
聚宽量化学院: 国内最专业量化教育平台,从Python基础到策略开发到风控
BigQuant: AI量化方向课程
DataCamp: Python金融数据分析系列
开源项目
Backtrader: 轻量级回测框架
VN.PY: 国内最流行实盘框架
RQAlpha: 聚宽开源回测框架
QLib: 微软亚洲研究院AI量化平台
FinRL: 强化学习量化交易
Pyfolio: 30+绩效指标分析报告
量化比赛
WorldQuant Challenge
推荐国际顶级对冲基金WorldQuant主办。单人赛零基础友好,积分制拿牌(青铜→大师),学习+比赛仅需5-8周。在BRAIN平台挖掘因子,通过回测验证有效性。
优秀选手可直接竞争研究顾问、实习、全职岗位,是量化求职敲门砖。许多金融机构将该竞赛视为选拔人才的重要参考。
Kaggle 金融竞赛
数据竞赛参与金融类数据竞赛,积累策略开发经验,可长期组队拿牌。全球顶级数据科学竞赛平台,含多个金融市场预测类赛题。
国内平台:JoinQuant/BigQuant等定期举办策略竞赛,Top团队可获实盘资金奖励。
职业发展路径
量化研究员
侧重因子挖掘、策略迭代、统计建模。核心竞争力是策略超额稳定性。
量化开发岗
聚焦系统搭建、分布式计算、低延迟交易系统。程序员转行首选切入点。
风险管理岗
关注极值控制、压力测试、多层级风控体系设计。
AI/算法工程岗
需求上升最快,专注大模型部署、深度学习因子挖掘、NLP情绪分析。
行业已由"竞速赛"转为"淘汰赛",策略超额稳定性是核心竞争力。AI深度渗透背景下,需求上升的是算法/AI工程、复合型投研与数据科学岗位;需求下降的是初级研究员、实习生与数据处理岗位。转行关键:用2-3个完整策略开发项目(含回测报告、风险分析)证明能力,而非仅靠证书。