Two Sigma 是市面上 OA 體感最"硬核"的量化公司之一。它不像 Citadel 那樣把題目拆成多關組合,而是常常把 演算法、資料分析、機率推理、行為評估 全部塞進一兩關 OA 裡,要求候選人在 70-90 分鐘內同時展示多種能力。這篇文章把站內已有的 Two Sigma Quant Engineer CodeSignal 與 Two Sigma OA IPO/Sewer 真題分析 做了串聯,給一份完整的 OA 流程面經。

整體流程:3-4 週
W0 申請投遞(career site / 內推 / Hireright)
W1 發送 OA 邀請(72-96h 窗口)
W2 通過 → Phone screen(45min,技術 + 專案)
W3 Onsite 五輪(編碼 + 資料分析 + 機率 + 行為 + 專案)
W4 team match → offer 決議
W1 階段的 72-96 小時是關鍵窗口。Two Sigma 不會在信件裡告訴你具體題型分布,候選人通常在打開連結後才發現是「90 分鐘混合卷」還是「60 分鐘純演算法」。建議拿到邀請第一時間預留一個完整的 2 小時空檔,確保不被打斷。
三大題型分類
類型一:純演算法題(Quant Engineer / SWE 線)
參考站內 Two Sigma Quant Engineer CodeSignal 攻略,70 分鐘 4 題,Q1-Q4 難度遞增。Two Sigma 的 CodeSignal 與 HRT 不同:
| 維度 | Two Sigma | HRT |
|---|---|---|
| 時長 | 70 min | 70 min |
| Q1 難度 | Easy(暖手) | Easy(暖手) |
| Q2 難度 | Medium-Hard | Medium |
| Q3 難度 | Hard(圖 / DP) | Medium-Hard(數論) |
| Q4 難度 | Hard+(綜合) | Hard(綜合) |
| Cutoff | ~80 | ~78 |
Two Sigma 的 Q2 比 HRT 略難,候選人最容易在 Q2 就開始失分。
類型二:編碼 + 資料分析混合題
IPO Share Allocation + Sewer Drainage 是這個類型的代表。題目不是單純的 LC 演算法題,而是結合了:
- 業務建模:把 IPO 分配規則翻譯成程式碼邏輯
- 資料結構選型:選 heap / sorted list / array based on 輸入規模
- 邊界覆蓋:負值 / 零分配 / overflow / tie-break 規則
下面給一段典型的"IPO 分配"骨架程式碼:
import heapq
def ipo_allocate(orders: list[tuple[int, float]],
supply: int) -> dict[int, int]:
"""
orders: [(client_id, weight), ...]
supply: 可分配的總股數
依規則按 weight 加權 + 整數切分 + tie-break by client_id
"""
total_weight = sum(w for _, w in orders)
raw = [(cid, supply * w / total_weight) for cid, w in orders]
base = {cid: int(amount) for cid, amount in raw}
leftover = supply - sum(base.values())
# 按小數部分降序,tie 時按 client_id 升序,分配剩餘股
fractions = sorted(
((amount - int(amount), cid) for cid, amount in raw),
key=lambda x: (-x[0], x[1])
)
for _, cid in fractions[:leftover]:
base[cid] += 1
return base
這類題不難想,但容易寫錯 tie-break。Two Sigma reviewer 會針對小數部分的處理與排序穩定性扣分。
類型三:資料分析題(Quant Researcher / Modeling 線)
只有 QR / Modeling / Data Science 線會拿到這一類。題面通常給一份 CSV 或 SQL 資料,要求:
- 找出某指標的 top-K 列
- 計算 rolling window 統計量
- 做相關性 / 回歸 / 時間序列分析
- 資料清洗 + missing value 處理
# Two Sigma QR 風格 - rolling 因子計算
import pandas as pd
def momentum_factor(df: pd.DataFrame, window: int = 20) -> pd.Series:
"""
20 日 momentum factor: (P_t - P_{t-window}) / P_{t-window}
return: 因子序列,與 df.index 對齊
"""
return df["close"].pct_change(window)
QR 線候選人可以使用 pandas / numpy / sklearn,但禁止使用 pre-built 量化函式庫(如 zipline)。
不同職位線的 OA 路徑
| 職位線 | OA 形式 | 時長 | 題型 |
|---|---|---|---|
| Quant Engineer | CodeSignal GCA | 70 min | 4 道演算法題 |
| Software Engineer | CodeSignal GCA | 70 min | 4 道演算法題 |
| Quant Researcher | 資料分析題 | 90 min | 1-2 道資料 + 1 道機率 |
| Modeling | 資料分析 + 演算法 | 120 min | 混合 |
| Data Science | SQL + Python 資料分析 | 90 min | SQL + pandas 題 |
| Trading Intern | 機率題 + 編碼題 | 60 min | 8-10 道機率 + 1 道編碼 |
OA 真題節奏:90 分鐘混合卷的時間分配
00:00 - 00:10 快速讀完所有題目 → 估算難度
00:10 - 00:25 Q1(演算法暖手)→ 100% AC
00:25 - 00:50 Q2(資料分析 / 業務建模)→ 80%+ AC
00:50 - 01:20 Q3(綜合 hard)→ 50%+ AC
01:20 - 01:30 回頭 review + 邊界補全
90 分鐘混合卷比純演算法題更難時間分配,因為不同題型的"產出/時間"曲線不同。建議在 Q2 / Q3 切換時強制設一個時間錨點,避免在某一題陷得太深。
備考路徑推薦
| 階段 | 重點 | 推薦資源 |
|---|---|---|
| 0-1 週 | LeetCode 基礎 + CodeSignal 暖手 | LeetCode top 75 |
| 1-2 週 | CodeSignal arcade 完整通關 | CodeSignal Arcade |
| 2-3 週 | Two Sigma 歷年真題 + 資料分析 | 1point3acres 面經 + Kaggle |
| 3-4 週 | 機率 + 數學速算 | Heard on the Street + 50 nuts |
| 4 週後 | Mock + 計時 | 自己定時 90 min 混合卷 |
與 HRT / Citadel 的橫向對比
| 維度 | Two Sigma | HRT | Citadel |
|---|---|---|---|
| 演算法側重 | 綜合 + 業務建模 | 數論 + 速度 | 模擬 + 資料結構 |
| 資料分析 | QR 線必有 | 無 | Quant 線偶爾 |
| 機率題 | Trading 線必有 | Algo 線必有 | Quant 線必有 |
| OA 時長 | 70-120 min | 70 min + 60 min | 70 min |
| 通過率 | 估約 15% | 估約 20% | 估約 18% |
如果你同時收到三家的 OA 邀請,建議優先做 Two Sigma —— 題型最雜、覆蓋最全,做完之後再做其他兩家會顯得簡單。
FAQ
Q1: Two Sigma 的 CodeSignal cutoff 是多少? A: SWE / Quant Engineer 線大約 80 分。低於 75 幾乎不進 phone screen。QR 線評分維度不同,需要另議。
Q2: 資料分析題用什麼語言? A: Python(pandas / numpy / sklearn)預設。R / Julia 也可以選,但不推薦 —— reviewer 主要看 Python 程式碼。
Q3: OA 中可以查文件嗎? A: 可以。Two Sigma 不限制查 stdlib 文件。但不能查 LeetCode 題解或外部程式碼 —— 提交後會做相似度檢測。
Q4: 收到 OA 邀請後多久必須完成? A: 72-96 小時。如果實在趕不上可以信件 recruiter 申請延期,一般會給一次 24-48 小時延期機會。
Q5: Two Sigma 給應屆生 offer 的 base 大概多少? A: SWE / Quant Engineer 線 NG base 約 $200K,外加 sign-on / 股權。具體以 offer letter 為準。
寫在最後
Two Sigma 的 OA 是「全維度考核」—— 演算法 + 資料 + 機率 + 工程 + 業務建模缺一不可。如果你正在準備 Two Sigma 的 OA,可以微信 Coding0201 聯絡,發職位線 + 邀請信件截圖,先做職位線判定,再決定備考路徑。
需要面試真題? 立刻聯絡微信 Coding0201,獲取真題。
聯絡方式
- 微信:Coding0201
- Email: [email protected]
- Telegram: @OAVOProxy