SEO Title: Optiver QR Intern 面经 2026:三道高频量化题深度拆解与备考策略
Optiver QR Intern 面经 2026:三道高频题实战拆解
Optiver QR Intern 面经 2026 是本篇主线。
首先,三题都不长。
其次,三题都很考建模。
更关键的是边界处理能力。
此外,这对应 2026年最新 面试经验。
并且,这是我们学员贡献的最新面经。
因此,题型和追问都很贴近实战。
与此同时,你可以直接按题训练。
2026 面试流程深度复盘:Optiver QR Intern 面经 2026
首先,Optiver QR Intern 面经 2026 的节奏很快。
常见顺序是 OA、技术面、终面。
与此同时,每轮都看推导表达。
最后,面试官会临场改条件。
其次,OA 题面通常很短。
但是,约束会非常密。
比如,是否允许负持仓。
因此,先做最小样例最稳。
另外,技术面重视口头建模。
你要先给状态定义。
然后,再讲状态转移。
换句话说,结构先于代码。
最后,终面看工程意识。
你要主动讲异常处理。
同时,说明数值稳定策略。
因此,可读性和鲁棒性都重要。
面试节奏建议:
- 先读题并圈定约束。
- 先写状态,再过样例。
- 先讲正确性,再谈优化。
- 先给边界,再给代码。
核心题目解析
题目一:有限步持仓路径计数
首先,设 dp[t][h] 为走 t 步到 h 的方案数。
每步只能买一股或卖一股。
因此,转移来自相邻持仓。
若禁负持仓,就截断 h<0。
其次,目标是从 k 到 n。
步数最多为 m。
因此,答案是 t<=m 时到 n 的总和。
但是,t 与 n-k 需同奇偶。
同时,可用组合数学做校验。
若走 t 步,净变化是 n-k。
买入次数是 (t+n-k)/2。
若不是整数,则该 t 无解。
另外,复杂度要主动说明。
若持仓上界为 H,时间是 O(mH)。
同时,空间可滚动到一维。
因此,工程上可稳定落地。
from collections import defaultdict
def count_trade_sequences(n: int, k: int, m: int, allow_negative: bool = True) -> int:
# dp[h]: current step ways to reach holding h
dp = defaultdict(int)
dp[k] = 1
ans = 0
for step in range(1, m + 1):
nxt = defaultdict(int)
for h, cnt in dp.items():
nxt[h + 1] += cnt # Buy one share
if allow_negative or h - 1 >= 0:
nxt[h - 1] += cnt # Sell one share
dp = nxt
# Parity pruning: only valid when step and net change parity match
if (step - (n - k)) % 2 == 0:
ans += dp.get(n, 0)
return ans
# Example: n=2, k=1, m=3 => 4
题目二:目标权重下的资金分配与调仓
首先,这题是再平衡系统设计。
输入是目标权重和价格矩阵。
第一步先归一化权重。
这样可避免权重和漂移。
其次,每日先算组合总市值。
然后计算目标股数。
交易量等于目标减当前。
并且,要考虑整股与现金约束。
此外,数据质量决定上限。
缺失价格可做前值填充。
停牌标的可暂缓调仓。
与此同时,要持续记录跟踪误差。
但是,小权重会引发抖动交易。
可设置最小交易门槛。
小于门槛时先不下单。
因此,交易成本会更可控。
flowchart TD
A[读取当日收盘价] --> B[更新持仓市值与现金]
B --> C[归一化目标权重]
C --> D[计算目标持仓股数]
D --> E[生成买卖交易量]
E --> F[执行交易并更新账户]
F --> G[记录跟踪误差与风控指标]
G --> A
def rebalance_portfolio(prices, target_weights, init_cash):
"""
prices: List[List[float]], shape = [T][N]
target_weights: List[float], length N
return: daily logs with holdings, cash, and tracking error
"""
n = len(target_weights)
w_sum = sum(target_weights)
w = [x / w_sum for x in target_weights] # normalize weights
shares = [0] * n
cash = float(init_cash)
logs = []
for day, px in enumerate(prices):
total_value = cash + sum(shares[i] * px[i] for i in range(n))
# target shares with integer constraint
target_shares = [int((total_value * w[i]) // max(px[i], 1e-12)) for i in range(n)]
trade = [target_shares[i] - shares[i] for i in range(n)]
# enforce cash constraint on buy side
buy_cost = sum(max(trade[i], 0) * px[i] for i in range(n))
if buy_cost > cash and buy_cost > 0:
ratio = cash / buy_cost
trade = [int(t * ratio) if t > 0 else t for t in trade]
# execute trades
cash -= sum(trade[i] * px[i] for i in range(n))
shares = [shares[i] + trade[i] for i in range(n)]
new_value = cash + sum(shares[i] * px[i] for i in range(n))
cur_w = [(shares[i] * px[i]) / max(new_value, 1e-12) for i in range(n)]
tracking_error_l1 = sum(abs(cur_w[i] - w[i]) for i in range(n))
logs.append({
"day": day,
"cash": cash,
"shares": shares[:],
"tracking_error_l1": tracking_error_l1
})
return logs
题目三:均匀分布价格下的最优成交期望
首先,这题是序贯决策模型。
价格服从 Unif(a,b) 且 iid。
你要完成 n 单位成交。
并且,最多可用 k 次固定价 p。
其次,设 V[i][j] 为最优总收益。
i 是剩余成交单位。
j 是剩余固定价次数。
因此,状态定义很直接。
具体来说,每步先观测 x。
然后比较两种动作收益。
其一是按市场价成交。
其二是按固定价成交。
此外,这是阈值策略。
阈值可写成常数 c。
当 x<c 时,用固定价更优。
否则,按市场价更优。
同时,可先做极端值自检。
若 p<=a,固定价价值很低。
若 p>=b,固定价通常更优。
因此,结果应符合该直觉。
def e_max_uniform(a: float, b: float, c: float) -> float:
# E[max(X, c)] for X ~ Unif(a, b)
if c <= a:
return (a + b) / 2.0
if c >= b:
return c
return c * (c - a) / (b - a) + (b * b - c * c) / (2.0 * (b - a))
def expected_fill_price(n: int, k: int, a: float, b: float, p: float) -> float:
# V[i][j]: max expected total revenue with i units left and j fixed-price rights
k = min(k, n)
V = [[0.0] * (k + 1) for _ in range(n + 1)]
ex = (a + b) / 2.0
for i in range(1, n + 1):
V[i][0] = V[i - 1][0] + ex
for i in range(1, n + 1):
for j in range(1, min(i, k) + 1):
c = p + V[i - 1][j - 1] - V[i - 1][j]
V[i][j] = V[i - 1][j] + e_max_uniform(a, b, c)
return V[n][k] / n # expected average fill price
专家备考策略与高频考点:Optiver QR Intern 面经 2026
首先,Optiver QR Intern 面经 2026 的共性很明显。
题目看似交易问题。
核心却是状态建模能力。
因此,要先练“状态-转移-边界”模板。
其次,你要准备口头证明。
先讲不变量。
再讲边界与反例。
同时,补上复杂度上界。
此外,行为题也很关键。
面试官会看协作方式。
你要把结果数据化表达。
这样更像真实工程实践。
最后,可按四周冲刺。
第一周刷路径计数。
第二周刷再平衡实现。
第三周刷 Bellman 推导。
核心考点:
- 约束条件下的状态定义能力。
- 路径计数与奇偶约束判断。
- 价格矩阵下的持仓更新能力。
- 数值稳定与交易成本权衡。
- 口头推导与代码一致性。
STAR 应对策略:
- S:波动加剧,组合偏离阈值。
- T:两周内重构调仓模块。
- A:先归一化权重,再加现金缓冲。
- R:跟踪误差下降,成交更稳定。
总结与行动号召(CTA)
总而言之,Optiver QR Intern 面经 2026 值得反复刷。
它同时考数学直觉。
也考工程细节。
而且,2026年最新题风更偏实战。
因此,建议你先做限时复盘。
先独立写三题。
再做对拍与压力测试。
随后,做一次口头讲解演练。
最后,可先看权威算法参考。
同时,预约联系我们的专家进行一对一面试辅导。
然后,用 Optiver QR Intern 面经 2026 做二次模拟。