📑 查看全课大纲(第 4 / 38 节)
- 1.课程介绍与学习目标
- 2.量化交易的发展
- 3.主观投资与量化投资的关系
- 4.认识一个量化策略(1)
- 5.认识一个量化策略(2)
- 6.理工生做量化的优势
- 7.量化交易系统的基本架构
- 8.必要的交易基础知识及参考资料
- 9.上节课思考题及本节课内容介绍
- 10.技术指标简介
- 11.基于MACD的交易信号开发(1)
- 12.基于MACD的交易信号开发(2)
- 13.基于RSI的交易信号开发
- 14.基于BOLL的交易信号开发
- 15.基于分形的交易信号开发
- 16.总结及下节课预告
- 17.开发环境安装
- 18.获取指数和个股历史行情数据
- 19.修复行情数据中的问题
- 20.抓取财报数据、数据定时更新
- 21.实现低PE股票池(1)
- 22.实现低PE股票池(2)
- 23.实现低PE策略的回测(1)
- 24.实现低PE策略的回测(2)
- 25.风险控制综述
- 26.风险控制中的止盈止损
- 27.仓位管理的工程实现
- 28.完整策略介绍-基础策略
- 29.策略的分步优化
- 30.策略评价指标(1)
- 31.策略评价指标(2)
- 32.如何评价策略
- 33.如何优化策略
- 34.tick数据的意义
- 35.tick数据的介绍及使用
- 36.Hans123策略
- 37.经典买入三法策略
- 38.量化系统的完整研发和系统搭建
认识一个量化策略(1)
约 4 分钟
认识一个量化交易策略(1)
小象实战讲义 · 初阶量化交易:策略编写及系统搭建 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
许多初学者容易将量化交易简单理解为”用 Python 写几行技术指标买卖代码”。然而,量化策略的本质是建立在博弈论与概率统计基础上的正期望数学模型。如果在博弈机制或数学期望上本身处于劣势,无论执行手段多么自动化,最终都逃脱不了持续亏损的命运。
本讲通过一个引人深思的经典博弈模型——非对称猜硬币博弈,从收益矩阵建立、数学期望公式严密推导,到参数不等式求解,层层剖析量化策略如何利用数学规则实现单向收益优势,并揭示其对金融二级市场散户交易的深刻映射。
💡 核心导读
- 博弈模型规则与直觉陷阱:
- 规则设定:双方同时出一枚硬币(正面或反面);
- 同出正面:玩家(散户)获利 元;同出反面:玩家获利 元;一正一反:玩家亏损 元;
- 直觉误区:直觉上若双方五五开随机出牌,玩家单轮期望为 元(不赚不赔);但只要对手掌握最优混合策略,玩家的数学期望将恒为负数。
- 数学期望公式推导:
- 设玩家出正面的概率为 ,对手出正面的概率为 ;
- 严密化简得到玩家单轮数学期望收益公式:
- 参数不等式求解与绝对收割区间:
- 无论玩家采取何种概率策略 ,要使玩家期望收益恒负(),对手只需将出牌概率 控制在:
- 当对手取 (约 概率出正面)时,玩家单轮期望收益恒为负( 元),博弈轮数越多,玩家必输无疑。
- 二级市场的微观映射:
- 正面对应多头/上涨,反面对应空头/下跌。A 股历史上呈现”牛短熊长”(约 时间上涨, 时间震荡阴跌),若散户缺乏体系化择时与风控,单纯依赖多头思维频繁抄底,就会陷入数学期望恒负的博弈陷阱。
┌─────────────────────────────────────────────────────────────┐
│ 非对称猜硬币博弈收益矩阵 │
└──────────────────────────────┬──────────────────────────────┘
│
┌───────────────┴───────────────┐
▼ ▼
【对手出正面 (y)】 【对手出反面 (1-y)】
┌──────────────────────────────┬──────────────────────────────┐
│ 玩家出正面 (x) : +5 元 │ 玩家出正面 (x) : -3 元 │
├──────────────────────────────┼──────────────────────────────┤
│ 玩家出反面 (1-x) : -3 元 │ 玩家出反面 (1-x) : +1 元 │
└──────────────────────────────┴──────────────────────────────┘一、博弈规则设计与直觉偏差分析
1. 游戏规则与收益矩阵
假设甲(散户)与乙(掌握量化策略的对手方)参与一场猜硬币博弈,双方同时亮出一枚硬币(正面或反面):
| 决策组合 | 玩家(甲)收益 | 对手(乙)收益 | 业务情境映射 |
|---|---|---|---|
| 双方均出正面(正,正) | +5 元 | -5 元 | 顺势共振做多,牛市主升浪大幅获利 |
| 双方均出反面(反,反) | +1 元 | -1 元 | 顺势共振做空/防守,熊市微利防守 |
| 方向不一致(正,反)或(反,正) | -3 元 | +3 元 | 逆势操作,频繁踏空或抄底被套 |
2. 散户的直觉陷阱
甲在评估游戏时,通常会做如下直觉推算:
- 假设双方都按 的自然概率随机出硬币:
- 甲直觉认为这是一个公平的”零和游戏”(不赔不赚),甚至觉得自己可以通过”看盘猜心理”来战胜对手。然而,一旦对手脱离 的朴素随机,游戏的数学期望将被彻底扭转。
二、数学期望公式的严密代数推导
为了找出该策略的数学本质,我们建立严密的代数模型:
- 设甲出正面的概率为 ,出反面的概率为 (其中 );
- 设乙出正面的概率为 ,出反面的概率为 (其中 )。
1. 展开期望收益公式
甲在单轮博弈中的数学期望收益 为所有可能结果的加权和:
逐步展开并合并同类项:
2. 整理为关于玩家决策 的线性函数
将上式按 整理提项:
这是一个关于 的一次线性函数 ,其中斜率 ,截距 。
三、不等式求解:收割策略的参数区间
若乙希望构建一个**无论甲如何调整出牌策略 ,甲的期望收益恒为负数()**的绝对优势策略,该线性函数在闭区间 的两端点处必须同时小于 0:
代入端点值分别求解:
- 当 时(玩家全出反面):
- 当 时(玩家全出正面):
结论与策略设计
联立两式可得乙的参数控制区间:
💡 量化策略落地: 乙只需在程序中内置一个伪随机数发生器,令出正面的概率固定为 (即约 概率出正、约 概率出反)。此时: 无论玩家甲出什么牌、无论 取何值,甲每玩一轮平均必定稳亏 元!
📝 动手练一练
下面我们用 Python 编写一段代码,模拟 1000 轮博弈下,散户(甲)在遭遇朴素随机对手()与博弈论优化对手()时的真实资金曲线演变:
import numpy as np
import pandas as pd
def simulate_coin_game():
"""
模拟非对称猜硬币博弈在 1000 轮中的累计盈亏演化
对比朴素对手(y=0.5)与量化最优策略对手(y=1/3)对玩家资金的决定性影响
"""
np.random.seed(42)
n_rounds = 1000 # 模拟 1000 轮连续博弈
# 玩家策略: 假设玩家以 x = 0.5 的主观概率随机出牌 (True=正面, False=反面)
x = 0.50
player_choices = np.random.rand(n_rounds) < x
# 对手方两类策略对比
y_naive = 0.50 # 方案 A: 朴素五五开随机
y_optimal = 1.0 / 3.0 # 方案 B: 博弈论最优混合策略 (y = 1/3)
dealer_naive = np.random.rand(n_rounds) < y_naive
dealer_optimal = np.random.rand(n_rounds) < y_optimal
def calculate_payoff(p_choices, d_choices):
pnl = []
for p, d in zip(p_choices, d_choices):
if p and d:
pnl.append(5.0) # 双方同为正面: +5 元
elif not p and not d:
pnl.append(1.0) # 双方同为反面: +1 元
else:
pnl.append(-3.0) # 决策方向相反: -3 元
return np.array(pnl)
pnl_naive = calculate_payoff(player_choices, dealer_naive)
pnl_optimal = calculate_payoff(player_choices, dealer_optimal)
# 理论期望值计算: E = 12xy - 4(x+y) + 1
exp_naive = 12 * x * y_naive - 4 * (x + y_naive) + 1.0
exp_optimal = 12 * x * y_optimal - 4 * (x + y_optimal) + 1.0
print("================ 博弈论非对称猜硬币收益模拟 ================")
print(f"博弈总轮数: {n_rounds} 轮 | 玩家出正概率 x = {x:.2f}")
print(f"方案 A (y = 0.50 朴素随机): 理论单轮期望 E = {exp_naive:+.3f} 元 | 1000 轮实测累计盈亏 = {np.sum(pnl_naive):+,.1f} 元")
print(f"方案 B (y = 1/3 量化收割): 理论单轮期望 E = {exp_optimal:+.3f} 元 | 1000 轮实测累计盈亏 = {np.sum(pnl_optimal):+,.1f} 元")
print("==========================================================")
if __name__ == "__main__":
simulate_coin_game()运行结果输出:
================ 博弈论非对称猜硬币收益模拟 ================
博弈总轮数: 1000 轮 | 玩家出正概率 x = 0.50
方案 A (y = 0.50 朴素随机): 理论单轮期望 E = +0.000 元 | 1000 轮实测累计盈亏 = -8.0 元
方案 B (y = 1/3 量化收割): 理论单轮期望 E = -0.333 元 | 1000 轮实测累计盈亏 = -372.0 元
==========================================================本章小结
- 数学期望是策略的基石:任何量化策略在上线前,必须从代数与概率层面证明其具备坚实的正期望,而非依赖运气或主观猜测。
- 警惕非对称博弈陷阱:在收益与亏损不对称的博弈结构中,直觉往往完全失效,唯有严密的数理推导才能发现破绽。
- 理解二级市场牛熊周期:正视市场的非对称结构(牛短熊长),在策略中合理配置多空敞口与仓位比例。
📋 行动清单 (Action Checklist)
- 运行本讲模拟代码,尝试将玩家策略
x分别调整为0.0(全出反面)、1.0(全出正面)或0.8,验证对手在 下玩家期望收益是否恒为负数; - 亲手在纸上推导一遍 的化简过程与不等式边界求解;
- 思考并记录:在股票市场中,有哪些看似”赚多赔少”的主观交易习惯,其本质在数学期望上是恒负的。
— 小象教研组
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问