【 Python 量化交易】第10章:八大经典策略

文章目录

  • [🧭 量化交易八大经典策略 · 全景解读](#🧭 量化交易八大经典策略 · 全景解读)
    • [1️⃣ 策略分类全景图 🗺️](#1️⃣ 策略分类全景图 🗺️)
    • [2️⃣ 八大策略速览对比表 📊](#2️⃣ 八大策略速览对比表 📊)
    • [3️⃣ 逐个点评:"人设" 🎭](#3️⃣ 逐个点评:“人设” 🎭)
      • [① 📈 移动平均策略 ------ 量化界的"老前辈"](#① 📈 移动平均策略 —— 量化界的“老前辈”)
      • [② 🔄 均值回归策略 ------ 赌"钟摆总会摆回来"](#② 🔄 均值回归策略 —— 赌“钟摆总会摆回来”)
      • [③ 🚀 动量策略 ------ "强者恒强"的信徒](#③ 🚀 动量策略 —— “强者恒强”的信徒)
      • [④ ⚖️ 市场中性策略 ------ 对冲基金经理的"心头好"](#④ ⚖️ 市场中性策略 —— 对冲基金经理的“心头好”)
      • [⑤ 🧮 统计套利策略 ------ 市场中性策略的"数学加强版"](#⑤ 🧮 统计套利策略 —— 市场中性策略的“数学加强版”)
      • [⑥ 📰 事件驱动策略 ------ "消息面"的量化版](#⑥ 📰 事件驱动策略 —— “消息面”的量化版)
      • [⑦ 🤖 机器学习策略 ------ 让AI"学"出交易规则](#⑦ 🤖 机器学习策略 —— 让AI“学”出交易规则)
      • [⑧ ⚡ 高频交易策略 ------ "速度即一切"的极致流派](#⑧ ⚡ 高频交易策略 —— “速度即一切”的极致流派)
    • [4️⃣ 如何选择第一个策略? 🎯](#4️⃣ 如何选择第一个策略? 🎯)
    • [📚 附录](#📚 附录)
      • [A. 常见问题 FAQ ❓](#A. 常见问题 FAQ ❓)
      • [B. 术语速查表 🔤](#B. 术语速查表 🔤)

🧭 量化交易八大经典策略 · 全景解读

量化交易不是"黑箱",它是一套用数学模型、统计规律和计算机算法来捕捉市场机会的系统化方法。


1️⃣ 策略分类全景图 🗺️

从"上帝视角"俯瞰整个量化策略宇宙。所有策略都可以归入四条主线:趋势跟踪均值回归多资产/信息类前沿技术类
#mermaid-svg-3aOEAUMIFPFW6bl0{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-3aOEAUMIFPFW6bl0 .error-icon{fill:#552222;}#mermaid-svg-3aOEAUMIFPFW6bl0 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-3aOEAUMIFPFW6bl0 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .marker.cross{stroke:#333333;}#mermaid-svg-3aOEAUMIFPFW6bl0 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-3aOEAUMIFPFW6bl0 p{margin:0;}#mermaid-svg-3aOEAUMIFPFW6bl0 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .cluster-label text{fill:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .cluster-label span{color:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .cluster-label span p{background-color:transparent;}#mermaid-svg-3aOEAUMIFPFW6bl0 .label text,#mermaid-svg-3aOEAUMIFPFW6bl0 span{fill:#333;color:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .node rect,#mermaid-svg-3aOEAUMIFPFW6bl0 .node circle,#mermaid-svg-3aOEAUMIFPFW6bl0 .node ellipse,#mermaid-svg-3aOEAUMIFPFW6bl0 .node polygon,#mermaid-svg-3aOEAUMIFPFW6bl0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .rough-node .label text,#mermaid-svg-3aOEAUMIFPFW6bl0 .node .label text,#mermaid-svg-3aOEAUMIFPFW6bl0 .image-shape .label,#mermaid-svg-3aOEAUMIFPFW6bl0 .icon-shape .label{text-anchor:middle;}#mermaid-svg-3aOEAUMIFPFW6bl0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .rough-node .label,#mermaid-svg-3aOEAUMIFPFW6bl0 .node .label,#mermaid-svg-3aOEAUMIFPFW6bl0 .image-shape .label,#mermaid-svg-3aOEAUMIFPFW6bl0 .icon-shape .label{text-align:center;}#mermaid-svg-3aOEAUMIFPFW6bl0 .node.clickable{cursor:pointer;}#mermaid-svg-3aOEAUMIFPFW6bl0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .arrowheadPath{fill:#333333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-3aOEAUMIFPFW6bl0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-3aOEAUMIFPFW6bl0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-3aOEAUMIFPFW6bl0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-3aOEAUMIFPFW6bl0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .cluster text{fill:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 .cluster span{color:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-3aOEAUMIFPFW6bl0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-3aOEAUMIFPFW6bl0 rect.text{fill:none;stroke-width:0;}#mermaid-svg-3aOEAUMIFPFW6bl0 .icon-shape,#mermaid-svg-3aOEAUMIFPFW6bl0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-3aOEAUMIFPFW6bl0 .icon-shape p,#mermaid-svg-3aOEAUMIFPFW6bl0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-3aOEAUMIFPFW6bl0 .icon-shape .label rect,#mermaid-svg-3aOEAUMIFPFW6bl0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-3aOEAUMIFPFW6bl0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-3aOEAUMIFPFW6bl0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-3aOEAUMIFPFW6bl0 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 量化策略宇宙
📈 趋势跟踪类
🔄 均值回归类
🔗 多资产/信息类
🤖 前沿类
均线交叉

MA Crossover
动量策略

Momentum
均值回归

Mean Reversion
统计套利

Statistical Arbitrage
市场中性

Market Neutral
事件驱动

Event-Driven
机器学习

Machine Learning
高频交易

HFT

🧭 两条哲学路线

  • 趋势跟踪信奉"惯性":涨的会继续涨,跌的会继续跌。
  • 均值回归 信奉"钟摆":涨多了会跌回来,跌多了会涨回去。
    两者在震荡市和趋势市中互为补充------震荡市利好回归,趋势市利好动量。知道市场现在处于什么状态,是选择策略的第一步。

2️⃣ 八大策略速览对比表 📊

# 策略 策略思想 典型实现方式 适合市场
1 📈 移动平均 价格围绕均线波动,短长期均线交叉指示方向 短均线上穿长均线 → 买入;下穿 → 卖出 趋势市
2 🔄 均值回归 价格偏离均值太多就会"弹回来" 布林带上下轨、RSI超买超卖反向开仓 震荡市
3 🚀 动量 "强者恒强",过去表现好的未来一段时间继续好 计算N期收益率,买入强者卖出弱者 趋势市
4 ⚖️ 市场中性 对冲掉大盘涨跌(Beta),只赚相对强弱(Alpha) 同时做多强势股、做空弱势股,保持净敞口≈0 任何市况
5 🧮 统计套利 用数学模型找出价格关系的临时失衡 配对交易:两只历史高相关股票价差异常时反向操作 震荡市
6 📰 事件驱动 特定事件(财报、新闻、政策)前后存在统计规律 监控事件时间窗口,程序自动下单 事件密集期
7 🤖 机器学习 让模型从海量数据中"自学"交易规则 回归/分类/深度学习,用特征预测未来走势 数据充裕时
8 ⚡ 高频交易 用微秒级速度捕捉极小价差,积少成多 低延迟架构,FPGA硬件加速,极短持仓(秒级) 高流动性市场

3️⃣ 逐个点评:"人设" 🎭

① 📈 移动平均策略 ------ 量化界的"老前辈"

  • 原理 :用过去N天的收盘价平均值代表当前"合理价格"。当短期均线(如5日)上穿长期均线(如20日)时,说明近期动能转强,产生金叉 买入信号;下穿则产生死叉卖出信号。
  • 实现:计算MA(5)和MA(20),每日比较,生成买卖指令。
  • 优点:逻辑简单、代码实现门槛极低,是大多数人的"第一个策略"。
  • 风险:震荡市中反复交叉,造成频繁"打脸"的假信号。

专属示意图 :K线 + 均线交叉图

在K线图上绘制MA5和MA20,用箭头标注金叉/死叉位置,一目了然。

💡 金叉/死叉小贴士

  • 金叉 = 快车反超慢车,势头占优 → 看涨。
  • ⚠️ 死叉 = 快车被慢车反超,动力不足 → 看跌/避险。

② 🔄 均值回归策略 ------ 赌"钟摆总会摆回来"

  • 原理:价格围绕其长期均值波动,当偏离过大时,市场情绪过度反应,最终会回归。
  • 实现:常用布林带(均线±2倍标准差),价格触及上轨时做空,触及下轨时做多;或用RSI指标,超买(>70)卖出,超卖(<30)买入。
  • 优点:震荡市中胜率高,有明确的入场和止盈区间。
  • 风险:遇到真正的单边趋势("钟摆断了"),会越亏越扛,回撤巨大。

专属示意图:价格通道 + 超买超卖区图


③ 🚀 动量策略 ------ "强者恒强"的信徒

  • 原理:金融学中的"动量效应"表明,过去3~12个月表现好的资产,未来一段时间仍可能跑赢。
  • 实现:计算过去N期收益率,排序后买入前10%的资产,卖出后10%的资产(多空组合)。
  • 优点:在趋势市中能吃到最大段的利润,且在全球多个市场被验证有效。
  • 风险:趋势反转时会遭遇"动量崩溃",回撤急且深。

专属示意图 :多资产收益排名柱状图

横轴为资产,纵轴为过去N期收益率,绿色高亮最强动量,红色高亮最弱动量。


④ ⚖️ 市场中性策略 ------ 对冲基金经理的"心头好"

  • 原理:同时构建多头和空头头寸,使整个组合对大盘涨跌(Beta)的敏感度接近于0,只赚取选股能力带来的超额收益(Alpha)。
  • 实现:做多一组"强势因子"股票,做空等市值的"弱势因子"股票,每日调整保持净敞口为零。
  • 优点:收益与大盘涨跌无关,波动率低,夏普比率往往更漂亮。
  • 风险:选股因子失效或配对关系瓦解时,两头亏损。

专属示意图 :多空组合累计收益对比图


⑤ 🧮 统计套利策略 ------ 市场中性策略的"数学加强版"

  • 原理:利用统计模型寻找多个资产之间价格关系的"异常值"。例如,两只历史高度相关的股票(如可口可乐与百事可乐),当价差扩大到历史均值+2倍标准差以上时,做空强的、做多弱的,赌价差收敛。
  • 实现:协整检验、卡尔曼滤波、GARCH等模型用于估计价差和阈值。
  • 优点:交易频率适中,收益来源分散,容量较大。
  • 风险:统计关系可能因基本面变化而结构性破裂("协整失效")。

专属示意图 :配对资产价差与均值回归图

上方是两只资产价格走势,下方是价差走势,标出均值和±2σ阈值,触及阈值时发出反向交易信号。


⑥ 📰 事件驱动策略 ------ "消息面"的量化版

  • 原理:财报发布、指数成分调整、并购重组、宏观经济数据公布等事件前后,股价往往出现可统计的异常波动。
  • 实现:利用爬虫/API监控事件日历,在事件窗口(如公布前1天至后3天)内执行预设交易,并设置止盈止损。
  • 优点:事件具有明确的时间节点,回测易于界定。
  • 风险:事件结果超预期("黑天鹅")可能导致剧烈反向波动,且滑点成本较高。

专属示意图 :事件窗口收益走势图

横轴为事件前后的交易日(T-5到T+5),纵轴为平均异常收益,寻找显著效应窗口。


⑦ 🤖 机器学习策略 ------ 让AI"学"出交易规则

  • 原理:将价格、成交量、宏观数据、情绪指标等作为特征,训练回归模型(预测未来价格)或分类模型(预测涨跌方向)。深度学习(如LSTM)还能捕捉时序依赖。
  • 实现:特征工程→训练集/验证集划分→模型调参→回测。常见模型:随机森林、XGBoost、CNN、LSTM。
  • 优点:能挖掘非线性关系,上限高,适应复杂市场结构。
  • 风险:黑箱问题、过拟合(把历史噪声背得滚瓜烂熟)、对数据质量极其敏感,实盘往往比回测差一大截。

专属示意图 :模型预测结果 vs. 实际走势对比图

在K线图上叠加模型预测值或涨跌概率,直观检验模型有效性。


⑧ ⚡ 高频交易策略 ------ "速度即一切"的极致流派

  • 原理:利用订单流、买卖盘失衡、极短时间内的价格微波动,在微秒至毫秒级别建仓平仓,每笔赚取零点几个基点,靠海量交易累积利润。
  • 实现:FPGA硬件加速、微波传输、托管机房(Co-location),算法常基于订单簿动态博弈。
  • 适用:极端流动性市场(如美股大盘股、主流期货)。
  • 风险:基础设施投入巨大,监管趋严,对个人投资者而言基本是"观战"项目。

专属示意图 :订单簿深度图 (Level 2 Market Data)

展示买卖盘口的挂单情况,体现流动性和价差微变。


4️⃣ 如何选择第一个策略? 🎯

如果是新手,建议走一条循序渐进的"打怪升级"路线:

  1. 移动平均 ------ 学会完整的回测流程(数据获取、信号生成、绩效统计)。
  2. 均值回归 ------ 训练反向思维,理解波动率和统计阈值。
  3. 动量 ------ 进阶多因子验证和组合构建。

然后根据兴趣深入事件驱动、机器学习等方向。

永远记住 :任何策略,必须先做历史回测 (避免未来函数),再跑模拟盘 (验证滑点与流动性),最后用小资金实盘(检验真实冲击成本)。
#mermaid-svg-9vflrcZwKf0MDgOP{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9vflrcZwKf0MDgOP .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9vflrcZwKf0MDgOP .error-icon{fill:#552222;}#mermaid-svg-9vflrcZwKf0MDgOP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9vflrcZwKf0MDgOP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9vflrcZwKf0MDgOP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9vflrcZwKf0MDgOP .marker.cross{stroke:#333333;}#mermaid-svg-9vflrcZwKf0MDgOP svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9vflrcZwKf0MDgOP p{margin:0;}#mermaid-svg-9vflrcZwKf0MDgOP .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9vflrcZwKf0MDgOP .cluster-label text{fill:#333;}#mermaid-svg-9vflrcZwKf0MDgOP .cluster-label span{color:#333;}#mermaid-svg-9vflrcZwKf0MDgOP .cluster-label span p{background-color:transparent;}#mermaid-svg-9vflrcZwKf0MDgOP .label text,#mermaid-svg-9vflrcZwKf0MDgOP span{fill:#333;color:#333;}#mermaid-svg-9vflrcZwKf0MDgOP .node rect,#mermaid-svg-9vflrcZwKf0MDgOP .node circle,#mermaid-svg-9vflrcZwKf0MDgOP .node ellipse,#mermaid-svg-9vflrcZwKf0MDgOP .node polygon,#mermaid-svg-9vflrcZwKf0MDgOP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9vflrcZwKf0MDgOP .rough-node .label text,#mermaid-svg-9vflrcZwKf0MDgOP .node .label text,#mermaid-svg-9vflrcZwKf0MDgOP .image-shape .label,#mermaid-svg-9vflrcZwKf0MDgOP .icon-shape .label{text-anchor:middle;}#mermaid-svg-9vflrcZwKf0MDgOP .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9vflrcZwKf0MDgOP .rough-node .label,#mermaid-svg-9vflrcZwKf0MDgOP .node .label,#mermaid-svg-9vflrcZwKf0MDgOP .image-shape .label,#mermaid-svg-9vflrcZwKf0MDgOP .icon-shape .label{text-align:center;}#mermaid-svg-9vflrcZwKf0MDgOP .node.clickable{cursor:pointer;}#mermaid-svg-9vflrcZwKf0MDgOP .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9vflrcZwKf0MDgOP .arrowheadPath{fill:#333333;}#mermaid-svg-9vflrcZwKf0MDgOP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9vflrcZwKf0MDgOP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9vflrcZwKf0MDgOP .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9vflrcZwKf0MDgOP .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9vflrcZwKf0MDgOP .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9vflrcZwKf0MDgOP .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9vflrcZwKf0MDgOP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9vflrcZwKf0MDgOP .cluster text{fill:#333;}#mermaid-svg-9vflrcZwKf0MDgOP .cluster span{color:#333;}#mermaid-svg-9vflrcZwKf0MDgOP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9vflrcZwKf0MDgOP .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9vflrcZwKf0MDgOP rect.text{fill:none;stroke-width:0;}#mermaid-svg-9vflrcZwKf0MDgOP .icon-shape,#mermaid-svg-9vflrcZwKf0MDgOP .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9vflrcZwKf0MDgOP .icon-shape p,#mermaid-svg-9vflrcZwKf0MDgOP .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9vflrcZwKf0MDgOP .icon-shape .label rect,#mermaid-svg-9vflrcZwKf0MDgOP .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9vflrcZwKf0MDgOP .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9vflrcZwKf0MDgOP .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9vflrcZwKf0MDgOP :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 趋势市
震荡市
不确定/混合
初学者
有一定编程基础
擅长数学/统计
开始
市场目前是

趋势市还是震荡市?
优先考虑

趋势跟踪类
优先考虑

均值回归类
考虑市场中性

或统计套利
你的技术能力?
移动平均策略

(低门槛)
均值回归或动量

(布林带/RSI/动量因子)
统计套利/机器学习
回测 → 模拟 → 小资金
持续优化与风险监控


📚 附录

A. 常见问题 FAQ ❓

Q1:yf.download() 返回空数据?

  • 检查A股代码是否加了后缀(如 600519.SS 上交所,000568.SZ 深交所)。
  • 确认日期区间内包含交易日。
  • Yahoo Finance 偶尔服务不稳定,稍后重试或换用 akshare 数据源。

Q2:pip install TA-Lib 报错装不上?

TA-Lib 依赖本地C库。

  • Windows用户建议下载预编译 .whl 文件安装。
  • 或直接 conda install -c conda-forge ta-lib(省心)。

Q3:zipline 安装后一运行就报错?

版本兼容性"重灾区"。

  • 务必用 conda install -c conda-forge zipline,并确保 Python 版本为 3.8~3.9。
  • 若仍困难,可改用 backtrader 入门,更稳定。

Q4:回测收益虚高得不真实?

  • 第一嫌疑人:未来函数 (检查是否用了 shift(1) 避免用到未来数据)。
  • 第二:忘记扣除交易成本(佣金、滑点、税费)。
  • 第三:样本区间恰好是单边大行情------应做不同市场周期的敏感性测试。

Q5:学完本教程,下一步学什么?

① 精读 Pandas/NumPy 官方文档,夯实数据处理能力。

② 用 backtrader 重写第7章的回测,体验更完整的回测框架。

③ 学习 TA-Lib 计算更多技术指标,扩充因子库。

④ 尝试用 AKShare 替换数据源,做A股实盘研究。


B. 术语速查表 🔤

术语 中文 一句话解释
OHLCV 开高低收量 每日开盘、最高、最低、收盘价 + 成交量,量化最基础的数据
MA / SMA 移动平均 / 简单移动平均 最近N天收盘价的算术平均值
Golden Cross / Death Cross 金叉 / 死叉 短期均线上穿/下穿长期均线,分别视为买入/卖出信号
Alpha 超额收益 剔除市场因素后,策略真正的"本事"
Beta 市场敏感度 组合随大盘波动的幅度,>1更激进,<1更保守
Sharpe Ratio 夏普比率 风险调整后的收益指标(每单位风险带来的超额回报)
Max Drawdown 最大回撤 历史上从峰值到谷底的最大跌幅,衡量最坏情况
Backtesting 回测 在历史数据上模拟策略运行,检验有效性
Overfitting 过拟合 把历史数据"背得太熟",导致实盘失效
Look-ahead Bias 未来函数 在回测中无意使用了"未来才知道"的信息,使结果虚高
NaN 非数值(缺失值) 数据不足或无效值的占位标记,如滚动窗口初期的空值

🎉 恭喜! 你已掌握了八大经典策略的完整地图。

现在就去挑选你的第一个策略,写几行代码,跑一次回测,感受量化交易的魅力吧!

记住:策略没有"圣杯",只有不断迭代的认知和严格的风控。祝你在量化之路上越走越稳! 🚀

相关推荐
Rytter18 分钟前
Android诈骗裸聊软件逆向分析
android
IT码农-爱吃辣条28 分钟前
Milvus 向量数据库 Python 实战教程
数据库·python·milvus
这个人懒得名字都没写31 分钟前
OpenCV 官方教程中的测试图片Can’t find required data file
python·opencv
智驭未来掌门人37 分钟前
Python HTTP CRUD 完全指南:从入门到实战
python
烂蜻蜓1 小时前
Flask入门教程(二十四):请求对象API——获取客户端数据的完整指南
后端·python·flask
JMchen1231 小时前
【Android 性能优化实战 60 讲】04 Memory Profiler 高阶玩法:深剖堆内存原理,实战定位 Kotlin 闭包隐式泄漏
android·性能优化·kotlin·实战·源码分析·内存泄漏·memory profiler
Android-Flutter1 小时前
Java线程池 - 内部线程管理机制详解
android
开开心心就好1 小时前
手机悬屏翻译工具外语游戏漫画APP全覆盖
android·前端·javascript·python·游戏·pdf·html
梦在远山后1 小时前
Python 中两种 Queue 的区别
python·langchain