目录
正在加载目录...

Virtu OA 真题复盘2026|四道金融 Tech 向题目

刚做完一套 Virtu OA,共 4 道,覆盖字符串解析、SQL、面向对象 Python,以及限定长度的最大子段和。整体金融交易味道很重:FIX 报文、加密货币日频价格、银行账户、投资 PnL。难度中等,不考偏门算法,主要看实现细不细心、规则对齐到不到位。

Virtu OA 真题复盘2026|四道金融 Tech 向题目

题 1:FIX Message Reconciliation(FIX 报文比对)

Virtu OA 真题复盘2026|四道金融 Tech 向题目

题意

金融交易系统里,FIX 消息通常以 tag=value 的形式写在日志中,字段之间用 ^(表示 SOH)分隔。题目给一条 House FIX 和一条 Street FIX,只需要比较四个指定标签是否完全一致:

  • 32(Order Quantity)
  • 31(Price)
  • 54(Side,1=Buy,2=Sell)
  • 48(Security ID)

四个都精确匹配就返回 “True”,否则 “False”。样例里两边这四个值一样,所以输出 True。

思路:把每条消息按 ^ 切开,再按 = 拆成 tag 和 value,建成字典。然后分别取两边的 32、31、54、48,任意一个缺失或值不相等就 False,全等才 True。无关字段不用管,价格也直接按字符串精确比较就行,和题面的 exact match 要求一致。

题 2:SQL — Cryptocurrency Price Analysis

Virtu OA 真题复盘2026|四道金融 Tech 向题目

题意

对 BTC、ETH 的历史价格做日频分析。输出五列:

  • currency
  • price_date(该日最新一条记录的日期)
  • last_price(该日最后一笔价格,保留两位小数)
  • previous_day_last_price(前一日最后价格,没有就显示 N/A)
  • price_change(当日 last 减前一日 last,算不出就 N/A)

同一天可能有多笔报价,只保留当天最新的一条。最后按 currency、price_date 升序排。

思路:先从时间戳抽日期,按币种+日期聚合,只留每天最新一条。再用窗口函数按币种分区、按日期排序,用 LAG 取前一日收盘价,计算涨跌。没有前一日就输出 N/A。价格格式化成两位小数(包括末尾 0)。核心就是「每日只留最新」+ 跨日 LAG + N/A 处理。

题 3:Python — Banking Transaction Exception

Virtu OA 真题复盘2026|四道金融 Tech 向题目

题意

用 Python 模拟银行账户,要实现两个类。

  • Transaction:初始化时接收交易类型、金额、当时余额,__str__ 输出类似 Type: …, Amount: …, Balance: … 的字符串。
  • BankAccount:用给定初始余额创建(样例 1500.0),通过 process_transaction 处理业务:
    • deposit:加余额并记历史
    • withdraw:余额够就扣并记历史,不够就抛自定义的 InsufficientFundsError
    • 还要能查看完整交易历史

每笔成功交易都要留下记录,返回文案要和题面完全一致。

思路:先自定义 InsufficientFundsError。BankAccount 内部用列表存 Transaction 对象。存款直接加余额、追加历史;取款先判断够不够,不够抛异常,够就扣并记录。展示历史时直接遍历列表,靠 Transaction 的字符串表示就行。异常类名、返回文案、历史格式任一处对不齐,隐藏用例很容易挂。

题 4:Profit Analysis(长度不超过 k 的最大子段和)

Virtu OA 真题复盘2026|四道金融 Tech 向题目

题意

数组 pnl 表示各月盈亏,正数盈利、负数亏损。要求在任意连续月份中找净收益最大的一段,且长度不能超过给定的 k。

例:pnl = [-3, 4, 3, -2, 2, 5],k = 4,子数组 [3, -2, 2, 5] 和为 8 且长度合法,是更优解。更长的段即使和更大也不能用。n 可达 2×10⁵,需要高效做法。

思路:等价于在长度 1~k 的所有连续子数组里求最大区间和。先做前缀和,再用单调队列维护长度不超过 k 的窗口内的最小前缀和。枚举右端点时,用当前前缀和减去窗口内最小前缀和更新答案,整体线性完成。注意全负的情况,按题意处理好「最大单月」或边界即可。

一点体感

四道题分别对应字符串解析、SQL 窗口、带异常的 OOP,以及长度受限的最大子段和。Virtu 这类做市商 / 交易科技 OA,外壳偏业务,考点仍是细心读规则、对齐格式与经典实现。字段名、返回值、N/A 和异常名任一处不一致都可能直接挂掉。

Virtu OA 常见问题 FAQ

整体难度怎么样?

中等。不考偏门算法,主要看细心程度和规则对齐。

和普通互联网厂 OA 有什么区别?

外壳偏业务(交易、账户、行情),但考点仍是基础实现。格式、边界、返回值要求更严,差一点就容易挂。

最容易踩的坑是什么?

格式/文案不完全对齐、边界情况处理不到位、异常名或返回信息不一致。

准备重点是什么?

细心读题、严格对齐样例和描述,把边界和格式处理好。算法本身不需要特别花哨。

有什么建议?

写完后对照题面逐项检查,尤其是返回值、N/A、异常名这些细节。按自己节奏准备就好。

写在最后

金融向 OA 和纯互联网厂的差别,往往在业务壳:FIX、日频行情、账户异常、PnL 约束。算法本身不偏,但格式和边界要求更严。若正在准备 Virtu、Optiver、Akuna 等同赛道笔试,又觉得题型杂、对答案成本高,可以了解一下 InterviewShow:有 OA 实操与题型整理,也有后续 VO 支持。按自己节奏来即可。

祝过线顺利。

END