← 返回部落格列表 Optiver OA 一亩三分地真題|Trading Sequences + Allocation + Order Book 三件套 OA輔助 2026
Optiver

Optiver OA 一亩三分地真題|Trading Sequences + Allocation + Order Book 三件套 OA輔助 2026

2026-05-23

Optiver 2026 春招在一畝三分地上的 OA 反饋密度很高,三地(阿姆斯特丹 / 芝加哥 / 悉尼)題庫基本同源,Trading Sequences、Allocation、Order Book 三條主線佔了約 85% 的題面比例。本文按一畝三分地最近 60 天發帖整理題型分布、Python 解法和 OA輔助 接入方式,幫你少走彎路。

Optiver OA 一畝三分地反饋速覽(2026 春招)

維度 詳情
投放渠道 HackerRank + Optiver 自研線上 IDE
時長 70–90 分鐘
題量 2–3 題(必含 1 道 simulation)
平均通過率 一畝三分地反饋約 38%
評測特點 全自動判題 + 隱藏 corner case + 時間複雜度限制
冷卻期 6 個月,跨城市單獨計數

主線一:Trading Sequences(數列模擬)

題型描述

給定一秒級成交價陣列 prices[],找出最長非遞減子段,且子段平均價 ≥ 全局均價。一畝三分地 2026 帖子中這題反覆出現,注意「平均價 ≥」是閉區間。

Python 解法

def longest_strong_run(prices):
    if not prices:
        return 0
    avg = sum(prices) / len(prices)
    best = 0
    start = 0
    cur_sum = 0
    for i, p in enumerate(prices):
        if i > 0 and prices[i] < prices[i - 1]:
            start = i
            cur_sum = 0
        cur_sum += p
        length = i - start + 1
        if cur_sum / length >= avg and length > best:
            best = length
    return best

複雜度:O(n) 時間 / O(1) 空間。一畝三分地反饋隱藏 case 有「全降序」「全相等」「長度=1」邊界。

主線二:Allocation(按比例配額分配)

題型描述

n 個客戶對一籃子標的下達申購量 demand[i],可用總量 S < sum(demand)。要求按「比例 + 整手取整 + 餘量按時間戳輪詢」規則給每個客戶分配最終成交量。

Python 解法

def pro_rata_allocate(demands, ts, S, lot=1):
    n = len(demands)
    total = sum(demands)
    base = [(d * S) // total // lot * lot for d in demands]
    leftover = S - sum(base)
    order = sorted(range(n), key=lambda i: ts[i])
    i = 0
    while leftover >= lot and i < n:
        idx = order[i]
        if base[idx] < demands[idx]:
            base[idx] += lot
            leftover -= lot
        i += 1
    return base

複雜度:O(n log n),瓶頸在 timestamp 排序。一畝三分地反饋最常見 corner case 是「lot 不能整除 S」時餘量未正確輪詢。

主線三:Order Book(限價撮合)

題型描述

實作一個最小可行 Limit Order Book,支援 add(side, price, qty)match()match() 撮合所有可成交對,回傳 [(buy_id, sell_id, price, qty), ...]

Python 解法

import heapq
from collections import defaultdict

class OrderBook:
    def __init__(self):
        self.buys = []
        self.sells = []
        self.qty = defaultdict(int)
        self.ts = 0

    def add(self, side, price, qty, oid):
        self.ts += 1
        self.qty[oid] = qty
        if side == 'B':
            heapq.heappush(self.buys, (-price, self.ts, oid))
        else:
            heapq.heappush(self.sells, (price, self.ts, oid))

    def match(self):
        fills = []
        while self.buys and self.sells and -self.buys[0][0] >= self.sells[0][0]:
            _, _, bid = self.buys[0]
            sp, _, sid = self.sells[0]
            q = min(self.qty[bid], self.qty[sid])
            fills.append((bid, sid, sp, q))
            self.qty[bid] -= q
            self.qty[sid] -= q
            if self.qty[bid] == 0:
                heapq.heappop(self.buys)
            if self.qty[sid] == 0:
                heapq.heappop(self.sells)
        return fills

複雜度:每次 match 平均 O(k log n),k 為本輪成交對數。

一畝三分地高頻題對照表

題型 60 天頻率 核心資料結構 易錯點
Trading Sequences ★★★★★ 滑動 + 均價 >= 不是 >
Allocation ★★★★★ 取整 + 輪詢 餘量未分配
Order Book ★★★★ 雙堆 + 數量字典 部分成交時未減庫存
價差最大化 ★★★ 單調棧 負數收益
行情字串解析 ★★ 狀態機 缺失欄位

OA輔助 實戰路徑

oavoservice 的 OA輔助 服務

一畝三分地之外,我們還做了什麼

光刷一畝三分地的帖子效率不高——一是題面會換欄位名,二是 Optiver 隱藏 case 邊界格外嚴格。我們維護了一份只在內部循環更新的 corner case 清單,包含每道主線題的 8–12 個隱藏邊界,幫你在 70 分鐘裡少踩坑。

具體方案與報價,加微信 Coding0201 溝通。


FAQ

Optiver OA 一畝三分地反饋和真實題面差距大嗎?

題面骨架基本一致,變數名 / 輸入格式偶有調整。我們見過的最大差距是 Allocation 題的 lot size 從 1 變成 100,邏輯不變但要重新調整測試用例。

三地(阿姆斯特丹 / 芝加哥 / 悉尼)OA 題庫相同嗎?

一畝三分地反饋 80% 共享,剩下 20% 是本地化變體(如悉尼場偏機率,芝加哥場偏 Order Book)。

HackerRank 平台和 Optiver 自研平台有什麼區別?

HackerRank 給 sample case 不允許自訂執行環境;自研平台允許自己寫測試用例,但隱藏 case 更嚴。建議兩套都練。

OA 沒過冷卻期多久?換崗位也算嗎?

通常 6 個月,跨城市辦公室單獨計數。換崗位(如 SWE → Trading)一般另算池子,可以更早再投。


正在準備 Optiver OA / VO?

oavoservice 長期追蹤 Optiver / Citadel / Jane Street / IMC 等量化機構的 OA + VO 真題。mentor 來自一線做市 / 自營團隊,可以提供 題型分桶、限時模擬、自研平台即時 OA輔助、行為面劇本 等 OA輔助 / VO輔助 服務。

👉 立即添加微信:Coding0201獲取 Optiver 一畝三分地高頻題與 OA輔助 方案


聯絡方式

Email: [email protected]
Telegram: @OAVOProxy