附录D:量化交易常见问题 FAQ
本附录收集了学习者最常见的困惑和误解,帮助你避免典型的认知陷阱。
一、收益与风险
Q1:高夏普比率等于低风险吗?
不完全对。
夏普比率衡量的是风险调整后收益,但它有两个盲区:
- 不反映尾部风险:一个夏普 2.0 的策略可能隐藏着 30% 的最大回撤
- 对杠杆敏感:用杠杆可以人为提高夏普,但风险也同比放大
正确做法:夏普比率要和最大回撤、Calmar Ratio 一起看。
Q2:回测年化 50%,实盘能赚多少?
经验法则:实盘收益 ≈ 回测收益 × 0.3 ~ 0.6
原因:
- 回测假设理想成交,实盘有滑点和冲击成本
- 回测没有情绪干扰,实盘有恐惧和贪婪
- 回测环境稳定,实盘会遇到各种故障
正确做法:如果回测收益减半后仍可接受,再考虑实盘。
Q3:为什么我的策略回测很好,实盘亏钱?
最常见的三个原因:
| 原因 | 表现 | 解决方法 |
|---|---|---|
| Look-Ahead Bias | 用了未来数据 | 检查信号生成时间 vs 执行时间 |
| 过拟合 | 训练集 >> 测试集 | Walk-Forward 验证 |
| 成本低估 | 忽略滑点、冲击 | 用保守成本假设 |
二、策略选择
Q4:趋势策略和均值回归策略哪个更好?
没有"更好",只有"更适合"。
| 市场状态 | 趋势策略 | 均值回归 |
|---|---|---|
| 趋势市 | 大赚 | 大亏 |
| 震荡市 | 频繁止损 | 稳定盈利 |
正确做法:识别市场状态(Regime Detection),在对的时候用对的策略。
Q5:机器学习能预测股价涨跌吗?
几乎不能。
- 金融数据信噪比极低,顶级模型准确率也只有 52-55%
- 52% 准确率扣除成本后可能净亏损
- 深度学习需要大量数据,量化数据通常不够
正确定位:ML 不是用来"预测涨跌",而是从噪音中提取微弱但稳健的信号。
Q6:高频策略是不是更容易赚钱?
对机构是,对散户不是。
高频的门槛:
- 硬件:专线、共址服务器(年费数十万美元)
- 软件:亚毫秒级延迟(需要 C++/FPGA)
- 成本:高频被滑点"吃掉"是常态
散户更适合:中低频策略(日级/周级),用认知优势而非速度优势。
三、风险控制
Q7:止损设多少合适?
没有标准答案,但有计算方法:
止损幅度 = k × 波动率
k = 2 ~ 3(太紧容易被震出,太松亏损太大)
| 标的类型 | 日波动率 | 建议止损 |
|---|---|---|
| 大盘股 (SPY) | 0.8% | 2-3% |
| 科技股 (TSLA) | 3.5% | 7-10% |
| 加密货币 | 5%+ | 10-15% |
Q8:分散投资能规避风险吗?
正常时可以,危机时失效。
| 时期 | AAPL-MSFT 相关性 | 股票-债券相关性 |
|---|---|---|
| 正常 | 0.7 | -0.3 |
| 危机 | 0.9 | 0.6 或 -0.5 |
LTCM 的教训:他们假设相关性稳定,结果危机时所有资产同跌,分散失效。
正确做法:假设危机时相关性飙升到 0.9,用这个假设做压力测试。
Q9:Kelly 公式能直接用吗?
不能直接用,建议用"半 Kelly"。
原因:
- 胜率和赔率都是估计值,可能不准
- 满 Kelly 的波动太大,心理难承受
- 金融中持仓相关,违反 Kelly 的独立假设
实战建议:Kelly/2 作为仓位上限,再结合其他限制条件。
四、数据与系统
Q10:免费数据够用吗?
开发阶段够,生产阶段看情况。
| 数据类型 | 免费可行性 | 推荐方案 |
|---|---|---|
| 日线 OHLCV | ✅ 足够 | Yahoo Finance、Alpha Vantage |
| 分钟线 | ⚠️ 有限 | 券商 API(需开户) |
| Tick/L2 | ❌ 不可能 | 必须付费(年费数千-数万美元) |
Q11:Python 够快吗?
中低频足够,高频不够。
| 策略频率 | 延迟要求 | Python 适合度 |
|---|---|---|
| 日级/周级 | 秒级 | ✅ 完全足够 |
| 分钟级 | 毫秒级 | ⚠️ 勉强可用 |
| 秒级以下 | 微秒级 | ❌ 必须 C++/FPGA |
Q12:API 限流怎么办?
这是常见问题,需要预先处理。
解决方案:
- 本地缓存:首次获取后存到数据库,减少 API 调用
- 限流器:在代码中加入
time.sleep() - 备用数据源:主数据源限流时切换到备用
- 预加载:非交易时间批量下载
五、多智能体
Q13:为什么需要多智能体?
单一模型无法适应所有市场状态。
| 问题 | 单一模型 | 多智能体 |
|---|---|---|
| 趋势市 → 震荡市 | 策略失效 | Regime Agent 切换专家 |
| 模型过载 | 什么都做,什么都做不好 | 专家分工 |
| 单点故障 | 整个系统崩溃 | 其他 Agent 继续运行 |
Q14:Regime Detection 误判怎么办?
误判是必然的,关键是控制后果。
设计原则:
- 软切换:用概率加权而非 0/1 切换
- 确认延迟:状态连续 N 天才确认切换
- 过渡期保守:不确定时降低仓位
- 危机快响应:宁可误判为危机,也不要漏判
Q15:Risk Agent 能被覆盖吗?
绝对不能。这是系统设计的硬约束。
Risk Agent 的否决权:
- 仓位超限 → 强制缩小
- 回撤触发 → 强制减仓
- 熔断触发 → 禁止开仓
即使 Signal Agent 有"更好的理由",也不能绕过 Risk Agent。
六、学习路径
Q16:没有编程基础能学量化吗?
可以理解概念,但难以实操。
建议路径:
- 先学 Python 基础(2-4 周)
- 学 pandas/numpy 数据处理(2 周)
- 再学本课程的策略部分
- 边学边写代码验证
Q17:需要多少数学基础?
高中数学 + 统计入门足够入门。
核心概念:
- 均值、标准差、相关性
- 概率分布(正态分布、厚尾)
- 对数收益、复利计算
不需要:
- 高等数学(除非做期权定价)
- 线性代数(除非深入 ML)
Q18:多久能开始实盘?
保守建议:6-12 个月。
| 阶段 | 时间 | 目标 |
|---|---|---|
| 学习基础 | 2-3 月 | 理解概念、跑通回测 |
| 策略开发 | 2-3 月 | 有一个通过 Quality Gate 的策略 |
| 模拟交易 | 2-3 月 | 验证系统稳定性 |
| 小资金实盘 | 持续 | 用 1-5% 资金验证 |
七、常见心态问题
Q19:连续止损 10 次,是不是策略失效了?
不一定。
趋势策略的典型特征:
- 胜率只有 30-40%
- 盈亏比 3:1 以上
- 连续止损 10 次很正常
判断标准:看回撤是否超过历史最大回撤的 1.5 倍。如果没有,继续执行。
Q20:别人的策略能直接用吗?
可以参考,不能照搬。
原因:
- 公开策略已被套利,Alpha 衰减
- 参数可能过拟合到特定时期
- 你不了解策略的风险特征
正确做法:理解逻辑 → 自己回测 → 调整参数 → 小资金验证。
本附录要点
- 没有圣杯:任何策略都有失效的时候
- 风控优先:活下来比赚得多更重要
- 假设会错:模型假设在极端情况下会失效
- 持续学习:市场在变,策略也要跟着进化