Optiver OA 一畝三分地|2025 高頻題型與實戰面經

Optiver OA 一直以“速度 + 正確性”著稱,今年這套 12.4 的版本依舊不留情面:三道Coding,全是交易場景模擬,程式碼量不算大,但邏輯非常繞,任何一步漏了 edge case 都會掛。我們學員當時是 Programhelp OA無痕聯機助攻,整個過程節奏壓得很穩,三題一次過。

下面按順序覆盤一下題目內容和難度分佈。

Problem 1: Counting Trading Sequences

題意不長,但非常“Optiver 風味”。題目給你:

  • 一個價格序列
  • 要你 count all valid profitable trading sequences

核心規則:

“A valid trading sequence is defined as a pair (i, j) such that
i < j and price[i] < price[j].
Count how many such valid trading sequences exist.”

看似就是 count increasing pairs,但實際坑點很多:

  • 重複價格是否算 valid
  • 連續下降區間是否影響統計
  • 長度為 1 的區間必須忽略
  • 非嚴格上升 vs 嚴格上升需區分
  • 大輸入下需要 O(n) 或 O(n log n) 才能過

簡單暴力會 TLE,最後我們學員是用“維護字首更小元素個數”的方式做出來的。

Problem 2: Backtesting a Proportional Allocation Strategy

第二題就是典型的回測題:

“Given daily returns for multiple assets and a fixed proportional allocation vector,
compute the cumulative return of the portfolio from day 1 to day N.”

本質是模擬組合收益:

  • 輸入:returns[day][asset]
  • 每天:portfolio_return = sum(weight[i] * returns[day][i])
  • 輸出:累計收益(通常是 multiply,而不是加總)

這題真正的考點不是數學,而是:

  • 浮點誤差累積
  • weight + return 同時是小數
  • 精度不夠會導致後兩個 hidden tests 直接 fail

學員一開始用 Python float,一度卡在 89% 測試,Programhelp 提醒他“用 Decimal 重算每日累積”後順利一次 AC。

Problem 3: Order Book Matching Simulation

這道是整套 OA 難度最高的題,完全是工程級模擬。題目提供一串訂單,每個訂單格式如下:

{ "type": "buy" / "sell", "price": x, "size": y }
“Simulate an order book and return all unmatched orders after processing the list.”

你需要實現一個 雙向 order book

  • buy book:從高到低
  • sell book:從低到高
  • 每來一個新訂單就立即撮合
  • 支援 partial match
  • FIFO for orders at the same price
  • leftover 才加入 book

整個過程非常考驗細節:

  • 買盤要吃最便宜賣盤
  • 賣盤要吃最高買盤
  • partial fill 後不能直接 break,需要繼續迴圈
  • price 相同但不同時間進來的訂單要保持順序
  • 刪除 size=0 的訂單節點

很多同學掉在一個經典坑:
剩餘 size > 0 時繼續撮合,而不是直接 push 到 book。

我們學員當時也是在這個邏輯裡停頓,Programhelp 語音提醒了關鍵一步:“don’t break — continue matching until size becomes zero”,補齊後所有隱藏用例過了。

總結

Optiver 今年 OA 難度整體偏高,但出題非常穩定:

Problem Type Difficulty 考點
P1 Counting sequences 單調邏輯 + 邊界
P2 Portfolio backtest 中上 浮點精度 + 累積計算
P3 Order book simulation 交易系統模擬、佇列、排序

我們學員最終三題一次 AC,用時 50 分鐘左右。Optiver 的 OA 特點就是:
程式碼要寫得快,但更要寫得準,不允許有邏輯小錯誤。

為什麼你需要 ProgramHelp 的輔助?

Optiver 的 New Grad Package 起薪通常在 $200k – $300k (Total Comp)。這是你職業生涯中最昂貴的一場考試。

全網最全 Quant 題庫: 我們覆蓋 Optiver, Jane Street, Citadel, Akuna 等頂級公司的最新題庫。剛才提到的這三道題,我們的 Backend 系統中早有完整解法。

Ex-FAANG & Quant 導師坐鎮: 我們的輔助不是普通的“代寫”,而是由擁有實戰經驗的資深工程師進行 Real-time Coding Support

100% 安全與原創: 我們不僅保證 All Cases Passed (全綠),更注重程式碼風格的自然度。我們會根據你的過往程式碼習慣調整變數命名和邏輯結構,徹底規避 Code Signal 和 HackerRank 的查重與 AI 判定。

author avatar
jor jor
END
 0