Akuna Capital 是芝加哥本土起家、专注期权做市的 prop trading 公司,在中国留学生圈知名度不如 Citadel / Optiver,但实习生招聘量却是同体量公司里最大的之一(2026 全球 ~90 个实习 offer,其中 SDE ~40 + Trader ~30 + Quant Research ~20)。
它的 OA 走 HackerRank,70 分钟 4-5 题,特点是编程 + 概率 + 业务知识混合——只刷 LeetCode 的同学经常 OA 通过但 onsite 挂掉。本文按 2026 春季最新候选人反馈,把 OA 题型、三个 track 差异、备考路径讲一遍。
Akuna Intern OA 概览
| 维度 | 详情 |
|---|---|
| 平台 | HackerRank |
| 时长 | 70 分钟 |
| 题量 | 4-5 题(含 MCQ + 编程) |
| 难度 | LC Easy/Medium 算法 + 2 道概率/数学 MCQ + 1 道场景题 |
| 通过线 | 编程题 90%+ AC 且 MCQ 全对 |
| 反馈周期 | 7-10 天 |
| Next Step | Super Day(3-4 轮 onsite,含 trading game) |
重要变化:2026 cycle 起 Akuna 把 SDE / Trader / Quant Research 三个 track 的 OA 题库部分分开——SDE 偏算法 + 系统题,Trader / Quant 偏概率 + 心算。一份 OA 通常包含 2 道公共编程题 + 2-3 道 track-specific MCQ。
真题一:Order Book Simulator(SDE / Trader 共有)
题目描述
实现一个简化的 limit order book,支持以下指令:
ADD <order_id> <BUY|SELL> <price> <qty>
CANCEL <order_id>
PRINT
ADD 后必须立即做 matching:buy 与 sell 价格交叉则成交(按价格优先 + 时间优先),输出每笔成交 MATCH <buy_id> <sell_id> <price> <qty>。
PRINT 输出 best bid / best ask 与各自挂单总量。
解题思路
经典 limit order book,用两个堆维护:
- buy_book:最大堆(取 best bid 最高价)
- sell_book:最小堆(取 best ask 最低价)
注意:HackerRank 上 70 分钟拿不完所有点,但只做 ADD + matching 部分通常够 80% AC。CANCEL 用 lazy deletion(id → cancelled set)即可,不要真的从 heap 里删。
Python 解法
import heapq
from collections import defaultdict
class OrderBook:
def __init__(self):
self.buy = [] # max heap: (-price, ts, id, qty)
self.sell = [] # min heap: (price, ts, id, qty)
self.qty = {} # id -> remaining qty
self.cancelled = set()
self.ts = 0
def _alive_top(self, heap):
while heap and (heap[0][2] in self.cancelled or self.qty.get(heap[0][2], 0) == 0):
heapq.heappop(heap)
return heap[0] if heap else None
def add(self, oid, side, price, qty):
self.ts += 1
self.qty[oid] = qty
matches = []
if side == "BUY":
while qty > 0:
top = self._alive_top(self.sell)
if not top or top[0] > price:
break
sp, sts, sid, sqty = top
trade = min(qty, self.qty[sid])
matches.append(("MATCH", oid, sid, sp, trade))
qty -= trade
self.qty[sid] -= trade
self.qty[oid] -= trade
if self.qty[sid] == 0:
heapq.heappop(self.sell)
if qty > 0:
heapq.heappush(self.buy, (-price, self.ts, oid, qty))
else: # SELL
while qty > 0:
top = self._alive_top(self.buy)
if not top or -top[0] < price:
break
bp, bts, bid, bqty = top
trade = min(qty, self.qty[bid])
matches.append(("MATCH", bid, oid, -bp, trade))
qty -= trade
self.qty[bid] -= trade
self.qty[oid] -= trade
if self.qty[bid] == 0:
heapq.heappop(self.buy)
if qty > 0:
heapq.heappush(self.sell, (price, self.ts, oid, qty))
return matches
def cancel(self, oid):
self.cancelled.add(oid)
self.qty.pop(oid, None)
def best(self):
b = self._alive_top(self.buy)
s = self._alive_top(self.sell)
bb = (-b[0], sum(self.qty[i] for _, _, i, _ in self.buy if i not in self.cancelled and -b[0] == -b[0])) if b else None
sa = (s[0], sum(self.qty[i] for _, _, i, _ in self.sell if i not in self.cancelled)) if s else None
return bb, sa
时间复杂度:amortized O(log n) per ADD
坑:matching 时一定要先看 _alive_top——否则 heap 顶可能是已取消订单,会输出错误的 match。
真题二:Coin Flip Expected Value(Trader / Quant Research 共有)
题目描述(MCQ 风格)
一枚均匀硬币最多抛 10 次,但出现连续两次正面(HH)就停止。设 X = 抛掷总次数。求 E[X]。
解题思路
经典状态期望——设 $E_0$ = 当前没有连续 H 时还需要的期望次数,$E_1$ = 当前已经一次 H 时还需要的期望次数。
不带上限时:
$$E_0 = 1 + 0.5 E_1 + 0.5 E_0 \implies E_0 = 6$$
但题目有"10 次封顶"约束,要 倒推 DP:
def expected_flips(N=10):
# E[k][s]: 还剩 k 次时、当前状态 s (0 或 1 = 已 H) 的期望抛掷次数
# 状态 2 = HH 已出现(吸收态,贡献 0)
INF = N + 1
dp = [[0, 0] for _ in range(N + 1)]
# 边界 k = 0:再不抛了,期望 0;但如果还没出 HH,等价于强制结束
for k in range(1, N + 1):
# 状态 0:本次抛一次
dp[k][0] = 1 + 0.5 * dp[k - 1][1] + 0.5 * dp[k - 1][0]
# 状态 1:本次抛一次;若 H 则结束,T 则回到 0
dp[k][1] = 1 + 0.5 * 0 + 0.5 * dp[k - 1][0]
return dp[N][0] # 起点:还剩 N 次,状态 0
print(expected_flips(10)) # ≈ 5.97
答案:约 5.97 次,逼近无上限的 6。 为什么这道题反复出现:Akuna 想确认你懂得把"最多 10 次"这一类有限边界用 backward DP 处理——不是简单套公式。
真题三:Pricing Permutations(SDE 偏 algo 题)
题目描述
给定一个长度 n 的浮点数组 prices,对每个位置 i,求"以 i 为起点、严格递增子序列"的乘积之和 mod 1e9+7(每条子序列贡献 ∏ prices[k])。约束:n ≤ 1000,prices ∈ (0, 1e6)。
解题思路
类似 LC 300 LIS 的 sum-of-product 变种:
- $f[i]$ = 以 i 为起点的所有"严格递增子序列乘积之和"
- 转移:$f[i] = prices[i] \cdot (1 + \sum_{j > i, prices[j] > prices[i]} f[j])$
- 顺序从右到左
Python 解法
MOD = 10 ** 9 + 7
def pricing_sum(prices):
n = len(prices)
f = [0] * n
for i in range(n - 1, -1, -1):
s = 1 # 子序列只含 i 自己
for j in range(i + 1, n):
if prices[j] > prices[i]:
s = (s + f[j]) % MOD
f[i] = int(prices[i] * s) % MOD
return sum(f) % MOD
时间复杂度:O(n²),n=1000 完全 OK 坑:浮点 × 整数模运算——题目通常承诺 prices 是整数;如果是浮点,最后取整再 mod。
三个 Track 的 OA 差异
| Track | 编程题 | MCQ 重点 | 推荐准备 |
|---|---|---|---|
| SDE | 数据结构 + 系统题(order book、cache、graph) | 时间复杂度、内存模型、并发基础 | LC + CTCI System Design 章节 |
| Trader | 简化版编程 + 模拟 | 心算、概率、博弈论、做市基础 | Heard on the Street + 100 Brainteasers |
| Quant Research | numpy / pandas + 简单 stats | 期望值、方差、布朗运动、option 定价直觉 | Hull《Options》+ Cornell ORIE 课件 |
强烈建议:投递时只选一个 track——Akuna 的 ATS 会把"投三个 track"标记为"focus unclear",影响 recruiter screen。
备考时间表(4 周)
| 周 | 重点 | 资源 |
|---|---|---|
| W1 | LC Medium 50 题(heap / DP / graph) | LeetCode 高频面经 |
| W2 | 概率 100 题 + 心算 | Heard on the Street + Akuna 历年 brainteaser |
| W3 | Order Book / Trading 业务基础 | Hull《Options》+ Akuna 官方博客 trading article |
| W4 | Mock OA 2-3 次 + onsite trading game 模拟 | 一亩三分地 Akuna 真题贴 |
FAQ
Q1:Akuna Capital Intern OA 难度怎么样?
编程难度 LC Easy-Medium,但整体难在"通过线高 + 时间紧"。70 分钟 4-5 题,意味着平均每题 12-15 分钟必须做完。SDE candidate 通常报告编程题全做 + MCQ 错 1 个是过关阈值。
Q2:Akuna OA 可以用什么语言?
HackerRank 默认提供 Python / C++ / Java。Trader / Quant Research candidate 多用 Python(写得快),SDE 多用 C++(Akuna 工程团队偏 C++ 文化)。建议:选你能 70 分钟内 debug 完的语言,不要为了 culture fit 选不熟悉的。
Q3:Akuna OA 不过还能再投吗?
12 个月内同一 track 不能重投,但换 track 可以(例如 SDE 挂了之后投 Quant Research)。Akuna 内部会保留之前 OA 成绩,所以第一次 OA 写得差,第二次门槛会变高——慎选 track。
Q4:Akuna OA 通过后多久 Onsite?
通常 1-2 周 进入 Recruiter Call → Super Day(一天连续 3-4 轮)。Super Day 包含一个 Trading Game:5-6 人组队,30 分钟内做市 + 套利。这是 Akuna 招牌环节——OA 拿满分但 Trading Game 表现差的 candidate 70% 被拒。
Q5:Akuna Trading Game 怎么准备?
模拟做市,常见情景:(1)给定某 asset 的真实价格分布,你定一个 bid-ask spread;(2)市场会向你 hit 或 lift,你要动态调整 inventory。核心技巧:永远算 expected value、控制单笔损失上限、不要 chase prices。油管搜 "Akuna Trading Game" 有玩家复盘视频。
Q6:Akuna 实习生薪资如何?
2026 cycle 美国实习:
- SDE / Trader / Quant Research 三个 track起薪相同:$10-12K/月(按 10-12 周计算)
- Sign-on:$5K(首次投递有)
- Return offer 率:~60%,全职 base $135-160K + $50-150K bonus(按业绩)
联系方式
如果你正在准备 Akuna Capital、Optiver、IMC、Belvedere 这类期权做市 + prop trading 公司的实习 / 全职,OA 只是入门门槛——onsite 的 trading game + brainteaser 才是淘汰主力。我们整理了 2025-2026 cycle Akuna 真题 + Trading Game 复盘 + brainteaser 题库,欢迎联系交流。
立即添加微信 Coding0201,获取 Akuna OA 真题与 Trading Game 模拟。
- Email:[email protected]
- Telegram:@OAVOProxy