← 返回部落格列表 BlackRock OA 2026 實戰指南|Portfolio + SQL 題型快攻
BlackRock

BlackRock OA 2026 實戰指南|Portfolio + SQL 題型快攻

2026-05-23

如果你已經把 LC Medium 刷得差不多,但 BlackRock 的 OA 題面裡滿屏都是 portfolio、return_pct、AUM、benchmark 這些金融術語,仍然有可能在 90 分鐘裡翻車。這篇文章是給 2026 春招 + 暑期 + 全職職位的 快攻指南:不是從零開始的題型梳理,而是把過去 30 天一畝三分地最頻繁出現的 4 道高頻題用「模板 + 一行業務話語翻譯」直接給你。

BlackRock OA 概覽(2026 最新)

維度 詳情
平台 HackerRank
時長 90–120 分鐘
題量 3–4 道(含 1 道 SQL)
難度 LC Medium,SQL 中等偏上
評分 自動判題 + 業務邊界 case

一畝三分地 2026 最新反饋:3 道 AC 即進 phone screen;4 道全過的薪資 offer 比例顯著升高。

題型一:Portfolio 滾動收益

import math

def rolling_sharpe(rets, k):
    n = len(rets)
    if n < k:
        return []
    s = sum(rets[:k])
    s2 = sum(r * r for r in rets[:k])
    out = []
    def emit():
        mean = s / k
        var = max(s2 / k - mean * mean, 0)
        std = math.sqrt(var)
        return mean / std * math.sqrt(252) if std > 1e-12 else 0.0
    out.append(emit())
    for i in range(k, n):
        s += rets[i] - rets[i - k]
        s2 += rets[i] * rets[i] - rets[i - k] * rets[i - k]
        out.append(emit())
    return out

時間複雜度:O(n)。

題型二:風險敞口分桶

import bisect

def bucket_exposure(holdings, thresholds):
    n = len(thresholds) + 1
    total = [0.0] * n
    max_single = [0.0] * n
    for asset, exp in holdings:
        b = bisect.bisect_right(thresholds, abs(exp))
        total[b] += exp
        if abs(exp) > abs(max_single[b]):
            max_single[b] = exp
    return list(zip(total, max_single))

時間複雜度:O(n log m)。

題型三:SQL 視窗函數 + 多表 JOIN

WITH recent AS (
    SELECT
        f.fund_id,
        f.asset_class,
        SUM(d.return_pct) AS r30
    FROM fund f
    JOIN daily_return d ON f.fund_id = d.fund_id
    WHERE d.date >= CURRENT_DATE - INTERVAL '30 days'
    GROUP BY f.fund_id, f.asset_class
), ranked AS (
    SELECT
        fund_id,
        asset_class,
        r30,
        DENSE_RANK() OVER (PARTITION BY asset_class ORDER BY r30 DESC) AS rk
    FROM recent
)
SELECT fund_id, asset_class, r30
FROM ranked
WHERE rk <= 5
ORDER BY asset_class, r30 DESC;

題型四:投資組合再平衡

def rebalance_cost(w, t, c):
    n = len(w)
    cost = 0.0
    for i in range(n):
        diff = abs(w[i] - t[i])
        cost += diff * c[i]
    return cost

表面上是「絕對值之和」,但進階版會附加約束(不能同時買入和賣出同一資產),退化為 LP / DP。

6 天衝刺方案

天數 任務
D1 滑動視窗 + 滑動方差模板 3 道
D2 二分 / 分桶 / 區間問題 4 道
D3 LeetCode SQL Top 50 + RANK / DENSE_RANK
D4 多表 JOIN + DATE_TRUNC + 時間視窗 5 道
D5 一畝三分地 BlackRock 30 天帖完整刷一遍
D6 限時 90 分鐘 mock,一次性 4 題

FAQ

BlackRock OA 必須用 Python 嗎?

可以選 Python / Java / C++,SQL 題獨立。一畝三分地反饋:90% 候選人選 Python。

SQL 題用什麼方言?

HackerRank 預設 PostgreSQL 相容;建議熟悉 WITHOVER (PARTITION BY ...)DATE_TRUNC 三大語法。

PM 職和 SDE 職 OA 有差嗎?

PM 職 SQL + 統計題占比更高(約 60%),SDE 職演算法題占比更高(約 70%)。

沒過冷卻期?

通常 6 個月,跨 BLK / Aladdin / Wealth 業務線一般另算池。


正在準備 BlackRock OA / VO?

這次很高興幫這批同學順利通過 BlackRock OA。很多同學反饋,BlackRock OA 的 SQL 邊界 case + 業務 wording 讓他們在 90 分鐘裡方寸大亂——光刷 LC SQL 50 題是不夠的,得練 BlackRock 風格的「多表 JOIN + 日期視窗 + DENSE_RANK」組合拳。

如果你也在準備 BlackRock、Vanguard、Fidelity、Citi 這類資管 / 投資科技公司的 OA,感覺一個人複習方向模糊,歡迎聯絡 oavoservice。我們會根據你的具體水平和弱點,提供專業的 OA 實戰輔助服務和一對一指導,把 Portfolio + SQL + 再平衡題型完整打通。

👉 立即加微信:Coding0201獲取 BlackRock 2026 高頻題與備考方案


聯絡方式

Email: [email protected]
Telegram: @OAVOProxy