量化笔试十套题拆解:概率统计、随机过程与编程算法高频题型解析

发布时间:2026/10/20 6:53:29
量化笔试十套题拆解:概率统计、随机过程与编程算法高频题型解析 简介这份资源面向准备量化投资岗位笔试的求职者与在校学生整理了诚奇、概率投资、海悦、天演、衍复、佳期、平方和、集微、九坤、凯读投资十家公司的量化笔试题及参考答案覆盖统计学、概率论、金融工程、机器学习与算法交易等核心考点。内容按公司逐一解析涉及线性回归、时间序列、蒙特卡洛模拟、Black-Scholes期权定价、GARCH波动率模型、遗传算法、神经网络与决策树、动量与反转策略、统计套利与协整、限价订单簿与高频交易、新闻情感分析及DCF、PE、PB等估值模型并延伸至Python、Pandas、NumPy、Matlab、R等工具的实际应用。资源为zip压缩包整体约48.43MB文件总数与类型明细上游暂未提供。目前已有753人学习下载适合希望系统梳理量化知识框架、对照真题查漏补缺、提升笔试通过率的读者参考。1. 十套量化笔试题拆开看从刷题到上机这份资源到底怎么用如果你正在准备量化岗位的笔试大概率经历过这样的场景投了十几家每家笔试风格完全不同有的上来就是概率期望连环套有的让你手写一个订单簿撮合逻辑还有的干脆扔一道时间序列预测让你现场推公式。网上题解零零散散刷完也不知道自己到底缺哪块。这份「量化笔试题十家公司附答案」的资源把十家不同风格机构的笔试卷子和参考答案整理到了一起覆盖概率统计、随机过程、编程实现、策略逻辑、脑筋急转弯等常见题型。它适合两类人一是正在集中投递、需要快速摸清各家出题套路的求职者二是想系统检验自己量化基础、查漏补缺的转行选手。我拿到手第一件事不是从头刷而是先按题型分类把十套卷子拆成「计算类」「编程类」「逻辑类」三堆再决定每堆花多少时间。这个动作很关键后面会细说。2. 先拆题型再动手十套卷子的分类逻辑与优先级2.1 为什么不能从第一套开始顺序刷顺序刷题最大的问题是反馈周期太长。你做完一套可能花两小时对答案再花一小时中间遇到卡壳的题还会打断节奏。更麻烦的是十家机构的出题偏好差异很大有的偏理论推导有的偏工程实现顺序刷会让你在切换思维模式上浪费大量精力。我一般会先花二十分钟把十套卷子快速过一遍只做一件事给每道题打标签。标签分四类——概率统计、随机过程与衍生品、编程与算法、策略与市场微观结构。打完标签后统计每类题的数量和分值占比这样就能看出哪家偏理论、哪家偏实战。比如有的卷子编程题占六成那你就得优先保证代码能跑通有的卷子全是概率推导那公式熟练度就是第一优先级。2.2 分类标签的具体定义与操作步骤分类不是随便看看就行得有明确的判定规则否则同一道题两个人可能归到不同类。我的做法是概率统计类题目核心是求期望、方差、条件概率、贝叶斯更新、分布识别。典型问法包括「求某个随机变量的期望」「已知先验求后验」「抛硬币直到出现连续两次正面期望次数是多少」。随机过程与衍生品类涉及布朗运动、伊藤引理、期权定价、蒙特卡洛模拟、马尔可夫链。典型问法包括「用风险中性定价求期权价格」「证明某个过程是鞅」「模拟一条几何布朗运动路径」。编程与算法类要求写代码实现某个功能或者分析算法复杂度。典型问法包括「实现一个限价订单簿的撮合逻辑」「给定数组求最大子序和」「设计一个数据结构支持 O(1) 插入和查询中位数」。策略与市场微观结构类涉及买卖价差、市场冲击、订单流、做市策略逻辑。典型问法包括「解释什么是逆向选择」「如何用订单簿不平衡预测短期价格」「设计一个简单的做市策略并说明风险点」。操作上我建议用表格记录每套卷子的题型分布格式如下卷号概率统计随机过程编程算法策略微观总题量卷一523010卷二216110..................这张表填完你就能一眼看出哪家偏编程、哪家偏理论。接下来按「先补短板、再刷目标机构」的顺序安排时间。如果你编程弱但目标机构编程题占比高那就先把编程类题目集中刷三天再回头刷整套。2.3 优先级排序时间有限时先刷哪几套十套卷子全刷完至少需要三十到四十小时如果你只有一周准备时间必须做取舍。我的优先级规则是第一优先级目标机构的卷子。如果你已经投了其中某几家先把那几家的卷子刷透确保每道题都能独立复现解题过程。第二优先级题型覆盖最全的卷子。通常有一两套卷子题型分布均匀没有明显偏科这种卷子适合用来检验综合水平。第三优先级风格差异最大的卷子。比如你目标机构偏理论那就找一套偏编程的卷子来刷强迫自己切换思维模式避免考试时遇到不熟悉的题型直接懵掉。提示不要因为某套卷子「看起来难」就跳过。难往往意味着它覆盖了你没掌握的知识点跳过等于把漏洞留到考场上。3. 概率统计与随机过程手推公式的四个核心套路3.1 期望与条件期望的递推法量化笔试里最高频的题型就是求期望尤其是那种「重复某个过程直到出现特定结果」的题。比如「抛一枚公平硬币直到出现连续两次正面为止求期望抛掷次数」。这类题的标准解法是设状态、列方程、解递推。设 E0 为当前没有连续正面的期望次数E1 为当前已经有一个正面的期望次数。则E0 1 0.5 * E1 0.5 * E0E1 1 0.5 * 0 0.5 * E0解这个方程组得到 E0 6。这个套路的通用步骤是先定义状态已经匹配了多少前缀再对每个状态列转移方程最后解线性方程组。参数说明0.5 是硬币正反面概率如果是非公平硬币就替换成对应概率E1 方程里的 0 表示已经完成目标不需要再抛。代码验证可以用蒙特卡洛模拟import random def simulate(trials100000): total 0 for _ in range(trials): flips 0 consecutive_heads 0 while consecutive_heads 2: if random.random() 0.5: consecutive_heads 1 else: consecutive_heads 0 flips 1 total flips return total / trials print(simulate()) # 输出应接近 6逻辑说明每次模拟独立抛硬币直到连续两次正面停止记录总次数。参数 trials 控制模拟次数次数越多结果越接近理论值。如果理论推导结果是 6模拟结果在 5.95 到 6.05 之间就说明推导正确。3.2 布朗运动与伊藤引理的公式速查随机过程类题目里布朗运动和伊藤引理是绕不开的。常见考法包括给定一个随机过程求其微分形式或者给定微分方程求其解。核心公式必须背熟标准布朗运动dW_t满足 W_t - W_s ~ N(0, t-s)伊藤引理若 X_t 满足 dX_t μ dt σ dW_t则对 f(X_t, t) 有 df (∂f/∂t μ ∂f/∂x 0.5 σ² ∂²f/∂x²) dt σ ∂f/∂x dW_t几何布朗运动dS_t μ S_t dt σ S_t dW_t解为 S_t S_0 exp((μ - 0.5σ²)t σ W_t)考试时最常见的坑是把伊藤引理里的二阶项漏掉。记住只要函数里有 X_t 的平方或更高次项二阶导就不为零必须保留。我一般会在草稿纸上先把 f 对 x 的一阶导和二阶导都写出来再代入公式避免心算出错。3.3 期权定价的两种手算路径期权定价题通常要求用风险中性方法或者构造无套利组合来推导。以欧式看涨期权为例二叉树模型是最容易手算的路径设当前股价 S0100执行价 K100无风险利率 r0波动率对应上涨因子 u1.1下跌因子 d0.9到期时间一步。则上涨后股价 Su110期权价值 Cumax(110-100,0)10下跌后股价 Sd90期权价值 Cdmax(90-100,0)0风险中性概率 p(1 - d)/(u - d)(1-0.9)/(1.1-0.9)0.5期权现值 C pCu (1-p)Cd 0.510 0.50 5如果是两步二叉树就倒推两轮。参数说明u 和 d 通常由波动率决定uexp(σ√Δt)d1/up 的公式在 r0 时简化为 (1-d)/(u-d)如果 r 不为零则 p(exp(rΔt)-d)/(u-d)。注意手算二叉树时每一步的折现因子别漏掉。r0 时折现因子为 1但 r 不为零时要除以 exp(rΔt)。3.4 马尔可夫链的稳态分布求解马尔可夫链类题目通常给一个转移矩阵要求求稳态分布或者求某个状态的期望访问次数。稳态分布 π 满足 πP π 且 π 各分量之和为 1。手算步骤写出转移矩阵 P设 π (π1, π2, ..., πn)列出方程组 πP π再加上 Σπi 1解方程组例如两状态转移矩阵 P [[0.8, 0.2], [0.3, 0.7]]则π1 0.8π1 0.3π2π2 0.2π1 0.7π2π1 π2 1解得 π1 0.6π2 0.4。这个结果表示长期来看系统有 60% 时间处于状态 1。4. 编程与算法题从订单簿到动态规划的实现细节4.1 限价订单簿撮合逻辑的代码框架订单簿题是量化编程笔试里出现频率最高的题型之一。题目通常要求实现一个简单的限价订单簿支持插入限价单、市价单并能返回成交结果。核心数据结构是两个优先队列买单按价格从高到低排序卖单按价格从低到高排序。价格相同时按时间优先。import heapq from collections import deque class OrderBook: def __init__(self): self.bids [] # 最大堆存 (-price, time, order_id, qty) self.asks [] # 最小堆存 (price, time, order_id, qty) self.time 0 def add_limit_order(self, side, price, qty, order_id): self.time 1 if side buy: heapq.heappush(self.bids, (-price, self.time, order_id, qty)) else: heapq.heappush(self.asks, (price, self.time, order_id, qty)) self.match() def add_market_order(self, side, qty): if side buy: while qty 0 and self.asks: price, t, oid, aqty heapq.heappop(self.asks) traded min(qty, aqty) qty - traded aqty - traded if aqty 0: heapq.heappush(self.asks, (price, t, oid, aqty)) else: while qty 0 and self.bids: neg_price, t, oid, bqty heapq.heappop(self.bids) traded min(qty, bqty) qty - traded bqty - traded if bqty 0: heapq.heappush(self.bids, (neg_price, t, oid, bqty)) def match(self): while self.bids and self.asks: best_bid -self.bids[0][0] best_ask self.asks[0][0] if best_bid best_ask: _, t1, oid1, qty1 heapq.heappop(self.bids) _, t2, oid2, qty2 heapq.heappop(self.asks) traded min(qty1, qty2) qty1 - traded qty2 - traded if qty1 0: heapq.heappush(self.bids, (-best_bid, t1, oid1, qty1)) if qty2 0: heapq.heappush(self.asks, (best_ask, t2, oid2, qty2)) else: break逻辑说明买单用负价格存入最小堆模拟最大堆效果时间戳保证同价格下先到先成交。参数说明side 取 buy 或 sellprice 是限价qty 是数量order_id 用于标识订单。撮合条件是最优买价大于等于最优卖价。这个框架在笔试里足够用但如果题目要求支持撤单就需要额外维护一个订单 ID 到堆中元素的映射撤单时标记失效而不是直接删除。4.2 动态规划题的识别与状态定义量化笔试里的动态规划题通常包装成「最优交易」「最大收益」「最小成本」等形式。识别信号是问题可以分解成重叠子问题且每个子问题的最优解可以组合成全局最优解。常见题型包括股票买卖最大收益允许 k 次交易硬币找零最小硬币数最长递增子序列编辑距离以「最多完成 k 笔交易的最大收益」为例状态定义是关键。设 dp[i][j][0] 表示第 i 天、最多 j 笔交易、当前不持股的最大收益dp[i][j][1] 表示当前持股的最大收益。转移方程dp[i][j][0] max(dp[i-1][j][0], dp[i-1][j][1] price[i])dp[i][j][1] max(dp[i-1][j][1], dp[i-1][j-1][0] - price[i])参数说明i 从 1 到 nj 从 1 到 k。初始化 dp[0][j][0]0dp[0][j][1]-inf。最终答案是 dp[n][k][0]。def max_profit(k, prices): n len(prices) if n 0 or k 0: return 0 dp [[[0, float(-inf)] for _ in range(k1)] for _ in range(n1)] for i in range(1, n1): for j in range(1, k1): dp[i][j][0] max(dp[i-1][j][0], dp[i-1][j][1] prices[i-1]) dp[i][j][1] max(dp[i-1][j][1], dp[i-1][j-1][0] - prices[i-1]) return dp[n][k][0]逻辑说明外层循环遍历天数内层循环遍历交易次数。注意买入时消耗一次交易次数所以从 j-1 转移。参数 k 是最大交易笔数prices 是每日价格列表。4.3 时间复杂度分析的常见陷阱编程题除了写代码还经常要求分析复杂度。这里有两个容易翻车的地方第一堆操作的时间复杂度是 O(log n)不是 O(1)。在订单簿题里每次插入和弹出都是 O(log n)如果题目要求分析整体复杂度别写成 O(n)。第二递归算法的时间复杂度不能只看递归深度。比如朴素递归求斐波那契数列是 O(2^n)不是 O(n)。如果加了记忆化才是 O(n)。提示笔试时如果时间紧张先把代码写对复杂度分析写在注释里。很多阅卷人更看重代码逻辑是否正确复杂度写错扣分有限但代码跑不通直接零分。5. 避坑与排查十套卷子里最容易翻车的五个地方5.1 答案里的公式符号和题目定义不一致现象对照答案时发现公式里用的符号和题目里的定义对不上比如题目用 σ 表示波动率答案里用 σ² 表示方差但中间推导时混用了。原因整理答案的人可能从不同来源拼凑没有统一符号体系。解决自己动手把每道题的符号定义重新写一遍确保前后一致。如果答案里的符号和题目冲突以题目为准自己重新推导一遍。5.2 编程题答案只给代码不给输入输出示例现象答案里有一段代码但没有说明输入格式和预期输出你不知道怎么验证。原因整理时只保留了核心逻辑省略了测试用例。解决自己补测试用例。比如订单簿题构造几笔限价单和市价单手动算出预期成交结果再跑代码对比。如果结果不一致先检查堆的排序方向是否正确。5.3 概率题答案跳步导致看不懂推导过程现象答案从第一步直接跳到第三步中间省略了关键的代数变换。原因整理者默认读者能心算补全但实际上大多数人需要看到完整步骤。解决遇到跳步的地方自己在草稿纸上把中间步骤补全。如果补不出来说明这个知识点没掌握回去翻教材或者找同类题练手。5.4 不同卷子的同一道题答案互相矛盾现象卷三和卷七有一道类似的期望题但答案不一样。原因题目条件可能有细微差别比如一个是「直到出现正面」另一个是「直到出现连续两次正面」。解决逐字对比题目条件确认差异点。如果条件完全相同但答案不同以推导过程更完整的那份为准另一份大概率有误。5.5 策略题答案过于笼统没有具体参数现象策略设计题答案只写了「用订单簿不平衡因子预测价格」但没说不平衡因子怎么算、阈值怎么定。原因这类题本身开放性强答案可能只是方向性提示。解决自己补全参数。比如订单簿不平衡因子可以定义为 (bid_volume - ask_volume) / (bid_volume ask_volume)阈值用历史数据回测确定。笔试时如果遇到这类题先写清楚假设和参数定义再展开逻辑。6. 从刷题到上机用 Python 复现三类高频题型的验证脚本刷完十套卷子不等于万事大吉笔试里经常要求现场写代码验证思路。我习惯在考前把三类高频题型各写一个验证脚本考试时直接改参数就能用。第一类是蒙特卡洛模拟用来验证期望和概率结果。比如验证「连续两次正面的期望次数」脚本跑十万次结果在 6 附近就说明推导正确。第二类是二叉树定价把步数、波动率、利率做成参数改一下就能算不同期权。第三类是订单簿撮合把买卖单序列写成列表跑一遍看成交结果是否符合预期。# 通用蒙特卡洛验证框架 import random def mc_expectation(simulate_once, trials100000): total 0 for _ in range(trials): total simulate_once() return total / trials # 示例验证连续两次正面的期望次数 def one_trial(): flips 0 streak 0 while streak 2: if random.random() 0.5: streak 1 else: streak 0 flips 1 return flips print(mc_expectation(one_trial))逻辑说明mc_expectation 接收一个单次模拟函数重复调用并取平均。参数 trials 控制模拟次数一般十万次足够。这个框架可以套用到任何求期望的题目上只需要改 one_trial 里的逻辑。我自己的习惯是考前一周把这三类脚本各跑一遍确认环境没问题、库都装好了。考试时如果允许用本地环境直接改参数如果不允许就在草稿纸上手算关键步骤用脚本验证思路。从那以后我每次准备量化笔试都会先把这三类脚本跑通再刷题避免考场上因为环境问题翻车。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询